import (
"errors"
+ "log/slog"
"os"
"path/filepath"
"strings"
since := time.Now().Format(whatsappTimeLayout)
- time.Sleep(whatsappNoticeDelay)
+ time.Sleep(whatsappOutageNoticeDelay)
synctest.Wait()
require.Equal(t, 1, test.events.Count("notice"))
require.Equal(t, "WhatsApp is disconnected since "+since+". OneChat tries again.", test.events.Last("notice"))
- time.Sleep(whatsappNoticeDelay)
+ time.Sleep(whatsappOutageNoticeDelay)
synctest.Wait()
require.Equal(t, 1, test.events.Count("notice"))
test.fake.mutex.Lock()
require.True(t, test.fake.Emit(&events.Connected{}))
require.True(t, test.fake.Emit(&events.Disconnected{}))
require.True(t, test.fake.Emit(&events.Connected{}))
- time.Sleep(whatsappNoticeDelay + time.Second)
+ time.Sleep(whatsappOutageNoticeDelay + time.Second)
synctest.Wait()
require.Zero(t, test.events.Count("notice"))
require.True(t, test.fake.Emit(&events.Disconnected{}))
require.True(t, test.fake.Emit(&events.Disconnected{}))
- time.Sleep(whatsappNoticeDelay)
+ time.Sleep(whatsappOutageNoticeDelay)
synctest.Wait()
require.Equal(t, 1, test.events.Count("notice"))
require.Contains(t, test.events.Last("notice"), "OneChat tries again.")
require.True(t, test.fake.Emit(&events.Disconnected{}))
- time.Sleep(whatsappNoticeDelay)
+ time.Sleep(whatsappOutageNoticeDelay)
synctest.Wait()
require.Equal(t, 1, test.events.Count("notice"))
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)
+}