PICK SEA slot interaction: polarity card bg/border, cross-slot opacity fix, two-step tap; _hideOk ReferenceError removed from sea.js; Jasmine spec updated for two-step; migration 0012 PENTACLES cleanup — TDD
Some checks failed
ci/woodpecker/push/pyswiss Pipeline was successful
ci/woodpecker/push/main Pipeline failed

Code architected by Disco DeDisco <discodedisco@outlook.com>
Git commit message Co-Authored-By:
Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Disco DeDisco
2026-04-29 02:30:59 -04:00
parent 08aa4dc819
commit e084bcc2d5
9 changed files with 186 additions and 52 deletions

View File

@@ -265,26 +265,33 @@ describe("SeaDeal", () => {
});
});
// ── Re-open from deposited slot ───────────────────────────────────────── //
// ── Re-open from deposited slot (two-step tap) ────────────────────────── //
describe("clicking a deposited slot", () => {
let slot;
beforeEach(() => {
makeFixture();
SeaDeal.openStage(CARD, ".sea-pos-cover", true);
// Dismiss first
// Dismiss first — adds --visible to slot
testDiv.querySelector(".sea-stage-backdrop").dispatchEvent(new MouseEvent("click", { bubbles: true }));
slot = testDiv.querySelector(".sea-pos-cover .sea-card-slot");
});
it("re-opens the sea stage", () => {
expect(stage.style.display).toBe("none");
const slot = testDiv.querySelector(".sea-pos-cover .sea-card-slot");
it("first click focuses the slot (does not yet open stage)", () => {
slot.dispatchEvent(new MouseEvent("click", { bubbles: true }));
expect(slot.classList.contains("sea-card-slot--focused")).toBeTrue();
expect(stage.style.display).toBe("none");
});
it("re-opens the sea stage on second click", () => {
slot.dispatchEvent(new MouseEvent("click", { bubbles: true })); // focus
slot.dispatchEvent(new MouseEvent("click", { bubbles: true })); // open
expect(stage.style.display).not.toBe("none");
});
it("re-populates stage with the same card rank", () => {
const slot = testDiv.querySelector(".sea-pos-cover .sea-card-slot");
slot.dispatchEvent(new MouseEvent("click", { bubbles: true }));
it("re-populates stage with the same card rank on second click", () => {
slot.dispatchEvent(new MouseEvent("click", { bubbles: true })); // focus
slot.dispatchEvent(new MouseEvent("click", { bubbles: true })); // open
const rank = stageCard.querySelector(".fan-card-corner--tl .fan-corner-rank");
expect(rank.textContent).toBe("Q");
});

View File

@@ -558,12 +558,12 @@ describe("SigSelect", () => {
expect(stageCard.querySelector(".fan-card-reversal-name").textContent).toBe("Elevated");
});
it("non-major without data-reversal: reversal-name empty, qualifier mirrors polarity", () => {
it("non-major without data-reversal: qualifier mirrors polarity, name repeats card title", () => {
makeFixture({ polarity: "levity", userRole: "PC" });
// fixture default: Minor Arcana, no reversal word
hover();
expect(stageCard.querySelector(".fan-card-reversal-qualifier").textContent).toBe("Elevated");
expect(stageCard.querySelector(".fan-card-reversal-name").textContent).toBe("");
expect(stageCard.querySelector(".fan-card-reversal-name").textContent).toBe(card.dataset.nameTitle);
});
});