type Ref,
inject,
nextTick,
+ onMounted,
onUpdated,
provide,
ref,
createIf,
createTextNode,
renderEffect,
+ setInsertionState,
template,
} from '../src'
import { makeRender } from './_utils'
expect(spy).toHaveBeenCalledTimes(2)
})
+ it('properly mount child component when using setInsertionState', async () => {
+ const spy = vi.fn()
+
+ const { component: Comp } = define({
+ setup() {
+ onMounted(spy)
+ return template('<h1>hi</h1>')()
+ },
+ })
+
+ const { host } = define({
+ setup() {
+ const n2 = template('<div></div>', true)()
+ setInsertionState(n2 as any)
+ createComponent(Comp)
+ return n2
+ },
+ }).render()
+
+ expect(host.innerHTML).toBe('<div><h1>hi</h1></div>')
+ expect(spy).toHaveBeenCalledTimes(1)
+ })
+
it('unmount component', async () => {
const { host, app, instance } = define(() => {
const count = ref(0)
onScopeDispose(() => unmountComponent(instance), true)
if (!isHydrating && _insertionParent) {
- insert(instance.block, _insertionParent, _insertionAnchor)
+ mountComponent(instance, _insertionParent, _insertionAnchor)
}
return instance