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)