MM-60481/MM-61301 fix bookmarks flaky tests (#29141)
Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
@@ -16,7 +16,6 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestCreateChannelBookmark(t *testing.T) {
|
func TestCreateChannelBookmark(t *testing.T) {
|
||||||
t.Skip("MM-60279")
|
|
||||||
os.Setenv("MM_FEATUREFLAGS_ChannelBookmarks", "true")
|
os.Setenv("MM_FEATUREFLAGS_ChannelBookmarks", "true")
|
||||||
defer os.Unsetenv("MM_FEATUREFLAGS_ChannelBookmarks")
|
defer os.Unsetenv("MM_FEATUREFLAGS_ChannelBookmarks")
|
||||||
|
|
||||||
@@ -224,6 +223,7 @@ 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) {
|
||||||
webSocketClient, err := th.CreateWebSocketClient()
|
webSocketClient, err := th.CreateWebSocketClient()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
require.NotNil(t, webSocketClient, "webSocketClient should not be nil")
|
||||||
webSocketClient.Listen()
|
webSocketClient.Listen()
|
||||||
defer webSocketClient.Close()
|
defer webSocketClient.Close()
|
||||||
|
|
||||||
@@ -246,18 +246,22 @@ func TestCreateChannelBookmark(t *testing.T) {
|
|||||||
var b model.ChannelBookmarkWithFileInfo
|
var b model.ChannelBookmarkWithFileInfo
|
||||||
timeout := time.After(5 * time.Second)
|
timeout := time.After(5 * time.Second)
|
||||||
waiting := true
|
waiting := true
|
||||||
|
eventReceived := false
|
||||||
for waiting {
|
for waiting {
|
||||||
select {
|
select {
|
||||||
case event := <-webSocketClient.EventChannel:
|
case event := <-webSocketClient.EventChannel:
|
||||||
if event.EventType() == model.WebsocketEventChannelBookmarkCreated {
|
if event.EventType() == model.WebsocketEventChannelBookmarkCreated {
|
||||||
err := json.Unmarshal([]byte(event.GetData()["bookmark"].(string)), &b)
|
err := json.Unmarshal([]byte(event.GetData()["bookmark"].(string)), &b)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
eventReceived = true
|
||||||
|
waiting = false
|
||||||
}
|
}
|
||||||
case <-timeout:
|
case <-timeout:
|
||||||
waiting = false
|
waiting = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
require.True(t, eventReceived, "Expected WebSocket event was not received within the timeout period")
|
||||||
require.NotNil(t, b)
|
require.NotNil(t, b)
|
||||||
require.NotEmpty(t, b.Id)
|
require.NotEmpty(t, b.Id)
|
||||||
})
|
})
|
||||||
@@ -596,6 +600,7 @@ 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) {
|
||||||
webSocketClient, err := th.CreateWebSocketClient()
|
webSocketClient, err := th.CreateWebSocketClient()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
require.NotNil(t, webSocketClient, "webSocketClient should not be nil")
|
||||||
webSocketClient.Listen()
|
webSocketClient.Listen()
|
||||||
defer webSocketClient.Close()
|
defer webSocketClient.Close()
|
||||||
|
|
||||||
@@ -624,18 +629,22 @@ func TestEditChannelBookmark(t *testing.T) {
|
|||||||
var ucb model.UpdateChannelBookmarkResponse
|
var ucb model.UpdateChannelBookmarkResponse
|
||||||
timeout := time.After(5 * time.Second)
|
timeout := time.After(5 * time.Second)
|
||||||
waiting := true
|
waiting := true
|
||||||
|
eventReceived := false
|
||||||
for waiting {
|
for waiting {
|
||||||
select {
|
select {
|
||||||
case event := <-webSocketClient.EventChannel:
|
case event := <-webSocketClient.EventChannel:
|
||||||
if event.EventType() == model.WebsocketEventChannelBookmarkUpdated {
|
if event.EventType() == model.WebsocketEventChannelBookmarkUpdated {
|
||||||
err := json.Unmarshal([]byte(event.GetData()["bookmarks"].(string)), &ucb)
|
err := json.Unmarshal([]byte(event.GetData()["bookmarks"].(string)), &ucb)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
eventReceived = true
|
||||||
|
waiting = false
|
||||||
}
|
}
|
||||||
case <-timeout:
|
case <-timeout:
|
||||||
waiting = false
|
waiting = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
require.True(t, eventReceived, "Expected WebSocket event was not received within the timeout period")
|
||||||
require.NotNil(t, ucb)
|
require.NotNil(t, ucb)
|
||||||
require.NotEmpty(t, ucb.Updated)
|
require.NotEmpty(t, ucb.Updated)
|
||||||
require.Equal(t, "Edited bookmark test", ucb.Updated.DisplayName)
|
require.Equal(t, "Edited bookmark test", ucb.Updated.DisplayName)
|
||||||
@@ -966,7 +975,9 @@ func TestUpdateChannelBookmarkSortOrder(t *testing.T) {
|
|||||||
now := model.GetMillis()
|
now := model.GetMillis()
|
||||||
webSocketClient, err := th.CreateWebSocketClient()
|
webSocketClient, err := th.CreateWebSocketClient()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
require.NotNil(t, webSocketClient, "webSocketClient should not be nil")
|
||||||
webSocketClient.Listen()
|
webSocketClient.Listen()
|
||||||
|
|
||||||
defer webSocketClient.Close()
|
defer webSocketClient.Close()
|
||||||
|
|
||||||
bookmark := &model.ChannelBookmark{
|
bookmark := &model.ChannelBookmark{
|
||||||
@@ -1006,22 +1017,25 @@ func TestUpdateChannelBookmarkSortOrder(t *testing.T) {
|
|||||||
var bl []*model.ChannelBookmarkWithFileInfo
|
var bl []*model.ChannelBookmarkWithFileInfo
|
||||||
timeout := time.After(5 * time.Second)
|
timeout := time.After(5 * time.Second)
|
||||||
waiting := true
|
waiting := true
|
||||||
|
eventReceived := false
|
||||||
for waiting {
|
for waiting {
|
||||||
select {
|
select {
|
||||||
case event := <-webSocketClient.EventChannel:
|
case event := <-webSocketClient.EventChannel:
|
||||||
if event.EventType() == model.WebsocketEventChannelBookmarkSorted {
|
if event.EventType() == model.WebsocketEventChannelBookmarkSorted {
|
||||||
err := json.Unmarshal([]byte(event.GetData()["bookmarks"].(string)), &bl)
|
err := json.Unmarshal([]byte(event.GetData()["bookmarks"].(string)), &bl)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
for _, b := range bl {
|
for _, b := range bl {
|
||||||
require.Greater(t, b.UpdateAt, now)
|
require.Greater(t, b.UpdateAt, now)
|
||||||
}
|
}
|
||||||
|
eventReceived = true
|
||||||
|
waiting = false
|
||||||
}
|
}
|
||||||
case <-timeout:
|
case <-timeout:
|
||||||
waiting = false
|
waiting = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
require.True(t, eventReceived, "Expected WebSocket event was not received within the timeout period")
|
||||||
require.NotEmpty(t, bl)
|
require.NotEmpty(t, bl)
|
||||||
require.Equal(t, cb.Id, bl[0].Id)
|
require.Equal(t, cb.Id, bl[0].Id)
|
||||||
require.Equal(t, int64(0), bl[0].SortOrder)
|
require.Equal(t, int64(0), bl[0].SortOrder)
|
||||||
@@ -1316,6 +1330,7 @@ func TestDeleteChannelBookmark(t *testing.T) {
|
|||||||
t.Run("a websockets event should be fired as part of deleting a bookmark", func(t *testing.T) {
|
t.Run("a websockets event should be fired as part of deleting a bookmark", func(t *testing.T) {
|
||||||
webSocketClient, err := th.CreateWebSocketClient()
|
webSocketClient, err := th.CreateWebSocketClient()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
require.NotNil(t, webSocketClient, "webSocketClient should not be nil")
|
||||||
webSocketClient.Listen()
|
webSocketClient.Listen()
|
||||||
defer webSocketClient.Close()
|
defer webSocketClient.Close()
|
||||||
|
|
||||||
@@ -1344,17 +1359,21 @@ func TestDeleteChannelBookmark(t *testing.T) {
|
|||||||
var b *model.ChannelBookmarkWithFileInfo
|
var b *model.ChannelBookmarkWithFileInfo
|
||||||
timeout := time.After(5 * time.Second)
|
timeout := time.After(5 * time.Second)
|
||||||
waiting := true
|
waiting := true
|
||||||
|
eventReceived := false
|
||||||
for waiting {
|
for waiting {
|
||||||
select {
|
select {
|
||||||
case event := <-webSocketClient.EventChannel:
|
case event := <-webSocketClient.EventChannel:
|
||||||
if event.EventType() == model.WebsocketEventChannelBookmarkDeleted {
|
if event.EventType() == model.WebsocketEventChannelBookmarkDeleted {
|
||||||
err := json.Unmarshal([]byte(event.GetData()["bookmark"].(string)), &b)
|
err := json.Unmarshal([]byte(event.GetData()["bookmark"].(string)), &b)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
eventReceived = true
|
||||||
|
waiting = false
|
||||||
}
|
}
|
||||||
case <-timeout:
|
case <-timeout:
|
||||||
waiting = false
|
waiting = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
require.True(t, eventReceived, "Expected WebSocket event was not received within the timeout period")
|
||||||
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)
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user