+func TestWhatsAppRunClosesABatchAfterQuietTime(t *testing.T) {
+ synctest.Test(t, func(t *testing.T) {
+ test := whatsappRetryTest(t)
+ test.start(t)
+ synctest.Wait()
+ require.True(t, test.fake.Emit(&events.Connected{}))
+ require.True(t, test.fake.Emit(&events.OfflineSyncCompleted{}))
+ synctest.Wait()
+ require.True(t, test.fake.Emit(whatsappTestMessage(whatsappTestAna, whatsappTestOwn, "m1", "On my way.", time.Now())))
+ synctest.Wait()
+ time.Sleep(whatsappBatchIdleTimeout - time.Nanosecond)
+ synctest.Wait()
+ require.Zero(t, test.loop.memory.Len())
+
+ time.Sleep(time.Nanosecond)
+ synctest.Wait()
+ require.Equal(t, 1, test.loop.memory.Len())
+ require.Contains(t, test.events.Last("work"), "You: On my way.")
+ })
+}
+