Publish Discord inbound replies on the post event bus (#19)
CI / test (push) Successful in 6m26s
CI / test (push) Successful in 6m26s
Inbound publishes PostCreated after saving the Discord link. Outbound skips already-linked posts so the bot does not echo. Mail uses the existing subscriber. Reviewed-on: #19 Co-authored-by: codegirl-007 <s.raide@gmail.com>
This commit was merged in pull request #19.
This commit is contained in:
@@ -161,6 +161,36 @@ func TestOutboundSkipsReplyWithoutRootLink(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestOutboundSkipsAlreadyLinkedPost(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
links := newMemoryLinks()
|
||||
api := &fakeAPI{}
|
||||
bot := New("channel-1", links, api)
|
||||
if err := links.Upsert(context.Background(), store.DiscordLink{
|
||||
PostID: "reply-1",
|
||||
MessageID: "d-reply-1",
|
||||
}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := links.Upsert(context.Background(), store.DiscordLink{
|
||||
PostID: "root-1",
|
||||
MessageID: "d-root",
|
||||
ThreadID: "thread-1",
|
||||
}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
bot.Handle(context.Background(), events.PostCreated{PostEvent: events.PostEvent{
|
||||
PostID: "reply-1",
|
||||
RootID: "root-1",
|
||||
ParentID: "root-1",
|
||||
Body: "Already on Discord.",
|
||||
}})
|
||||
if len(api.sends) != 0 {
|
||||
t.Fatalf("echoed already-linked reply: %+v", api.sends)
|
||||
}
|
||||
}
|
||||
|
||||
func TestOutboundUpdateWithoutLinkCreates(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
@@ -218,7 +248,7 @@ func TestFormatMessage(t *testing.T) {
|
||||
func TestFromEnvDisabled(t *testing.T) {
|
||||
t.Setenv("DISCORD_BOT_TOKEN", "")
|
||||
t.Setenv("DISCORD_CHANNEL_ID", "")
|
||||
bot, err := FromEnv(newMemoryLinks(), nil, nil, nil)
|
||||
bot, err := FromEnv(newMemoryLinks(), nil, nil)
|
||||
if err != nil || bot != nil {
|
||||
t.Fatalf("disabled FromEnv = (%v, %v)", bot, err)
|
||||
}
|
||||
@@ -227,12 +257,12 @@ func TestFromEnvDisabled(t *testing.T) {
|
||||
func TestFromEnvRequiresBoth(t *testing.T) {
|
||||
t.Setenv("DISCORD_BOT_TOKEN", "token")
|
||||
t.Setenv("DISCORD_CHANNEL_ID", "")
|
||||
if _, err := FromEnv(newMemoryLinks(), nil, nil, nil); err == nil {
|
||||
if _, err := FromEnv(newMemoryLinks(), nil, nil); err == nil {
|
||||
t.Fatal("expected error when channel is missing")
|
||||
}
|
||||
t.Setenv("DISCORD_BOT_TOKEN", "")
|
||||
t.Setenv("DISCORD_CHANNEL_ID", "channel")
|
||||
if _, err := FromEnv(newMemoryLinks(), nil, nil, nil); err == nil {
|
||||
if _, err := FromEnv(newMemoryLinks(), nil, nil); err == nil {
|
||||
t.Fatal("expected error when token is missing")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user