/** @jsxImportSource @opentui/solid */
import { testRender } from "@opentui/solid"
import { expect, test } from "bun:test"
import { createSignal } from "solid-js"
import { InteractivityProvider, useInteractivity } from "../src/context/interactivity"
test("interactivity is independent of the keymap and cannot re-enable a disabled ancestor", async () => {
const [parent, setParent] = createSignal(true)
const [child, setChild] = createSignal(true)
let defaults!: () => boolean
let enabled!: () => boolean
function Probe() {
enabled = useInteractivity()
return null
}
function Harness() {
defaults = useInteractivity()
return (
)
}
const app = await testRender(() => )
try {
expect(defaults()).toBe(true)
expect(enabled()).toBe(true)
setParent(false)
expect(enabled()).toBe(false)
setChild(false)
setChild(true)
expect(enabled()).toBe(false)
setParent(true)
expect(enabled()).toBe(true)
setChild(false)
expect(enabled()).toBe(false)
expect(defaults()).toBe(true)
} finally {
app.renderer.destroy()
}
})