24 lines
838 B
TypeScript
24 lines
838 B
TypeScript
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()
|
|
})
|
|
})
|
|
})
|