feat(ui) : improve guide navigation, signup, and commissions
This commit is contained in:
@@ -27,9 +27,9 @@ vi.mock("@/db", () => ({
|
||||
import {
|
||||
artifactConditions, artifactProfiles, constellationConditions, extraSectionRows,
|
||||
guides, guideSections, teamCompositions, teamConditions, teamMembers, weaponConditions,
|
||||
catalogCharacters, catalogMaterials, guidePosterBleeding, media,
|
||||
catalogCharacters, catalogMaterials, guidePosterBleeding, media, weaponRecommendations, artifactRecommendations,
|
||||
} from "@/db/schema";
|
||||
import { getActiveCatalog, getAdminGuideContent, listAdminTeamImportsForCharacter } from "./queries";
|
||||
import { getActiveCatalog, getAdminGuideContent, getPublicGuide, listAdminTeamImportsForCharacter } from "./queries";
|
||||
|
||||
beforeEach(() => {
|
||||
mocks.reads.length = 0;
|
||||
@@ -173,3 +173,32 @@ describe("team import lookup", () => {
|
||||
expect(mocks.reads).toEqual([teamCompositions, teamMembers]);
|
||||
});
|
||||
});
|
||||
|
||||
describe("public overview build summary", () => {
|
||||
it("loads small recommendation reads only for published sections", async () => {
|
||||
mocks.rows.set(guideSections, [{ section: { id: "weapon", slug: "weapon", kind: "weapon" }, populated: true }]);
|
||||
mocks.rows.set(weaponRecommendations, [
|
||||
{ name: "First", rarity: 5, refinement: "1", conditionId: "first" },
|
||||
{ name: "Four-star", rarity: 4, refinement: "5", conditionId: "first" },
|
||||
{ name: "Different condition", rarity: 4, refinement: "1", conditionId: "second" },
|
||||
]);
|
||||
const result = await getPublicGuide("test");
|
||||
expect(result?.buildSummary?.weapon?.name).toBe("First");
|
||||
expect(result?.buildSummary?.fourStarWeapon?.name).toBe("Four-star");
|
||||
expect(mocks.reads).not.toContain(artifactProfiles);
|
||||
expect(mocks.reads).not.toContain(artifactRecommendations);
|
||||
expect(mocks.reads).not.toContain(teamMembers);
|
||||
});
|
||||
it("does not add overview recommendation reads to admin editing", async () => {
|
||||
await getAdminGuideContent("test", "overview");
|
||||
expect(mocks.reads).not.toContain(weaponRecommendations);
|
||||
expect(mocks.reads).not.toContain(artifactProfiles);
|
||||
});
|
||||
it("does not disclose recommendations from hidden sections", async () => {
|
||||
mocks.rows.set(guideSections, []);
|
||||
mocks.rows.set(weaponRecommendations, [{ name: "Hidden", conditionId: "hidden", rarity: 5, refinement: "1" }]);
|
||||
const result = await getPublicGuide("test");
|
||||
expect(result?.buildSummary?.weapon).toBeNull();
|
||||
expect(mocks.reads).not.toContain(weaponRecommendations);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user