|
| 1 | +import path from 'node:path' |
| 2 | +import { |
| 3 | + E2E_TIMEOUT, |
| 4 | + setupPuppeteer, |
| 5 | +} from '../../../packages/vue/__tests__/e2e/e2eUtils' |
| 6 | +import connect from 'connect' |
| 7 | +import sirv from 'sirv' |
| 8 | +import { nextTick } from 'vue' |
| 9 | +import { ports } from '../utils' |
| 10 | +const { page, click, html } = setupPuppeteer() |
| 11 | + |
| 12 | +describe('vdom / vapor interop', () => { |
| 13 | + let server: any |
| 14 | + const port = ports.teleport |
| 15 | + beforeAll(() => { |
| 16 | + server = connect() |
| 17 | + .use(sirv(path.resolve(import.meta.dirname, '../dist'))) |
| 18 | + .listen(port) |
| 19 | + process.on('SIGTERM', () => server && server.close()) |
| 20 | + }) |
| 21 | + |
| 22 | + afterAll(() => { |
| 23 | + server.close() |
| 24 | + }) |
| 25 | + |
| 26 | + beforeEach(async () => { |
| 27 | + const baseUrl = `http://localhost:${port}/teleport/` |
| 28 | + await page().goto(baseUrl) |
| 29 | + await page().waitForSelector('#app') |
| 30 | + }) |
| 31 | + |
| 32 | + describe('vapor teleport', () => { |
| 33 | + test( |
| 34 | + 'render vdom component', |
| 35 | + async () => { |
| 36 | + const targetSelector = '.target' |
| 37 | + const testSelector = '.interop-render-vdom-comp' |
| 38 | + const containerSelector = `${testSelector} > div` |
| 39 | + const btnSelector = `${testSelector} > button` |
| 40 | + |
| 41 | + // teleport is disabled |
| 42 | + expect(await html(containerSelector)).toBe('<h1>vdom comp</h1>') |
| 43 | + expect(await html(targetSelector)).toBe('') |
| 44 | + |
| 45 | + // enable teleport |
| 46 | + await click(btnSelector) |
| 47 | + await nextTick() |
| 48 | + |
| 49 | + expect(await html(containerSelector)).toBe('') |
| 50 | + expect(await html(targetSelector)).toBe('<h1>vdom comp</h1>') |
| 51 | + |
| 52 | + // disable teleport |
| 53 | + await click(btnSelector) |
| 54 | + await nextTick() |
| 55 | + expect(await html(containerSelector)).toBe('<h1>vdom comp</h1>') |
| 56 | + expect(await html(targetSelector)).toBe('') |
| 57 | + }, |
| 58 | + E2E_TIMEOUT, |
| 59 | + ) |
| 60 | + }) |
| 61 | +}) |
0 commit comments