Fix Channel Bookmarks flaky tests (#28016)

Этот коммит содержится в:
Elias Nahum
2024-08-30 07:33:24 +08:00
коммит произвёл GitHub
родитель 422df51d77
Коммит d2a5b2e56c

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

@@ -16,7 +16,6 @@ import (
) )
func TestCreateChannelBookmark(t *testing.T) { func TestCreateChannelBookmark(t *testing.T) {
t.Skip("MM-57312")
os.Setenv("MM_FEATUREFLAGS_ChannelBookmarks", "true") os.Setenv("MM_FEATUREFLAGS_ChannelBookmarks", "true")
defer os.Unsetenv("MM_FEATUREFLAGS_ChannelBookmarks") defer os.Unsetenv("MM_FEATUREFLAGS_ChannelBookmarks")
@@ -221,7 +220,6 @@ func TestCreateChannelBookmark(t *testing.T) {
}) })
t.Run("a websockets event should be fired as part of creating a bookmark", func(t *testing.T) { t.Run("a websockets event should be fired as part of creating a bookmark", func(t *testing.T) {
t.Skip("https://mattermost.atlassian.net/browse/MM-57393")
webSocketClient, err := th.CreateWebSocketClient() webSocketClient, err := th.CreateWebSocketClient()
require.NoError(t, err) require.NoError(t, err)
webSocketClient.Listen() webSocketClient.Listen()
@@ -244,15 +242,20 @@ func TestCreateChannelBookmark(t *testing.T) {
require.Nil(t, appErr) require.Nil(t, appErr)
var b model.ChannelBookmarkWithFileInfo var b model.ChannelBookmarkWithFileInfo
require.Eventuallyf(t, func() bool { timeout := time.After(5 * time.Second)
event := <-webSocketClient.EventChannel waiting := true
if event.EventType() == model.WebsocketEventChannelBookmarkCreated { for waiting {
err := json.Unmarshal([]byte(event.GetData()["bookmark"].(string)), &b) select {
require.NoError(t, err) case event := <-webSocketClient.EventChannel:
return true if event.EventType() == model.WebsocketEventChannelBookmarkCreated {
err := json.Unmarshal([]byte(event.GetData()["bookmark"].(string)), &b)
require.NoError(t, err)
}
case <-timeout:
waiting = false
} }
return false }
}, 2*time.Second, 250*time.Millisecond, "Websocket event for bookmark created not received", nil)
require.NotNil(t, b) require.NotNil(t, b)
require.NotEmpty(t, b.Id) require.NotEmpty(t, b.Id)
}) })
@@ -588,7 +591,6 @@ func TestEditChannelBookmark(t *testing.T) {
}) })
t.Run("a websockets event should be fired as part of editing a bookmark", func(t *testing.T) { t.Run("a websockets event should be fired as part of editing a bookmark", func(t *testing.T) {
t.Skip("https://mattermost.atlassian.net/browse/MM-57392")
webSocketClient, err := th.CreateWebSocketClient() webSocketClient, err := th.CreateWebSocketClient()
require.NoError(t, err) require.NoError(t, err)
webSocketClient.Listen() webSocketClient.Listen()
@@ -617,15 +619,19 @@ func TestEditChannelBookmark(t *testing.T) {
CheckOKStatus(t, resp) CheckOKStatus(t, resp)
var ucb model.UpdateChannelBookmarkResponse var ucb model.UpdateChannelBookmarkResponse
require.Eventuallyf(t, func() bool { timeout := time.After(5 * time.Second)
event := <-webSocketClient.EventChannel waiting := true
if event.EventType() == model.WebsocketEventChannelBookmarkUpdated { for waiting {
err := json.Unmarshal([]byte(event.GetData()["bookmarks"].(string)), &ucb) select {
require.NoError(t, err) case event := <-webSocketClient.EventChannel:
return true if event.EventType() == model.WebsocketEventChannelBookmarkUpdated {
err := json.Unmarshal([]byte(event.GetData()["bookmarks"].(string)), &ucb)
require.NoError(t, err)
}
case <-timeout:
waiting = false
} }
return false }
}, 2*time.Second, 250*time.Millisecond, "Websocket event for bookmark edited not received", nil)
require.NotNil(t, ucb) require.NotNil(t, ucb)
require.NotEmpty(t, ucb.Updated) require.NotEmpty(t, ucb.Updated)
@@ -980,15 +986,19 @@ func TestUpdateChannelBookmarkSortOrder(t *testing.T) {
require.NotEmpty(t, bookmarks) require.NotEmpty(t, bookmarks)
var bl []*model.ChannelBookmarkWithFileInfo var bl []*model.ChannelBookmarkWithFileInfo
require.Eventuallyf(t, func() bool { timeout := time.After(5 * time.Second)
event := <-webSocketClient.EventChannel waiting := true
if event.EventType() == model.WebsocketEventChannelBookmarkSorted { for waiting {
err := json.Unmarshal([]byte(event.GetData()["bookmarks"].(string)), &bl) select {
require.NoError(t, err) case event := <-webSocketClient.EventChannel:
return true if event.EventType() == model.WebsocketEventChannelBookmarkSorted {
err := json.Unmarshal([]byte(event.GetData()["bookmarks"].(string)), &bl)
require.NoError(t, err)
}
case <-timeout:
waiting = false
} }
return false }
}, 2*time.Second, 250*time.Millisecond, "Websocket event for bookmark sorted not received", nil)
require.NotEmpty(t, bl) require.NotEmpty(t, bl)
require.Equal(t, cb.Id, bl[0].Id) require.Equal(t, cb.Id, bl[0].Id)
@@ -1309,15 +1319,19 @@ func TestDeleteChannelBookmark(t *testing.T) {
require.NotEmpty(t, dbm) require.NotEmpty(t, dbm)
var b *model.ChannelBookmarkWithFileInfo var b *model.ChannelBookmarkWithFileInfo
require.Eventuallyf(t, func() bool { timeout := time.After(5 * time.Second)
if event, ok := <-webSocketClient.EventChannel; ok && event.EventType() == model.WebsocketEventChannelBookmarkDeleted { waiting := true
err := json.Unmarshal([]byte(event.GetData()["bookmark"].(string)), &b) for waiting {
require.NoError(t, err) select {
return true case event := <-webSocketClient.EventChannel:
if event.EventType() == model.WebsocketEventChannelBookmarkDeleted {
err := json.Unmarshal([]byte(event.GetData()["bookmark"].(string)), &b)
require.NoError(t, err)
}
case <-timeout:
waiting = false
} }
return false }
}, 2*time.Second, 250*time.Millisecond, "Websocket event for bookmark deleted not received", nil)
require.NotEmpty(t, b) require.NotEmpty(t, b)
require.Equal(t, cb.Id, b.Id) require.Equal(t, cb.Id, b.Id)
require.NotEmpty(t, b.DeleteAt) require.NotEmpty(t, b.DeleteAt)