re-arrange the tests to run only on DB

```release-note
NONE
```
This commit is contained in:
Agniva De Sarker 2025-02-14 13:40:24 +05:30
parent 33e284dae7
commit a58dcb0c42
No known key found for this signature in database
GPG Key ID: 30C8839460F5A4B9

View File

@ -35,6 +35,11 @@ var searchPostStoreTests = []searchTest{
Fn: testSearchANDORQuotesCombinations,
Tags: []string{EnginePostgres, EngineMySQL, EngineElasticSearch},
},
{
Name: "Should be able to search without stemming",
Fn: testStemming,
Tags: []string{EnginePostgres, EngineMySQL},
},
{
// Postgres supports search with and without quotes
Name: "Should be able to search for email addresses with or without quotes",
@ -366,10 +371,6 @@ func testSearchANDORQuotesCombinations(t *testing.T, th *SearchTestHelper) {
require.NoError(t, err)
p3, err := th.createPost(th.User.Id, th.ChannelBasic.Id, "one five six", "", model.PostTypeDefault, 0, false)
require.NoError(t, err)
p4, err := th.createPost(th.User.Id, th.ChannelBasic.Id, "great minds think", "", model.PostTypeDefault, 0, false)
require.NoError(t, err)
p5, err := th.createPost(th.User.Id, th.ChannelBasic.Id, "mindful of what you think", "", model.PostTypeDefault, 0, false)
require.NoError(t, err)
defer th.deleteUserPosts(th.User.Id)
@ -450,26 +451,57 @@ func testSearchANDORQuotesCombinations(t *testing.T, th *SearchTestHelper) {
expectedLen: 2,
expectedIDs: []string{p1.Id, p2.Id},
},
}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
params := &model.SearchParams{Terms: tc.terms, OrTerms: tc.orTerms}
results, err := th.Store.Post().SearchPostsForUser(th.Context, []*model.SearchParams{params}, th.User.Id, th.Team.Id, 0, 20)
require.NoError(t, err)
require.Len(t, results.Posts, tc.expectedLen)
for _, id := range tc.expectedIDs {
th.checkPostInSearchResults(t, id, results.Posts)
}
})
}
}
func testStemming(t *testing.T, th *SearchTestHelper) {
p1, err := th.createPost(th.User.Id, th.ChannelBasic.Id, "great minds think", "", model.PostTypeDefault, 0, false)
require.NoError(t, err)
p2, err := th.createPost(th.User.Id, th.ChannelBasic.Id, "mindful of what you think", "", model.PostTypeDefault, 0, false)
require.NoError(t, err)
defer th.deleteUserPosts(th.User.Id)
testCases := []struct {
name string
terms string
orTerms bool
expectedLen int
expectedIDs []string
}{
{
name: "simple search, no stemming",
terms: `"minds think"`,
orTerms: false,
expectedLen: 1,
expectedIDs: []string{p4.Id},
expectedIDs: []string{p1.Id},
},
{
name: "simple search, single word, no stemming",
terms: `"minds"`,
orTerms: false,
expectedLen: 1,
expectedIDs: []string{p4.Id},
expectedIDs: []string{p1.Id},
},
{
name: "non-simple search, stemming",
terms: `minds think`,
orTerms: true,
expectedLen: 2,
expectedIDs: []string{p4.Id, p5.Id},
expectedIDs: []string{p1.Id, p2.Id},
},
{
name: "simple search, no stemming, no results",