X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/1804474c7a03cca8bf780dd870a985e7badb4331..a6a82d96b4906e9e1f09f45f69f48124f11ae1bb:/whatsapp_fake_helper_test.go?ds=inline diff --git a/whatsapp_fake_helper_test.go b/whatsapp_fake_helper_test.go index c9bc835..3d7d117 100644 --- a/whatsapp_fake_helper_test.go +++ b/whatsapp_fake_helper_test.go @@ -309,3 +309,46 @@ func whatsappTestMessage(chat, sender types.JID, id, text string, at time.Time) }, } } + +// whatsappTestLogTexts returns the texts of the messages in the log of memory, +// after the log holds at least one message. +func whatsappTestLogTexts(t *testing.T, memory *Memory) []string { + t.Helper() + + require.Eventually(t, func() bool { + return memory.Len() > 0 + }, 10*time.Second, time.Millisecond) + + var texts []string + for id := range memory.Len() { + message, err := memory.Message(id) + require.NoError(t, err) + + texts = append(texts, message.Text) + } + + return texts +} + +// whatsappStartTestLinked opens a WhatsApp with a linked device in a temporary +// directory, with a quiet time of 50 ms for its batches. +func whatsappStartTestLinked(t *testing.T) (*WhatsApp, *WhatsAppFake) { + t.Helper() + + dir := t.TempDir() + whatsappTestSession(t, dir, true) + whatsapp, fake, _ := whatsappStartTest(t, dir, newTestClock()) + whatsapp.state.quiet = 50 * time.Millisecond + + return whatsapp, fake +} + +// whatsappTestConnect waits for the connection of the daemon and gives it the +// events of a connection with an empty catch-up. +func whatsappTestConnect(t *testing.T, fake *WhatsAppFake) { + t.Helper() + + <-fake.connects + require.True(t, fake.Emit(&events.Connected{})) + require.True(t, fake.Emit(&events.OfflineSyncCompleted{})) +}