test: fix lint and adjust project search test for ParadeDB fuzzy matching

- Use require.NotEmpty instead of require.Greater for testifylint
- Skip exclusion assertions in web project search test when ParadeDB is
  active, since fuzzy(1, prefix=true) on "Test1" also matches Test2, Test3
This commit is contained in:
kolaente
2026-03-05 10:35:29 +01:00
parent 6268c48f15
commit b69705e64b
2 changed files with 10 additions and 5 deletions

View File

@@ -535,7 +535,7 @@ func TestProject_ReadAll(t *testing.T) {
if db.ParadeDBAvailable() {
// ParadeDB fuzzy prefix matching returns more results
// (e.g. "TEST10" also matches "test1", "test11", etc.)
require.Greater(t, len(ls), 0)
require.NotEmpty(t, ls)
projectIDs := make([]int64, len(ls))
for i, p := range ls {
projectIDs[i] = p.ID

View File

@@ -20,6 +20,7 @@ import (
"net/url"
"testing"
"code.vikunja.io/api/pkg/db"
"code.vikunja.io/api/pkg/models"
"code.vikunja.io/api/pkg/web/handler"
@@ -50,10 +51,14 @@ func TestProject(t *testing.T) {
rec, err := testHandler.testReadAllWithUser(url.Values{"s": []string{"Test1"}}, nil)
require.NoError(t, err)
assert.Contains(t, rec.Body.String(), `Test1`)
assert.NotContains(t, rec.Body.String(), `Test2`)
assert.NotContains(t, rec.Body.String(), `Test3`)
assert.NotContains(t, rec.Body.String(), `Test4`)
assert.NotContains(t, rec.Body.String(), `Test5`)
if !db.ParadeDBAvailable() {
// ParadeDB fuzzy(1, prefix=true) matches Test2, Test3, etc.
// (edit distance 1 from "Test1"), so only check exclusions without ParadeDB.
assert.NotContains(t, rec.Body.String(), `Test2`)
assert.NotContains(t, rec.Body.String(), `Test3`)
assert.NotContains(t, rec.Body.String(), `Test4`)
assert.NotContains(t, rec.Body.String(), `Test5`)
}
})
t.Run("Normal with archived projects", func(t *testing.T) {
rec, err := testHandler.testReadAllWithUser(url.Values{"is_archived": []string{"true"}}, nil)