mirror of https://github.com/vuejs/core.git
test: add e2e tests for vdom teleport vapor interop
This commit is contained in:
parent
5574fbf521
commit
ba9db34379
|
@ -6,10 +6,10 @@ import {
|
||||||
import connect from 'connect'
|
import connect from 'connect'
|
||||||
import sirv from 'sirv'
|
import sirv from 'sirv'
|
||||||
import { ports } from '../utils'
|
import { ports } from '../utils'
|
||||||
|
import { nextTick } from 'vue'
|
||||||
|
const { page, click, text, enterValue, html } = setupPuppeteer()
|
||||||
|
|
||||||
describe('vdom / vapor interop', () => {
|
describe('vdom / vapor interop', () => {
|
||||||
const { page, click, text, enterValue } = setupPuppeteer()
|
|
||||||
|
|
||||||
let server: any
|
let server: any
|
||||||
const port = ports.vdomInterop
|
const port = ports.vdomInterop
|
||||||
beforeAll(() => {
|
beforeAll(() => {
|
||||||
|
@ -19,6 +19,12 @@ describe('vdom / vapor interop', () => {
|
||||||
process.on('SIGTERM', () => server && server.close())
|
process.on('SIGTERM', () => server && server.close())
|
||||||
})
|
})
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
const baseUrl = `http://localhost:${port}/interop/`
|
||||||
|
await page().goto(baseUrl)
|
||||||
|
await page().waitForSelector('#app')
|
||||||
|
})
|
||||||
|
|
||||||
afterAll(() => {
|
afterAll(() => {
|
||||||
server.close()
|
server.close()
|
||||||
})
|
})
|
||||||
|
@ -26,9 +32,6 @@ describe('vdom / vapor interop', () => {
|
||||||
test(
|
test(
|
||||||
'should work',
|
'should work',
|
||||||
async () => {
|
async () => {
|
||||||
const baseUrl = `http://localhost:${port}/interop/`
|
|
||||||
await page().goto(baseUrl)
|
|
||||||
|
|
||||||
expect(await text('.vapor > h2')).toContain('Vapor component in VDOM')
|
expect(await text('.vapor > h2')).toContain('Vapor component in VDOM')
|
||||||
|
|
||||||
expect(await text('.vapor-prop')).toContain('hello')
|
expect(await text('.vapor-prop')).toContain('hello')
|
||||||
|
@ -82,4 +85,33 @@ describe('vdom / vapor interop', () => {
|
||||||
},
|
},
|
||||||
E2E_TIMEOUT,
|
E2E_TIMEOUT,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
describe('teleport', () => {
|
||||||
|
const testSelector = '.teleport'
|
||||||
|
test('render vapor component', async () => {
|
||||||
|
const targetSelector = `${testSelector} .teleport-target`
|
||||||
|
const containerSelector = `${testSelector} .render-vapor-comp`
|
||||||
|
const buttonSelector = `${containerSelector} button`
|
||||||
|
|
||||||
|
// teleport is disabled by default
|
||||||
|
expect(await html(containerSelector)).toBe(
|
||||||
|
`<button>toggle</button><div>vapor comp</div>`,
|
||||||
|
)
|
||||||
|
expect(await html(targetSelector)).toBe('')
|
||||||
|
|
||||||
|
// disabled -> enabled
|
||||||
|
await click(buttonSelector)
|
||||||
|
await nextTick()
|
||||||
|
expect(await html(containerSelector)).toBe(`<button>toggle</button>`)
|
||||||
|
expect(await html(targetSelector)).toBe('<div>vapor comp</div>')
|
||||||
|
|
||||||
|
// enabled -> disabled
|
||||||
|
await click(buttonSelector)
|
||||||
|
await nextTick()
|
||||||
|
expect(await html(containerSelector)).toBe(
|
||||||
|
`<button>toggle</button><div>vapor comp</div>`,
|
||||||
|
)
|
||||||
|
expect(await html(targetSelector)).toBe('')
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import VaporComp from './VaporComp.vue'
|
import VaporComp from './components/VaporComp.vue'
|
||||||
|
import SimpleVaporComp from './components/SimpleVaporComp.vue'
|
||||||
|
|
||||||
const msg = ref('hello')
|
const msg = ref('hello')
|
||||||
const passSlot = ref(true)
|
const passSlot = ref(true)
|
||||||
|
const disabled = ref(true)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -19,4 +21,16 @@ const passSlot = ref(true)
|
||||||
|
|
||||||
<template #test v-if="passSlot">A test slot</template>
|
<template #test v-if="passSlot">A test slot</template>
|
||||||
</VaporComp>
|
</VaporComp>
|
||||||
|
|
||||||
|
<!-- teleport -->
|
||||||
|
<div class="teleport">
|
||||||
|
<div class="teleport-target"></div>
|
||||||
|
<div class="render-vapor-comp">
|
||||||
|
<button @click="disabled = !disabled">toggle</button>
|
||||||
|
<Teleport to=".teleport-target" defer :disabled="disabled">
|
||||||
|
<SimpleVaporComp />
|
||||||
|
</Teleport>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- teleport end-->
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
<script setup vapor lang="ts">
|
||||||
|
const msg = 'vapor comp'
|
||||||
|
</script>
|
||||||
|
<template>
|
||||||
|
<div>{{ msg }}</div>
|
||||||
|
</template>
|
Loading…
Reference in New Issue