| 1234567891011121314151617181920212223242526272829303132333435363738 |
- /** @jsxImportSource @opentui/solid */
- import { expect, test } from "bun:test"
- import { createSlot, createSolidSlotRegistry, testRender, useRenderer } from "@opentui/solid"
- import { onMount } from "solid-js"
- type Slots = {
- prompt: {}
- }
- test("replace slot mounts plugin content once", async () => {
- let mounts = 0
- const Probe = () => {
- onMount(() => {
- mounts += 1
- })
- return <box />
- }
- const App = () => {
- const registry = createSolidSlotRegistry<Slots>(useRenderer(), {})
- const Slot = createSlot(registry)
- registry.register({ id: "plugin", slots: { prompt: () => <Probe /> } })
- return (
- <Slot name="prompt" mode="replace">
- <box />
- </Slot>
- )
- }
- const app = await testRender(() => <App />)
- try {
- expect(mounts).toBe(1)
- } finally {
- app.renderer.destroy()
- }
- })
|