From f246cd26b7763adaeb3791f61e4ca47525ed56b7 Mon Sep 17 00:00:00 2001 From: Agniva De Sarker Date: Wed, 24 Jan 2024 03:01:25 +0530 Subject: [PATCH] MM-56457: Update LastUpdateAt in UpdateMemberNotifyProps (#25984) PR https://github.com/mattermost/mattermost/pull/18114 mistakenly left out updating the lastUpdateAt of the field. We fix that here. https://mattermost.atlassian.net/browse/MM-56457 ```release-note NONE ``` --- server/channels/store/sqlstore/channel_store.go | 2 ++ server/channels/store/storetest/channel_store.go | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/server/channels/store/sqlstore/channel_store.go b/server/channels/store/sqlstore/channel_store.go index 9f0a0e7c8c..d2e65251db 100644 --- a/server/channels/store/sqlstore/channel_store.go +++ b/server/channels/store/sqlstore/channel_store.go @@ -1861,6 +1861,7 @@ func (s SqlChannelStore) UpdateMemberNotifyProps(channelID, userID string, props sql, args, err2 := s.getQueryBuilder(). Update("channelmembers"). Set("notifyprops", sq.Expr("notifyprops || ?::jsonb", jsonNotifyProps)). + Set("LastUpdateAt", model.GetMillis()). Where(sq.Eq{ "userid": userID, "channelid": channelID, @@ -1884,6 +1885,7 @@ func (s SqlChannelStore) UpdateMemberNotifyProps(channelID, userID string, props sql, args, err2 := s.getQueryBuilder(). Update("ChannelMembers"). Set("NotifyProps", jsonExpr). + Set("LastUpdateAt", model.GetMillis()). Where(sq.Eq{ "UserId": userID, "ChannelId": channelID, diff --git a/server/channels/store/storetest/channel_store.go b/server/channels/store/storetest/channel_store.go index 514f1135fc..173d7e4d21 100644 --- a/server/channels/store/storetest/channel_store.go +++ b/server/channels/store/storetest/channel_store.go @@ -3266,6 +3266,10 @@ func testChannelUpdateMemberNotifyProps(t *testing.T, rctx request.CTX, ss store } member, nErr = ss.Channel().SaveMember(member) require.NoError(t, nErr) + then := member.LastUpdateAt + + // Sleeping for a bit for the lastUpdateAt to be greater than before. + time.Sleep(10 * time.Millisecond) props := member.NotifyProps props["hello"] = "world" @@ -3274,6 +3278,7 @@ func testChannelUpdateMemberNotifyProps(t *testing.T, rctx request.CTX, ss store require.NoError(t, nErr) // Verify props. assert.Equal(t, props, member.NotifyProps) + require.Greater(t, member.LastUpdateAt, then) t.Run("should fail with invalid input if the notify props are too big", func(t *testing.T) { props["property"] = strings.Repeat("Z", model.ChannelMemberNotifyPropsMaxRunes)