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() { if db.ParadeDBAvailable() {
// ParadeDB fuzzy prefix matching returns more results // ParadeDB fuzzy prefix matching returns more results
// (e.g. "TEST10" also matches "test1", "test11", etc.) // (e.g. "TEST10" also matches "test1", "test11", etc.)
require.Greater(t, len(ls), 0) require.NotEmpty(t, ls)
projectIDs := make([]int64, len(ls)) projectIDs := make([]int64, len(ls))
for i, p := range ls { for i, p := range ls {
projectIDs[i] = p.ID projectIDs[i] = p.ID

View File

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