diff --git a/src/apps/epic/static/apps/epic/sig-select.js b/src/apps/epic/static/apps/epic/sig-select.js index e179f88..29b8173 100644 --- a/src/apps/epic/static/apps/epic/sig-select.js +++ b/src/apps/epic/static/apps/epic/sig-select.js @@ -148,8 +148,10 @@ var SigSelect = (function () { // - Non-major w/o reversal: fall back to mirroring the polarity qualifier var reversal = cardEl.dataset.reversal || ''; if (isMajor) { - stageCard.querySelector('.fan-card-reversal-qualifier').textContent = qualifier; - stageCard.querySelector('.fan-card-reversal-name').textContent = title; + // Slots are swapped vs. non-major: spin reverses DOM order visually, + // so qualifier-slot (DOM-second) appears first and name-slot (DOM-first) appears second. + stageCard.querySelector('.fan-card-reversal-qualifier').textContent = title + ','; + stageCard.querySelector('.fan-card-reversal-name').textContent = qualifier; } else if (reversal) { stageCard.querySelector('.fan-card-reversal-qualifier').textContent = reversal; stageCard.querySelector('.fan-card-reversal-name').textContent = title; diff --git a/src/static/tests/SigSelectSpec.js b/src/static/tests/SigSelectSpec.js index 6bce582..a07bd8a 100644 --- a/src/static/tests/SigSelectSpec.js +++ b/src/static/tests/SigSelectSpec.js @@ -548,13 +548,14 @@ describe("SigSelect", () => { .toBe(card.dataset.nameTitle); }); - it("major arcana reversed face: polarity qualifier + card title (concept name in FYI)", () => { + it("major arcana reversed face: title, in qualifier slot (first after spin); qualifier in name slot (second)", () => { makeFixture({ polarity: "levity", userRole: "PC" }); card.dataset.arcana = "Major Arcana"; card.dataset.nameTitle = "The Schizo"; hover(); - expect(stageCard.querySelector(".fan-card-reversal-qualifier").textContent).toBe("Elevated"); - expect(stageCard.querySelector(".fan-card-reversal-name").textContent).toBe("The Schizo"); + // DOM-second element appears first after card spins — so title goes in qualifier slot + expect(stageCard.querySelector(".fan-card-reversal-qualifier").textContent).toBe("The Schizo,"); + expect(stageCard.querySelector(".fan-card-reversal-name").textContent).toBe("Elevated"); }); it("non-major without data-reversal: reversal-name empty, qualifier mirrors polarity", () => { diff --git a/src/static_src/tests/SigSelectSpec.js b/src/static_src/tests/SigSelectSpec.js index 6bce582..a07bd8a 100644 --- a/src/static_src/tests/SigSelectSpec.js +++ b/src/static_src/tests/SigSelectSpec.js @@ -548,13 +548,14 @@ describe("SigSelect", () => { .toBe(card.dataset.nameTitle); }); - it("major arcana reversed face: polarity qualifier + card title (concept name in FYI)", () => { + it("major arcana reversed face: title, in qualifier slot (first after spin); qualifier in name slot (second)", () => { makeFixture({ polarity: "levity", userRole: "PC" }); card.dataset.arcana = "Major Arcana"; card.dataset.nameTitle = "The Schizo"; hover(); - expect(stageCard.querySelector(".fan-card-reversal-qualifier").textContent).toBe("Elevated"); - expect(stageCard.querySelector(".fan-card-reversal-name").textContent).toBe("The Schizo"); + // DOM-second element appears first after card spins — so title goes in qualifier slot + expect(stageCard.querySelector(".fan-card-reversal-qualifier").textContent).toBe("The Schizo,"); + expect(stageCard.querySelector(".fan-card-reversal-name").textContent).toBe("Elevated"); }); it("non-major without data-reversal: reversal-name empty, qualifier mirrors polarity", () => {