From d5d0e89d2c73d37e313e0eadcf6684fa77c21fc8 Mon Sep 17 00:00:00 2001 From: le king fu Date: Sat, 17 Oct 2026 07:36:33 -0400 Subject: [PATCH] test(gating): pin that one click never arms the other window Review of PR #452 (comment 24129): the upgrade to Base checked that the upsell goes away, not that no split window appears in its place, so a locked click that also armed the split window (R14) left the suite green. Both edition changes now assert the other window stays closed, during the license refresh and after it. R14 now turns 1 test red, and its mirror (a split click that also arms the upsell) 1 test red. Refs #369 Co-Authored-By: Claude Opus 5.5 --- .../TransactionTable.wiring.test.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/components/transactions/TransactionTable.wiring.test.ts b/src/components/transactions/TransactionTable.wiring.test.ts index 8cfc0f1..2767130 100644 --- a/src/components/transactions/TransactionTable.wiring.test.ts +++ b/src/components/transactions/TransactionTable.wiring.test.ts @@ -119,15 +119,24 @@ describe("TransactionTable — the Répartition button's wiring (#369)", () => { expect(upsells(opened)).toHaveLength(0); }); + // One click arms one window: an edition change never brings up the other one. it("an open split window survives a license refresh and closes once the edition is Free", () => { (splitButtons(render("open"))[0].props.onOpenSplit as () => void)(); - expect(splitWindows(render("pending"))).toHaveLength(1); - expect(splitWindows(render("locked"))).toHaveLength(0); + const refreshing = render("pending"); + expect(splitWindows(refreshing)).toHaveLength(1); + expect(upsells(refreshing)).toHaveLength(0); + const downgraded = render("locked"); + expect(splitWindows(downgraded)).toHaveLength(0); + expect(upsells(downgraded)).toHaveLength(0); }); it("an open upsell survives a license refresh and goes away once the edition is Base", () => { (splitButtons(render("locked"))[0].props.onOpenUpsell as () => void)(); - expect(upsells(render("pending"))).toHaveLength(1); - expect(upsells(render("open"))).toHaveLength(0); + const refreshing = render("pending"); + expect(upsells(refreshing)).toHaveLength(1); + expect(splitWindows(refreshing)).toHaveLength(0); + const upgraded = render("open"); + expect(upsells(upgraded)).toHaveLength(0); + expect(splitWindows(upgraded)).toHaveLength(0); }); });