import (
"errors"
+ "log/slog"
"os"
"path/filepath"
"strings"
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()
synctest.Wait()
test.whatsapp.Command("unlink", func(_ string) {
})
+
synctest.Wait()
require.False(t, test.whatsapp.isLinked())
"<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.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, `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)
+}