Skip to content

Commit 532dbfd

Browse files
committed
chore: Merge branch 'minor' into edison/feat/vaporHydration
2 parents f270791 + 7204cb6 commit 532dbfd

File tree

126 files changed

+12752
-1237
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

126 files changed

+12752
-1237
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@
9898
"pug": "^3.0.3",
9999
"puppeteer": "~24.16.2",
100100
"rimraf": "^6.0.1",
101-
"rollup": "4.45.1",
102-
"rollup-plugin-dts": "6.2.1",
101+
"rollup": "^4.52.5",
102+
"rollup-plugin-dts": "^6.2.3",
103103
"rollup-plugin-esbuild": "^6.2.1",
104104
"rollup-plugin-polyfill-node": "^0.13.0",
105105
"semver": "^7.7.2",
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
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+
const { page, html, click, value, enterValue } = setupPuppeteer()
9+
10+
describe('vapor keepalive', () => {
11+
let server: any
12+
const port = '8197'
13+
beforeAll(() => {
14+
server = connect()
15+
.use(sirv(path.resolve(import.meta.dirname, '../dist')))
16+
.listen(port)
17+
process.on('SIGTERM', () => server && server.close())
18+
})
19+
20+
beforeEach(async () => {
21+
const baseUrl = `http://localhost:${port}/keepalive/`
22+
await page().goto(baseUrl)
23+
await page().waitForSelector('#app')
24+
})
25+
26+
afterAll(() => {
27+
server.close()
28+
})
29+
30+
test(
31+
'render vdom component',
32+
async () => {
33+
const testSelector = '.render-vdom-component'
34+
const btnShow = `${testSelector} .btn-show`
35+
const btnToggle = `${testSelector} .btn-toggle`
36+
const container = `${testSelector} > div`
37+
const inputSelector = `${testSelector} input`
38+
39+
let calls = await page().evaluate(() => {
40+
return (window as any).getCalls()
41+
})
42+
expect(calls).toStrictEqual(['mounted', 'activated'])
43+
44+
expect(await html(container)).toBe('<input type="text">')
45+
expect(await value(inputSelector)).toBe('vdom')
46+
47+
// change input value
48+
await enterValue(inputSelector, 'changed')
49+
expect(await value(inputSelector)).toBe('changed')
50+
51+
// deactivate
52+
await click(btnToggle)
53+
expect(await html(container)).toBe('')
54+
calls = await page().evaluate(() => {
55+
return (window as any).getCalls()
56+
})
57+
expect(calls).toStrictEqual(['deactivated'])
58+
59+
// activate
60+
await click(btnToggle)
61+
expect(await html(container)).toBe('<input type="text">')
62+
expect(await value(inputSelector)).toBe('changed')
63+
calls = await page().evaluate(() => {
64+
return (window as any).getCalls()
65+
})
66+
expect(calls).toStrictEqual(['activated'])
67+
68+
// unmount keepalive
69+
await click(btnShow)
70+
expect(await html(container)).toBe('')
71+
calls = await page().evaluate(() => {
72+
return (window as any).getCalls()
73+
})
74+
expect(calls).toStrictEqual(['deactivated', 'unmounted'])
75+
76+
// mount keepalive
77+
await click(btnShow)
78+
expect(await html(container)).toBe('<input type="text">')
79+
expect(await value(inputSelector)).toBe('vdom')
80+
calls = await page().evaluate(() => {
81+
return (window as any).getCalls()
82+
})
83+
expect(calls).toStrictEqual(['mounted', 'activated'])
84+
},
85+
E2E_TIMEOUT,
86+
)
87+
})

0 commit comments

Comments
 (0)