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 <noreply@anthropic.com>
This commit is contained in:
le king fu 2026-10-17 07:36:33 -04:00
parent cb7f8479e4
commit d5d0e89d2c

View file

@ -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);
});
});