]> git.giacomolli.uk - onechat/blobdiff - whatsapp_inbox_test.go
Pass caller contexts through WhatsApp callbacks
[onechat] / whatsapp_inbox_test.go
index 6264d1980a021c95dc8169a77629e171035c815a..cea65fec15ca501cf6b62b97bd96de14efc38a08 100644 (file)
@@ -31,6 +31,7 @@ func TestWhatsAppPrivateBatchStartsATurnWithAnEmptyReply(t *testing.T) {
        // The catch-up holds the batch open until its end, so the two messages
        // form one batch also on a slow machine.
        require.True(t, fake.Emit(&events.Connected{}))
+
        at := time.Date(2026, 1, 1, 12, 0, 0, 0, time.UTC)
        require.True(t, fake.Emit(whatsappTestMessage(whatsappTestAna, whatsappTestAna, "m1", "Are you at home?", at)))
        require.True(t, fake.Emit(whatsappTestMessage(whatsappTestAna, whatsappTestOwn, "m2", "Yes", at)))
@@ -118,6 +119,7 @@ func TestWhatsAppGroupTurns(t *testing.T) {
                        text := "[WhatsApp] Family, group 120363000000000001@g.us, Thursday 2026-01-01\n" + tc.line
                        if tc.turn {
                                text += "\n" + whatsappBatchEmptyReply
+
                                client.WaitFor(t, "[done]")
                                require.Equal(t, 1, server.Calls())
                        } else {
@@ -131,7 +133,7 @@ func TestWhatsAppGroupTurns(t *testing.T) {
        }
 }
 
-func TestWhatsAppTakesOnlyText(t *testing.T) {
+func TestWhatsAppSkipsExcludedMessages(t *testing.T) {
        at := time.Date(2026, 1, 1, 12, 0, 0, 0, time.UTC)
        testCases := []struct {
                name   string
@@ -173,16 +175,6 @@ func TestWhatsAppTakesOnlyText(t *testing.T) {
                                event.Info.Chat = types.StatusBroadcastJID
                        },
                },
-               {
-                       name: "a photo with a caption",
-                       change: func(event *events.Message) {
-                               event.Message = &waE2E.Message{
-                                       ImageMessage: &waE2E.ImageMessage{
-                                               Caption: new("look"),
-                                       },
-                               }
-                       },
-               },
                {
                        name: "a text of spaces",
                        change: func(event *events.Message) {
@@ -212,6 +204,7 @@ func TestWhatsAppCatchupGivesOneTurn(t *testing.T) {
        <-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),
@@ -235,6 +228,7 @@ func TestWhatsAppCatchupGivesOneTurn(t *testing.T) {
 
        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)
        }
@@ -257,6 +251,7 @@ func TestWhatsAppCatchupEndsAfterItsLimit(t *testing.T) {
 func TestWhatsAppStateOfTheStateFileWaitForTheCatchup(t *testing.T) {
        dir := t.TempDir()
        whatsappTestSession(t, dir, true)
+
        before, _, _ := whatsappStartTest(t, dir, newTestClock())
        _, err := before.state.Add(whatsappTestChat, WhatsAppMessage{
                ID:     "m1",