test(15-04): complete PHPUnit map, migrations, FormatHTML, and search-gate tests

Named JOURNAL-001/002 fillable, FormatHTML unsafe tags, rollback/remigrate, RSS/categories/tags/media, and TestSearchGateOff with zero Typesense HTTP.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jakub Zych
2026-10-06 19:18:53 +02:00
parent c5b44b6a5d
commit d09edde080
12 changed files with 833 additions and 80 deletions

View File

@@ -161,41 +161,7 @@ func TestJournalTables(t *testing.T) {
if err := journal.Migrate(); err != nil {
t.Fatalf("journal migrations: %v", err)
}
for _, name := range []string{
"golem15_journal_posts",
"golem15_journal_categories",
"golem15_journal_tags",
"golem15_journal_posts_categories",
"golem15_journal_posts_tags",
"golem15_journal_settings",
} {
if !gdb.Migrator().HasTable(name) {
t.Fatalf("missing table %s", name)
}
}
var leftover []string
if err := gdb.WithContext(t.Context()).
Raw(`SELECT tablename FROM pg_tables WHERE schemaname = 'public' AND tablename LIKE 'rainlab\_journal\_%'`).
Scan(&leftover).Error; err != nil {
t.Fatal(err)
}
if len(leftover) != 0 {
t.Fatalf("rainlab-era journal tables present: %v", leftover)
}
if !gdb.Migrator().HasColumn("backend_users", "golem15_bloghub_author_slug") {
t.Fatal("backend_users.golem15_bloghub_author_slug missing")
}
var typesense bool
if err := gdb.WithContext(t.Context()).
Raw(`SELECT search_use_typesense FROM golem15_journal_settings WHERE id = 1`).
Scan(&typesense).Error; err != nil {
t.Fatal(err)
}
if typesense {
t.Fatal("search_use_typesense default must be false")
}
assertJournalSchema(t, gdb)
var catCount int64
if err := gdb.WithContext(t.Context()).
@@ -216,6 +182,9 @@ func TestJournalTables(t *testing.T) {
if postCount != 0 {
t.Fatalf("seeded posts = %d, want 0", postCount)
}
assertUniqueSlug(t, gdb, "golem15_journal_posts", "unique-post-slug")
assertUniqueSlug(t, gdb, "golem15_journal_tags", "unique-tag-slug")
assertUniqueSlug(t, gdb, "golem15_journal_categories", "unique-cat-slug")
if got := (models.Category{}).Fillable(); !reflect.DeepEqual(got, []string{"name", "slug", "code", "description", "parent_id"}) {
t.Fatalf("Category.Fillable = %#v", got)