Add a Prismana-only filter with a rainbow star icon
All checks were successful
Deploy Sokko G / deploy (push) Successful in 17s

This commit is contained in:
Shinuwa 2026-09-24 08:38:31 +02:00
parent 14f1b79cbc
commit 2255de94a7
9 changed files with 69 additions and 1 deletions

View file

@ -54,6 +54,19 @@ test("name searches accept French, English, accents and case", () => {
assert.deepEqual(filter({ name: "inexistant-xyz" }), []);
});
test("Prismana-only filtering combines with other criteria before grouping", () => {
assert.equal(createAniimoFilters().prismanaOnly, false);
const expected = data.variants.filter((variant) => variant.form === "prismana_form");
assert.ok(expected.length > 0);
assert.deepEqual(filter({ prismanaOnly: true }), expected);
const variant = expected[0];
const criteria = { name: variant.name, elements: variant.elements, roles: [variant.role], abilities: Object.fromEntries(variant.homeland_abilities.map(({ type, level }) => [type, level])) };
assert.deepEqual(filter({ ...criteria, prismanaOnly: true }), [variant]);
assert.equal(groupAniimoVariants(expected).length, expected.length);
assert.deepEqual(filter({ prismanaOnly: true, name: "emberpup" }), []);
assert.equal(filter({ prismanaOnly: false }).length, data.variants.length);
});
test("Prismana remains the final variation in data and grouped results", () => {
for (const group of groupAniimoVariants(data.variants)) {
if (group.some((variant) => variant.form === "prismana_form")) assert.equal(group.at(-1).form, "prismana_form");

View file

@ -112,6 +112,7 @@ export function validateSiteContent(site) {
"aniimo.filters",
"aniimo.name",
"aniimo.searchPlaceholder",
"aniimo.prismanaOnly",
"aniimo.elements",
"aniimo.roles",
"aniimo.role",