- server := newModelFake(t)
- socket, memory := daemonStartTestWithWhatsApp(t, server, nil, whatsapp)
- client := terminalStartTestClient(t, socket)
- client.WaitFor(t, "[connected to OneChat]")
- <-fake.connects
-
- require.True(t, fake.Emit(&events.Connected{}))
- at := time.Date(2026, 1, 1, 8, 0, 0, 0, time.UTC)
- for index, event := range []*events.Message{
- whatsappTestMessage(whatsappTestAna, whatsappTestAna, "m1", "Good morning", at),
- whatsappTestMessage(whatsappTestBruno, whatsappTestBruno, "m2", "Call me", at.Add(time.Hour)),
- whatsappTestMessage(whatsappTestAna, whatsappTestAna, "m3", "Are you there?", at.Add(2*time.Hour)),
- } {
- event.Info.PushName = []string{"Ana", "Bruno", "Ana"}[index]
- require.True(t, fake.Emit(event))
- }
-
- time.Sleep(100 * time.Millisecond)
- require.Zero(t, memory.Len())
-
- require.True(t, fake.Emit(&events.OfflineSyncCompleted{}))
- client.WaitFor(t, "[done]")
- require.Equal(t, []string{
- "[WhatsApp] Ana, private chat 15550002222@s.whatsapp.net, Thursday 2026-01-01\n08:00 Ana: Good morning\n" + whatsappBatchEmptyReply,
- "[WhatsApp] Bruno, private chat 15550003333@s.whatsapp.net, Thursday 2026-01-01\n09:00 Bruno: Call me\n" + whatsappBatchEmptyReply,
- "[WhatsApp] Ana, private chat 15550002222@s.whatsapp.net, Thursday 2026-01-01\n10:00 Ana: Are you there?\n" + whatsappBatchEmptyReply,
- }, whatsappTestLogTexts(t, memory)[:3])
-
- time.Sleep(100 * time.Millisecond)
- require.Equal(t, 1, server.Calls())
- for _, text := range []string{"Good morning", "Call me", "Are you there?"} {
- require.Contains(t, string(server.Call(0).raw), text)
- }
-}