feat : update

This commit is contained in:
2026-10-05 20:59:44 +07:00 Unverified
parent 3c3b104779
commit 08b61b5d91
15 changed files with 4398 additions and 62 deletions
+25 -2
View File
@@ -25,9 +25,9 @@ vi.mock("@/db", () => ({
}));
import {
artifactConditions, constellationConditions, extraSectionRows,
artifactConditions, artifactProfiles, constellationConditions, extraSectionRows,
guides, guideSections, teamConditions, weaponConditions,
catalogMaterials, guidePosterBleeding,
catalogMaterials, guidePosterBleeding, media,
} from "@/db/schema";
import { getAdminGuideContent } from "./queries";
@@ -78,4 +78,27 @@ describe("admin section reads", () => {
}
expect(result?.extras).toHaveLength(2);
});
it("resolves condition icons from one batched media read", async () => {
const iconMediaId = "550e8400-e29b-41d4-a716-446655440000";
mocks.rows.set(weaponConditions, [{ id: "weapon-condition", iconMediaId }]);
mocks.rows.set(artifactConditions, [{ id: "artifact-condition", iconMediaId }]);
mocks.rows.set(constellationConditions, [{ id: "constellation-condition", iconMediaId }]);
mocks.rows.set(teamConditions, [{ id: "team-condition", iconMediaId }]);
mocks.rows.set(artifactProfiles, [{
sands: [], goblet: [], circlet: [], substats: [], targets: [],
recommendedConditions: [{ name: "Recommended", note: null, iconMediaId, sands: [], goblet: [], circlet: [], substats: [] }],
targetConditions: [{ name: "Target", note: null, iconMediaId, rows: [] }],
}]);
mocks.rows.set(media, [{ id: iconMediaId, objectKey: "condition-icon.png" }]);
const result = await getAdminGuideContent("test");
expect(result?.weaponGroups[0].iconUrl).toBe("/media/condition-icon.png");
expect(result?.artifactGroups[0].iconUrl).toBe("/media/condition-icon.png");
expect(result?.constellationGroups[0].iconUrl).toBe("/media/condition-icon.png");
expect(result?.teamGroups[0].iconUrl).toBe("/media/condition-icon.png");
expect(result?.artifactProfile?.recommendedConditions[0].iconUrl).toBe("/media/condition-icon.png");
expect(result?.artifactProfile?.targetConditions[0].iconUrl).toBe("/media/condition-icon.png");
expect(mocks.reads.filter((table) => table === media)).toHaveLength(1);
});
});