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
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:
@@ -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");
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user