Edit flow configured

This commit is contained in:
adilallo
2026-04-29 18:29:16 -06:00
parent 3a9727bceb
commit fc845d8308
39 changed files with 681 additions and 165 deletions
+80
View File
@@ -0,0 +1,80 @@
import { describe, it, expect } from "vitest";
import {
mergeCompactCardIdsWithPinnedSelected,
orderRankedMethodsWithPinnedSelection,
} from "../../lib/create/methodCardDisplayOrder";
describe("orderRankedMethodsWithPinnedSelection", () => {
const methods = [
{ id: "a", rank: "top" },
{ id: "b", rank: "mid" },
{ id: "c", rank: "low" },
];
it("returns ranked order when pinning is inactive", () => {
expect(
orderRankedMethodsWithPinnedSelection(methods, ["c", "b"], false),
).toEqual(methods);
});
it("returns ranked order when there are no selections", () => {
expect(orderRankedMethodsWithPinnedSelection(methods, [], true)).toEqual(
methods,
);
});
it("pins selected ids ahead of ranked tail while preserving ranking in each block", () => {
expect(
orderRankedMethodsWithPinnedSelection(methods, ["c", "a"], true),
).toEqual([
{ id: "c", rank: "low" },
{ id: "a", rank: "top" },
{ id: "b", rank: "mid" },
]);
});
it("dedupes repeated ids in the selection list", () => {
expect(
orderRankedMethodsWithPinnedSelection(methods, ["b", "b", "c"], true),
).toEqual([
{ id: "b", rank: "mid" },
{ id: "c", rank: "low" },
{ id: "a", rank: "top" },
]);
});
});
describe("mergeCompactCardIdsWithPinnedSelected", () => {
const showcaseOrder = ["x", "a", "b", "y", "c"];
const baseCompact = ["a", "y", "b"];
it("delegates when pinning is inactive", () => {
expect(
mergeCompactCardIdsWithPinnedSelected(
showcaseOrder,
baseCompact,
["x"],
false,
3,
),
).toEqual(["a", "y", "b"]);
});
it("pads selected-first then facet-derived compact slots", () => {
expect(
mergeCompactCardIdsWithPinnedSelected(
showcaseOrder,
baseCompact,
["c"],
true,
4,
),
).toEqual(["c", "a", "y", "b"]);
});
it("fills remaining compact slots from showcase tail when facets run short", () => {
expect(
mergeCompactCardIdsWithPinnedSelected(showcaseOrder, [], ["x"], true, 3),
).toEqual(["x", "a", "b"]);
});
});