X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/add3cf6416e33c24331fd1e90e99284f44d2aae2..c781f79f3c8cb9a7577ee1574d196988da2719b3:/whatsapp_test.go?ds=sidebyside diff --git a/whatsapp_test.go b/whatsapp_test.go index c1471e9..05ea123 100644 --- a/whatsapp_test.go +++ b/whatsapp_test.go @@ -2,6 +2,7 @@ package main import ( "errors" + "log/slog" "os" "path/filepath" "strings" @@ -123,6 +124,7 @@ func TestWhatsAppLinkedPairRequestKeepsFirstConnectionRetries(t *testing.T) { test.whatsapp.Command("pair 15550001111", func(text string) { answers <- text }) + require.Equal(t, "WhatsApp is linked already. Run /whatsapp unlink first.", <-answers) synctest.Wait() test.fake.mutex.Lock() @@ -193,6 +195,7 @@ func TestWhatsAppPairsAfterFirstConnectionRetriesStop(t *testing.T) { synctest.Wait() test.whatsapp.Command("unlink", func(_ string) { }) + synctest.Wait() require.False(t, test.whatsapp.isLinked()) @@ -315,6 +318,7 @@ func TestWhatsAppLogsEachChangeOfTheConnectionOnce(t *testing.T) { "<4>disconnected, retrying", "<6>connected again after=1m25s", }, strings.Split(strings.TrimSuffix(logs.String(), "\n"), "\n")) + require.NotContains(t, logs.String(), whatsappTestNumber) require.NotContains(t, logs.String(), whatsappTestLID) } @@ -662,6 +666,7 @@ func TestWhatsAppLogsNoOwnNumber(t *testing.T) { require.Eventually(t, func() bool { return logs.String() != "" }, 10*time.Second, time.Millisecond) + require.Equal(t, "<4>first connect failed, retrying: no route for OWN@s.whatsapp.net and OWN@lid\n", logs.String()) } @@ -753,3 +758,8 @@ func TestSubagentHasNoWhatsAppTools(t *testing.T) { require.Equal(t, `error: unknown tool "whatsapp_find"`, box.run(t.Context(), "whatsapp_find", `{"name":"ana"}`)) require.Equal(t, `error: unknown tool "whatsapp_send"`, box.run(t.Context(), "whatsapp_send", `{"id":"a","chat":"15550002222@s.whatsapp.net","text":"hi"}`)) } + +// whatsappDiscardLog is a logger for a WhatsApp whose log a test does not read. +func whatsappDiscardLog() *slog.Logger { + return slog.New(slog.DiscardHandler) +}