summaryrefslogtreecommitdiffstats
path: root/store/storetest/channel_store.go
diff options
context:
space:
mode:
authorGeorge Goldberg <george@gberg.me>2018-01-05 15:59:10 +0000
committerSaturnino Abril <saturnino.abril@gmail.com>2018-01-05 23:59:10 +0800
commit143e664cd98aec9ee81ba953fd93704b7be33460 (patch)
treee3efdbe85ed73d9e812b706960dd5cd4c1a3ac65 /store/storetest/channel_store.go
parenta5bbf3f64366110c97a3d9d2014623ce0c224be4 (diff)
downloadchat-143e664cd98aec9ee81ba953fd93704b7be33460.tar.gz
chat-143e664cd98aec9ee81ba953fd93704b7be33460.tar.bz2
chat-143e664cd98aec9ee81ba953fd93704b7be33460.zip
PLT-8312: Use combined LIKE/Full Text search for channels. (#8029)
* PLT-8312: Use combined LIKE/Full Text search for channels. * Code tidyup * Get it working consistently and update unit tests. * Fix code style.
Diffstat (limited to 'store/storetest/channel_store.go')
-rw-r--r--store/storetest/channel_store.go77
1 files changed, 64 insertions, 13 deletions
diff --git a/store/storetest/channel_store.go b/store/storetest/channel_store.go
index 853de67d8..12781bdad 100644
--- a/store/storetest/channel_store.go
+++ b/store/storetest/channel_store.go
@@ -1829,15 +1829,19 @@ func testChannelStoreSearchMore(t *testing.T, ss store.Store) {
}
}
- if result := <-ss.Channel().SearchMore(m1.UserId, o1.TeamId, "off-topics"); result.Err != nil {
- t.Fatal(result.Err)
- } else {
- channels := result.Data.(*model.ChannelList)
- if len(*channels) != 0 {
- t.Logf("%v\n", *channels)
- t.Fatal("should be empty")
+ /*
+ // Disabling this check as it will fail on PostgreSQL as we have "liberalised" channel matching to deal with
+ // Full-Text Stemming Limitations.
+ if result := <-ss.Channel().SearchMore(m1.UserId, o1.TeamId, "off-topics"); result.Err != nil {
+ t.Fatal(result.Err)
+ } else {
+ channels := result.Data.(*model.ChannelList)
+ if len(*channels) != 0 {
+ t.Logf("%v\n", *channels)
+ t.Fatal("should be empty")
+ }
}
- }
+ */
}
func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) {
@@ -1922,6 +1926,20 @@ func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) {
o9.Type = model.CHANNEL_OPEN
store.Must(ss.Channel().Save(&o9, -1))
+ o10 := model.Channel{}
+ o10.TeamId = o1.TeamId
+ o10.DisplayName = "The"
+ o10.Name = "the"
+ o10.Type = model.CHANNEL_OPEN
+ store.Must(ss.Channel().Save(&o10, -1))
+
+ o11 := model.Channel{}
+ o11.TeamId = o1.TeamId
+ o11.DisplayName = "Native Mobile Apps"
+ o11.Name = "native-mobile-apps"
+ o11.Type = model.CHANNEL_OPEN
+ store.Must(ss.Channel().Save(&o11, -1))
+
if result := <-ss.Channel().SearchInTeam(o1.TeamId, "ChannelA"); result.Err != nil {
t.Fatal(result.Err)
} else {
@@ -1979,24 +1997,57 @@ func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) {
}
}
- if result := <-ss.Channel().SearchInTeam(o1.TeamId, "off-topics"); result.Err != nil {
+ /*
+ // Disabling this check as it will fail on PostgreSQL as we have "liberalised" channel matching to deal with
+ // Full-Text Stemming Limitations.
+ if result := <-ss.Channel().SearchMore(m1.
+ if result := <-ss.Channel().SearchInTeam(o1.TeamId, "off-topics"); result.Err != nil {
+ t.Fatal(result.Err)
+ } else {
+ channels := result.Data.(*model.ChannelList)
+ if len(*channels) != 0 {
+ t.Fatal("should be empty")
+ }
+ }
+ */
+
+ if result := <-ss.Channel().SearchInTeam(o1.TeamId, "town square"); result.Err != nil {
t.Fatal(result.Err)
} else {
channels := result.Data.(*model.ChannelList)
- if len(*channels) != 0 {
- t.Fatal("should be empty")
+ if len(*channels) != 1 {
+ t.Fatal("should return 1 channel")
+ }
+
+ if (*channels)[0].Name != o9.Name {
+ t.Fatal("wrong channel returned")
}
}
- if result := <-ss.Channel().SearchInTeam(o1.TeamId, "town square"); result.Err != nil {
+ if result := <-ss.Channel().SearchInTeam(o1.TeamId, "the"); result.Err != nil {
t.Fatal(result.Err)
} else {
channels := result.Data.(*model.ChannelList)
+ t.Log(channels.ToJson())
if len(*channels) != 1 {
t.Fatal("should return 1 channel")
}
- if (*channels)[0].Name != o9.Name {
+ if (*channels)[0].Name != o10.Name {
+ t.Fatal("wrong channel returned")
+ }
+ }
+
+ if result := <-ss.Channel().SearchInTeam(o1.TeamId, "Mobile"); result.Err != nil {
+ t.Fatal(result.Err)
+ } else {
+ channels := result.Data.(*model.ChannelList)
+ t.Log(channels.ToJson())
+ if len(*channels) != 1 {
+ t.Fatal("should return 1 channel")
+ }
+
+ if (*channels)[0].Name != o11.Name {
t.Fatal("wrong channel returned")
}
}