summaryrefslogtreecommitdiffhomepage
path: root/src/features/tabs/tab-groups.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/features/tabs/tab-groups.test.ts')
-rw-r--r--src/features/tabs/tab-groups.test.ts9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/features/tabs/tab-groups.test.ts b/src/features/tabs/tab-groups.test.ts
index 67150ff..46b04e7 100644
--- a/src/features/tabs/tab-groups.test.ts
+++ b/src/features/tabs/tab-groups.test.ts
@@ -127,6 +127,15 @@ describe("cascadeCloseIds (the ids a cascading tab close removes)", () => {
expect(cascadeCloseIds(tabs, "c2")).toEqual(["c2"]);
});
+ it("matches the rendered forest for cycles and manual regrouping", () => {
+ const cycle = [tab("p", "c1"), tab("c1", "p"), tab("g", "c1")];
+ expect(cascadeCloseIds(cycle, "p")).toEqual(["p"]);
+ expect(cascadeCloseIds(cycle, "c1")).toEqual(["c1", "g"]);
+ const regrouped = [tab("p"), tab("c1", "solo"), tab("g", "c1"), tab("solo")];
+ expect(cascadeCloseIds(regrouped, "p")).toEqual(["p"]);
+ expect(cascadeCloseIds(regrouped, "solo")).toEqual(["solo", "c1", "g"]);
+ });
+
it("ignores tabs whose group parent is no longer open", () => {
const stale = [tab("p"), tab("orphan", "gone")];
expect(cascadeCloseIds(stale, "p")).toEqual(["p"]);