fix: [skip e2e]use eventual assertion for pending message check in replicate stream test (#44972)

Related to #44620

The test was flaky because pendingMessages.Len() assertion happened
before async message processing completed. Changed to assert.Eventually
to wait up to 1 second for the pending queue to drain, fixing the race
condition where actual was 1 but expected was 0.

Fixes TestReplicateStreamClient_Reconnect flakiness.

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
This commit is contained in:
congqixia 2025-10-20 19:32:03 +08:00 committed by GitHub
parent ccc963279e
commit 70a7ae2e39
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -101,7 +101,9 @@ func TestReplicateStreamClient_Replicate(t *testing.T) {
mockStreamClient.ExpectRecv()
}
assert.Equal(t, msgCount, mockStreamClient.GetRecvCount())
assert.Equal(t, 0, replicateClient.(*replicateStreamClient).pendingMessages.Len())
assert.Eventually(t, func() bool {
return replicateClient.(*replicateStreamClient).pendingMessages.Len() == 0
}, time.Second, 100*time.Millisecond)
replicateClient.Close()
}
@ -218,7 +220,9 @@ func TestReplicateStreamClient_Reconnect(t *testing.T) {
mockStreamClient.ExpectRecv()
}
assert.Equal(t, msgCount, mockStreamClient.GetRecvCount())
assert.Equal(t, 0, replicateClient.(*replicateStreamClient).pendingMessages.Len())
assert.Eventually(t, func() bool {
return replicateClient.(*replicateStreamClient).pendingMessages.Len() == 0
}, time.Second, 100*time.Millisecond)
replicateClient.Close()
}