fix: technical debts left by the Sites, Authors and SEO slices, plus backend support for the new Sites and Authors pagination

This commit is contained in:
Florian Sylvain committed 2026-10-19 00:25:31 +02:00
1 parent 9f4ce426a8
commit daf3594316
86 files changed
+4223 -1485

No files matched your search

+53
View File
@@ -0,0 +1,53 @@
package test
import (
"RenewCMS/internal/domain/site"
"RenewCMS/internal/infrastructure/persistence/database"
persistence "RenewCMS/internal/infrastructure/persistence/repositories"
"fmt"
"testing"
)
func TestSiteRepositoryFind(t *testing.T) {
db := openUnmigratedSQLite(t)
if err := database.Migrate(db, "https://renew.example.com"); err != nil {
t.Fatalf("migrate: %v", err)
}
repo := persistence.NewSiteRepository(db)
for i := 0; i < 12; i++ {
_, err := repo.Create(site.Site{Name: fmt.Sprintf("Shop %02d", i), Key: fmt.Sprintf("shop%02d", i), BaseURL: "https://shop.example.net", DefaultRobots: site.RobotsIndex})
if err != nil {
t.Fatalf("create: %v", err)
}
}
if _, err := repo.Create(site.Site{Name: "100% Café", Key: "cafe", BaseURL: "https://cafe.example.net", DefaultRobots: site.RobotsIndex}); err != nil {
t.Fatalf("create: %v", err)
}
t.Run("Unpaged returns everything with the default first", func(t *testing.T) {
page, err := repo.Find(site.ListQuery{})
if err != nil || page.Total != 14 || len(page.Items) != 14 || !page.Items[0].IsDefault {
t.Fatalf("page %+v err %v", page.Total, err)
}
})
t.Run("Paging slices after the search", func(t *testing.T) {
page, err := repo.Find(site.ListQuery{Q: "SHOP", Page: 2, Size: 5})
if err != nil || page.Total != 12 || len(page.Items) != 5 || page.Items[0].Name != "Shop 05" {
t.Fatalf("page %+v err %v", page, err)
}
past, err := repo.Find(site.ListQuery{Q: "shop", Page: 9, Size: 5})
if err != nil || past.Total != 12 || past.Items == nil || len(past.Items) != 0 {
t.Fatalf("past %+v err %v", past, err)
}
})
t.Run("Wildcards are literal and accents are ignored", func(t *testing.T) {
for _, q := range []string{"%", "cafe", "CAFÉ"} {
page, err := repo.Find(site.ListQuery{Q: q})
if err != nil || page.Total != 1 || page.Items[0].Key != "cafe" {
t.Fatalf("%q: %+v err %v", q, page, err)
}
}
})
}