summaryrefslogtreecommitdiffstats
path: root/store/sqlstore/channel_store_test.go
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-09-29 11:45:59 -0400
committerChristopher Speller <crspeller@gmail.com>2017-09-29 08:45:59 -0700
commit8b9dbb86133ff0fd6002a391268383d1593918ca (patch)
treeb8399f2bae881afe12f3bdb34ec725e97307144a /store/sqlstore/channel_store_test.go
parent5e50d3f4612dc8e6dffeff268f024a3d383a329c (diff)
downloadchat-8b9dbb86133ff0fd6002a391268383d1593918ca.tar.gz
chat-8b9dbb86133ff0fd6002a391268383d1593918ca.tar.bz2
chat-8b9dbb86133ff0fd6002a391268383d1593918ca.zip
PLT-7404 Return viewed at times in view channel API response (#7428)
* Return viewed at times in view channel API response * Updated transaction to read and write once * Remove transaction and only update if new value greater than older
Diffstat (limited to 'store/sqlstore/channel_store_test.go')
-rw-r--r--store/sqlstore/channel_store_test.go44
1 files changed, 39 insertions, 5 deletions
diff --git a/store/sqlstore/channel_store_test.go b/store/sqlstore/channel_store_test.go
index 490300f24..886852583 100644
--- a/store/sqlstore/channel_store_test.go
+++ b/store/sqlstore/channel_store_test.go
@@ -7,6 +7,8 @@ import (
"testing"
"time"
+ "github.com/stretchr/testify/assert"
+
"github.com/mattermost/mattermost-server/model"
"github.com/mattermost/mattermost-server/store"
)
@@ -1249,6 +1251,7 @@ func TestChannelStoreUpdateLastViewedAt(t *testing.T) {
o1.Name = "zz" + model.NewId() + "b"
o1.Type = model.CHANNEL_OPEN
o1.TotalMsgCount = 25
+ o1.LastPostAt = 12345
store.Must(ss.Channel().Save(&o1))
m1 := model.ChannelMember{}
@@ -1257,13 +1260,44 @@ func TestChannelStoreUpdateLastViewedAt(t *testing.T) {
m1.NotifyProps = model.GetDefaultChannelNotifyProps()
store.Must(ss.Channel().SaveMember(&m1))
- err := (<-ss.Channel().UpdateLastViewedAt([]string{m1.ChannelId}, m1.UserId)).Err
- if err != nil {
- t.Fatal("failed to update", err)
+ o2 := model.Channel{}
+ o2.TeamId = model.NewId()
+ o2.DisplayName = "Channel1"
+ o2.Name = "zz" + model.NewId() + "c"
+ o2.Type = model.CHANNEL_OPEN
+ o2.TotalMsgCount = 26
+ o2.LastPostAt = 123456
+ store.Must(ss.Channel().Save(&o2))
+
+ m2 := model.ChannelMember{}
+ m2.ChannelId = o2.Id
+ m2.UserId = m1.UserId
+ m2.NotifyProps = model.GetDefaultChannelNotifyProps()
+ store.Must(ss.Channel().SaveMember(&m2))
+
+ if result := <-ss.Channel().UpdateLastViewedAt([]string{m1.ChannelId}, m1.UserId); result.Err != nil {
+ t.Fatal("failed to update", result.Err)
+ } else if result.Data.(map[string]int64)[o1.Id] != o1.LastPostAt {
+ t.Fatal("last viewed at time incorrect")
}
- err = (<-ss.Channel().UpdateLastViewedAt([]string{m1.ChannelId}, "missing id")).Err
- if err != nil {
+ if result := <-ss.Channel().UpdateLastViewedAt([]string{m1.ChannelId, m2.ChannelId}, m1.UserId); result.Err != nil {
+ t.Fatal("failed to update", result.Err)
+ } else if result.Data.(map[string]int64)[o2.Id] != o2.LastPostAt {
+ t.Fatal("last viewed at time incorrect")
+ }
+
+ rm1 := store.Must(ss.Channel().GetMember(m1.ChannelId, m1.UserId)).(*model.ChannelMember)
+ assert.Equal(t, rm1.LastViewedAt, o1.LastPostAt)
+ assert.Equal(t, rm1.LastUpdateAt, o1.LastPostAt)
+ assert.Equal(t, rm1.MsgCount, o1.TotalMsgCount)
+
+ rm2 := store.Must(ss.Channel().GetMember(m2.ChannelId, m2.UserId)).(*model.ChannelMember)
+ assert.Equal(t, rm2.LastViewedAt, o2.LastPostAt)
+ assert.Equal(t, rm2.LastUpdateAt, o2.LastPostAt)
+ assert.Equal(t, rm2.MsgCount, o2.TotalMsgCount)
+
+ if result := <-ss.Channel().UpdateLastViewedAt([]string{m1.ChannelId}, "missing id"); result.Err != nil {
t.Fatal("failed to update")
}
}