From 07abdd1054061bd9db4ab8c6cd4d5292645858d5 Mon Sep 17 00:00:00 2001 From: theresa Date: Wed, 30 Mar 2022 18:21:43 +0200 Subject: [PATCH] Tests: Add unit tests for search --- internal/form/search_photos_test.go | 125 ++- internal/search/photos_filter_name_test.go | 916 ++++++++++++++++++ internal/search/photos_filter_primary_test.go | 2 +- 3 files changed, 1038 insertions(+), 5 deletions(-) create mode 100644 internal/search/photos_filter_name_test.go diff --git a/internal/form/search_photos_test.go b/internal/form/search_photos_test.go index 1d370b6da..df888ad09 100644 --- a/internal/form/search_photos_test.go +++ b/internal/form/search_photos_test.go @@ -410,7 +410,7 @@ func TestParseQueryString(t *testing.T) { assert.True(t, form.Merged) }) t.Run("query for lat with invalid type", func(t *testing.T) { - form := &SearchPhotos{Query: "lat:cat"} + form := &SearchPhotos{Query: "lat:&cat"} err := form.ParseQueryString() @@ -420,10 +420,23 @@ func TestParseQueryString(t *testing.T) { // log.Debugf("%+v\n", form) - assert.Equal(t, "strconv.ParseFloat: parsing \"cat\": invalid syntax", err.Error()) + assert.Contains(t, err.Error(), "invalid syntax") + }) + t.Run("query for lng with invalid type", func(t *testing.T) { + form := &SearchPhotos{Query: "lng:^>cat"} + + err := form.ParseQueryString() + + if err == nil { + t.Fatal(err) + } + + // log.Debugf("%+v\n", form) + + assert.Contains(t, err.Error(), "invalid syntax") }) t.Run("query for dist with invalid type", func(t *testing.T) { - form := &SearchPhotos{Query: "dist:cat"} + form := &SearchPhotos{Query: "dist:c@t"} err := form.ParseQueryString() @@ -433,7 +446,98 @@ func TestParseQueryString(t *testing.T) { // log.Debugf("%+v\n", form) - assert.Equal(t, "strconv.Atoi: parsing \"cat\": invalid syntax", err.Error()) + assert.Contains(t, err.Error(), "invalid syntax") + }) + t.Run("query for fmin with invalid type", func(t *testing.T) { + form := &SearchPhotos{Query: "fmin:=}cat{"} + + err := form.ParseQueryString() + + if err == nil { + t.Fatal(err) + } + + // log.Debugf("%+v\n", form) + + assert.Contains(t, err.Error(), "invalid syntax") + }) + t.Run("query for fmax with invalid type", func(t *testing.T) { + form := &SearchPhotos{Query: "fmax:ca#$t"} + + err := form.ParseQueryString() + + if err == nil { + t.Fatal(err) + } + + // log.Debugf("%+v\n", form) + + assert.Contains(t, err.Error(), "invalid syntax") + }) + t.Run("query for chroma with invalid type", func(t *testing.T) { + form := &SearchPhotos{Query: "chroma:&|cat"} + + err := form.ParseQueryString() + + if err == nil { + t.Fatal(err) + } + + // log.Debugf("%+v\n", form) + + assert.Contains(t, err.Error(), "invalid syntax") + }) + t.Run("query for diff with invalid type", func(t *testing.T) { + form := &SearchPhotos{Query: "diff:&cat;%"} + + err := form.ParseQueryString() + + if err == nil { + t.Fatal(err) + } + + // log.Debugf("%+v\n", form) + + assert.Contains(t, err.Error(), "invalid syntax") + }) + t.Run("query for quality with invalid type", func(t *testing.T) { + form := &SearchPhotos{Query: "quality:`cat"} + + err := form.ParseQueryString() + + if err == nil { + t.Fatal(err) + } + + // log.Debugf("%+v\n", form) + + assert.Contains(t, err.Error(), "invalid syntax") + }) + t.Run("query for count with invalid type", func(t *testing.T) { + form := &SearchPhotos{Query: "count:ca(%t"} + + err := form.ParseQueryString() + + if err == nil { + t.Fatal(err) + } + + // log.Debugf("%+v\n", form) + + assert.Contains(t, err.Error(), "invalid syntax") + }) + t.Run("query for offset with invalid type", func(t *testing.T) { + form := &SearchPhotos{Query: "offset:&cat"} + + err := form.ParseQueryString() + + if err == nil { + t.Fatal(err) + } + + // log.Debugf("%+v\n", form) + + assert.Contains(t, err.Error(), "invalid syntax") }) t.Run("CameraString", func(t *testing.T) { form := &SearchPhotos{Query: "camera:cat"} @@ -468,6 +572,19 @@ func TestParseQueryString(t *testing.T) { // log.Debugf("%+v\n", form) + assert.Equal(t, "Could not find format for \"cat\"", err.Error()) + }) + t.Run("query for after with invalid type", func(t *testing.T) { + form := &SearchPhotos{Query: "after:cat"} + + err := form.ParseQueryString() + + if err == nil { + t.Fatal(err) + } + + // log.Debugf("%+v\n", form) + assert.Equal(t, "Could not find format for \"cat\"", err.Error()) }) } diff --git a/internal/search/photos_filter_name_test.go b/internal/search/photos_filter_name_test.go new file mode 100644 index 000000000..3a58d04ad --- /dev/null +++ b/internal/search/photos_filter_name_test.go @@ -0,0 +1,916 @@ +package search + +import ( + "github.com/photoprism/photoprism/internal/form" + "github.com/stretchr/testify/assert" + "testing" +) + +func TestPhotosFilterName(t *testing.T) { + t.Run("StartsWithPercent", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "photo29%" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("CenterPercent", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "photo%30" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("EndsWithPercent", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "photo29%" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("StartsWithAmpersand", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "&photo31" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("CenterAmpersand", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "photo&32" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("EndsWithAmpersand", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "photo33&" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("StartsWithSingleQuote", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "'photo34" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("CenterSingleQuote", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "photo'35" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("EndsWithSingleQuote", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "photo36'" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("StartsWithAsterisk", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "*photo37" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("CenterAsterisk", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "photo*38" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("EndsWithAsterisk", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "photo39*" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("StartsWithPipeWildcard", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "|*photo40" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("CenterPipeWildcard", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "photo|*41" + f.Merged = true + + photos, count, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + if len(photos) != 1 { + t.Logf("excactly one result expected, but %d photos with %d files found", len(photos), count) + t.Logf("query results: %#v", photos) + } + + assert.Equal(t, 1, len(photos)) + }) + t.Run("EndsWithPipeWildcard", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "photo42*|" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("StartsWithPipe", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "|photo40" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 0) + }) + t.Run("CenterPipe", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "photo|41" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, 0, len(photos)) + }) + t.Run("EndsWithPipe", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "photo42|" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 0) + }) + t.Run("StartsWithNumber", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "43photo" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("CenterNumber", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "pho44to" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("EndsWithNumber", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "photo45" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("StartsWithDoubleQuotes", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "\"photo46" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("CenterDoubleQuotes", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "photo\"47" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("EndsWithDoubleQuotes", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "photo48\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("StartsWithWhitespace", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = " photo49" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("CenterWhitespace", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "photo 50" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("EndsWithWhitespace", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "photo51 " + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + /*t.Run("AndSearch", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "Route 66 & Father's Day" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("OrSearch", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "Route 66 | Father's Day" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Greater(t, len(photos), 1) + }) + t.Run("AndSearch2", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "Red|Green & Father's Day" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("OrSearch2", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "Red|Green | Father's Day" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Greater(t, len(photos), 1) + }) + t.Run("AndSearch3", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "Light& & Red|Green" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("OrSearch3", func(t *testing.T) { + var f form.SearchPhotos + + f.Name = "Red|Green | Light&" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Greater(t, len(photos), 1) + })*/ +} + +func TestPhotosQueryName(t *testing.T) { + t.Run("StartsWithPercent", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"%photo28\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("CenterPercent", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"photo%30\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("EndsWithPercent", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"photo29%\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("StartsWithAmpersand", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"&photo31\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("CenterAmpersand", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"photo&32\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("EndsWithAmpersand", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"photo33&\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("StartsWithSingleQuote", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"'photo34\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("CenterSingleQuote", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"photo'35\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("EndsWithSingleQuote", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"photo36'\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("StartsWithAsterisk", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"*photo37\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("CenterAsterisk", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"photo*38\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("EndsWithAsterisk", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"photo39*\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("StartsWithPipeWildcard", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"|*photo40\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("CenterPipeWildcard", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"photo|*41\"" + f.Merged = true + + photos, count, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + if len(photos) != 1 { + t.Logf("excactly one result expected, but %d photos with %d files found", len(photos), count) + t.Logf("query results: %#v", photos) + } + + assert.Equal(t, 1, len(photos)) + }) + t.Run("EndsWithPipeWildcard", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"photo42*|\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("StartsWithPipe", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"|photo40\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 0) + }) + t.Run("CenterPipe", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"photo|41\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, 0, len(photos)) + }) + t.Run("EndsWithPipe", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"photo42|\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 0) + }) + t.Run("StartsWithNumber", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"43photo\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("CenterNumber", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"pho44to\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("EndsWithNumber", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"photo45\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("StartsWithDoubleQuotes", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"\"photo46\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + // TODO Finds all? + assert.Greater(t, len(photos), 1) + }) + t.Run("CenterDoubleQuotes", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"photo\"47\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + // TODO Finds all? + assert.Greater(t, len(photos), 1) + }) + t.Run("EndsWithDoubleQuotes", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"photo48\"\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + // TODO Finds all? + assert.Greater(t, len(photos), 1) + }) + t.Run("StartsWithWhitespace", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\" photo49\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("CenterWhitespace", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"photo 50\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + t.Run("EndsWithWhitespace", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"photo51 \"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, len(photos), 1) + }) + /*t.Run("AndSearch", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"Route 66 & Father's Day\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("OrSearch", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"Route 66 | Father's Day\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Greater(t, len(photos), 1) + }) + t.Run("AndSearch2", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"Red|Green & Father's Day\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("OrSearch2", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"Red|Green | Father's Day\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Greater(t, len(photos), 1) + }) + t.Run("AndSearch3", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"Light& & Red|Green\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Equal(t, len(photos), 1) + }) + t.Run("OrSearch3", func(t *testing.T) { + var f form.SearchPhotos + + f.Query = "name:\"Red|Green | Light&\"" + f.Merged = true + + photos, _, err := Photos(f) + + if err != nil { + t.Fatal(err) + } + assert.Greater(t, len(photos), 1) + })*/ +} diff --git a/internal/search/photos_filter_primary_test.go b/internal/search/photos_filter_primary_test.go index ae146ba7e..8169d78a3 100644 --- a/internal/search/photos_filter_primary_test.go +++ b/internal/search/photos_filter_primary_test.go @@ -18,7 +18,7 @@ func TestPhotosQueryPrimary(t *testing.T) { if err != nil { t.Fatal(err) } - assert.Equal(t, len(photos0), 22) + assert.GreaterOrEqual(t, len(photos0), 46) t.Run("StartsWithPercent", func(t *testing.T) { var f form.SearchPhotos