]> git.giacomolli.uk - onechat/blobdiff - whatsapp_test.go
Separate multiline Go statements
[onechat] / whatsapp_test.go
index c1471e98e8f3c3aa2ad97daa69cd13795be3bd59..05ea123dea3c577b9d6c7575cd1c1bbad6d64b61 100644 (file)
@@ -2,6 +2,7 @@ package main
 
 import (
        "errors"
 
 import (
        "errors"
+       "log/slog"
        "os"
        "path/filepath"
        "strings"
        "os"
        "path/filepath"
        "strings"
@@ -123,6 +124,7 @@ func TestWhatsAppLinkedPairRequestKeepsFirstConnectionRetries(t *testing.T) {
                test.whatsapp.Command("pair 15550001111", func(text string) {
                        answers <- text
                })
                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()
                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()
                test.whatsapp.Command("unlink", func(_ string) {
                })
+
                synctest.Wait()
                require.False(t, test.whatsapp.isLinked())
 
                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"))
                "<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)
 }
        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.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())
 }
 
        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"}`))
 }
        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)
+}