Fix racy TestReliableWebSocketSend (#19620)

Этот коммит содержится в:
Claudio Costa
2022-02-23 16:01:23 +01:00
коммит произвёл GitHub
родитель 2a59047d07
Коммит d04b69c9cb
3 изменённых файлов: 49 добавлений и 16 удалений

Просмотреть файл

@@ -338,24 +338,37 @@ func TestHubConnIndexInactive(t *testing.T) {
}
func TestReliableWebSocketSend(t *testing.T) {
th := Setup(t)
testCluster := &testlib.FakeClusterInterface{}
th := SetupWithClusterMock(t, testCluster)
defer th.TearDown()
testCluster := &testlib.FakeClusterInterface{}
th.Server.Cluster = testCluster
ev := model.NewWebSocketEvent("test_reliable_event", "", "", "", nil)
ev := model.NewWebSocketEvent("test_unreliable_event", "", "", "", nil)
ev = ev.SetBroadcast(&model.WebsocketBroadcast{})
th.App.Publish(ev)
ev = ev.SetBroadcast(&model.WebsocketBroadcast{
ev2 := model.NewWebSocketEvent("test_reliable_event", "", "", "", nil)
ev2 = ev2.SetBroadcast(&model.WebsocketBroadcast{
ReliableClusterSend: true,
})
th.App.Publish(ev)
th.App.Publish(ev2)
messages := testCluster.GetMessages()
require.Len(t, messages, 2)
require.Equal(t, model.ClusterSendBestEffort, messages[0].SendType)
require.Equal(t, model.ClusterSendReliable, messages[1].SendType)
evJSON, err := ev.ToJSON()
require.NoError(t, err)
ev2JSON, err := ev2.ToJSON()
require.NoError(t, err)
require.Contains(t, messages, &model.ClusterMessage{
Event: model.ClusterEventPublish,
Data: evJSON,
SendType: model.ClusterSendBestEffort,
})
require.Contains(t, messages, &model.ClusterMessage{
Event: model.ClusterEventPublish,
Data: ev2JSON,
SendType: model.ClusterSendReliable,
})
}
func TestHubIsRegistered(t *testing.T) {