import { describe, expect, test } from "bun:test" import { createRoot, getOwner, onCleanup } from "solid-js" import { createTabMemory } from "./tab-memory" describe("tab memory", () => { test("keeps state until its tab is removed", () => { createRoot((dispose) => { const memory = createTabMemory(getOwner()) let disposed = 0 const first = memory.ensure("tab", "prompt", () => { onCleanup(() => disposed++) return { value: "prompt" } }) expect(memory.ensure("tab", "prompt", () => ({ value: "other" }))).toBe(first) expect(memory.ensure("other", "prompt", () => ({ value: "other" }))).not.toBe(first) memory.remove("tab") expect(disposed).toBe(1) expect(memory.ensure("tab", "prompt", () => ({ value: "new" }))).not.toBe(first) dispose() }) }) })