Group FAQs by a topic relation, ordered; drop unused FAQ teaser

This commit is contained in:
tleininger committed 2026-09-29 22:11:30 +02:00
1 parent 28944c155a
commit 2ea8856d65
14 files changed
+328 -128

No files matched your search

@@ -18,7 +18,7 @@ public sealed class PocketBaseClientTests(PocketBaseFixture pocketBase)
var events = await client.GetEventsAsync();
// Two seeded events, earliest start first.
events.Select(e => e.Title).ShouldBe(["Elternbeiratssitzung", "Herbstbasar"]);
events.Select(@event => @event.Title).ShouldBe(["Elternbeiratssitzung", "Herbstbasar"]);
}
[Fact]
@@ -46,8 +46,8 @@ public sealed class PocketBaseClientTests(PocketBaseFixture pocketBase)
var events = await client.GetEventsAsync();
var meeting = events.Single(e => e.Title == "Elternbeiratssitzung");
var basar = events.Single(e => e.Title == "Herbstbasar");
var meeting = events.Single(@event => @event.Title == "Elternbeiratssitzung");
var basar = events.Single(@event => @event.Title == "Herbstbasar");
meeting.End.ShouldBeNull(); // no end seeded
basar.End.ShouldNotBeNull(); // end seeded
}
@@ -60,7 +60,7 @@ public sealed class PocketBaseClientTests(PocketBaseFixture pocketBase)
var posts = await client.GetPostsAsync();
// Sorted by -date: March before January.
posts.Select(p => p.Title).ShouldBe(["Neuer Vorstand", "Neue Sporthalle"]);
posts.Select(post => post.Title).ShouldBe(["Neuer Vorstand", "Neue Sporthalle"]);
}
[Fact]
@@ -85,9 +85,9 @@ public sealed class PocketBaseClientTests(PocketBaseFixture pocketBase)
var pages = await client.GetPagesAsync();
// The draft (public=false) must be filtered out, the public ones present.
pages.ShouldNotContain(p => p.Slug == "draft");
pages.ShouldContain(p => p.Slug == "home");
pages.ShouldContain(p => p.Slug == "contact");
pages.ShouldNotContain(page => page.Slug == "draft");
pages.ShouldContain(page => page.Slug == "home");
pages.ShouldContain(page => page.Slug == "contact");
}
[Fact]
@@ -111,7 +111,10 @@ public sealed class PocketBaseClientTests(PocketBaseFixture pocketBase)
var faqs = await client.GetFaqsAsync();
faqs.Select(f => f.Topic).ShouldBe(["Mensa und Mittagessen", "Schließfächer"], ignoreOrder: true);
faqs.ShouldAllBe(f => !string.IsNullOrWhiteSpace(f.Question));
// The topic relation is expanded, so each entry carries its topic. The two
// seeded topics are ordered (Mensa order 1 before Schließfächer order 2), and
// GetFaqsAsync sorts by topic.order, so the groups come back in that order.
faqs.Select(faq => faq.Topic?.Title).ShouldBe(["Mensa und Mittagessen", "Schließfächer"]);
faqs.ShouldAllBe(faq => !string.IsNullOrWhiteSpace(faq.Question));
}
}