Skip to content

Commit 36bdcc8

Browse files
committed
test(vapor-e2e): split transition/transition-group e2e cases into file-based
1 parent 87e6b45 commit 36bdcc8

File tree

61 files changed

+1835
-1238
lines changed

Some content is hidden

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

61 files changed

+1835
-1238
lines changed

packages-private/vapor-e2e-test/__tests__/todomvc.spec.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,12 @@ describe('e2e: todomvc', () => {
2323
} = setupPuppeteer()
2424

2525
let server: any
26-
const port = '8194'
26+
let port = 0
2727
beforeAll(() => {
2828
server = connect()
2929
.use(sirv(path.resolve(import.meta.dirname, '../dist')))
30-
.listen(port)
30+
.listen(0)
31+
port = server.address().port
3132
process.on('SIGTERM', () => server && server.close())
3233
})
3334

packages-private/vapor-e2e-test/__tests__/transition-group.spec.ts

Lines changed: 60 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,37 @@ import sirv from 'sirv'
88
import { expect } from 'vitest'
99
const { page, html, transitionStart, waitForInnerHTML } = setupPuppeteer()
1010

11+
function toSlug(value: string) {
12+
return value
13+
.trim()
14+
.toLowerCase()
15+
.replace(/[^a-z0-9]+/g, '-')
16+
.replace(/^-+|-+$/g, '')
17+
}
18+
19+
function resolveCaseId(testName: string) {
20+
const parts = testName
21+
.split(' > ')
22+
.map(item => item.trim())
23+
.filter(Boolean)
24+
const testTitle = parts[parts.length - 1]
25+
if (!testTitle) {
26+
throw new Error(`[transition-group] Invalid test name: "${testName}"`)
27+
}
28+
const suiteParts = parts.slice(1, -1)
29+
const folderParts = suiteParts.length ? suiteParts : [parts[0]]
30+
const folderPath = folderParts.map(toSlug).join('/')
31+
return `${folderPath}/${toSlug(testTitle)}`
32+
}
33+
1134
describe('vapor transition-group', () => {
1235
let server: any
13-
const port = '8196'
36+
let port = 0
1437
beforeAll(() => {
1538
server = connect()
1639
.use(sirv(path.resolve(import.meta.dirname, '../dist')))
17-
.listen(port)
40+
.listen(0)
41+
port = server.address().port
1842
process.on('SIGTERM', () => server && server.close())
1943
})
2044

@@ -23,7 +47,9 @@ describe('vapor transition-group', () => {
2347
})
2448

2549
beforeEach(async () => {
26-
const baseUrl = `http://localhost:${port}/transition-group/`
50+
const testName = expect.getState().currentTestName || ''
51+
const caseId = resolveCaseId(testName)
52+
const baseUrl = `http://localhost:${port}/transition-group/?case=${caseId}`
2753
await page().goto(baseUrl)
2854
await page().waitForSelector('#app')
2955
})
@@ -408,38 +434,40 @@ describe('vapor transition-group', () => {
408434
E2E_TIMEOUT,
409435
)
410436

411-
test('interop: render vdom component', async () => {
412-
const btnSelector = '.interop > button'
413-
const containerSelector = '.interop > div'
437+
describe('interop', () => {
438+
test('render vdom component', async () => {
439+
const btnSelector = '.interop > button'
440+
const containerSelector = '.interop > div'
414441

415-
expect(await html(containerSelector)).toBe(
416-
`<div><div>a</div></div>` +
417-
`<div><div>b</div></div>` +
418-
`<div><div>c</div></div>`,
419-
)
442+
expect(await html(containerSelector)).toBe(
443+
`<div><div>a</div></div>` +
444+
`<div><div>b</div></div>` +
445+
`<div><div>c</div></div>`,
446+
)
420447

421-
expect(
422-
(await transitionStart(btnSelector, containerSelector)).innerHTML,
423-
).toBe(
424-
`<div class="test-leave-from test-leave-active"><div>a</div></div>` +
425-
`<div class="test-move" style=""><div>b</div></div>` +
426-
`<div class="test-move" style=""><div>c</div></div>` +
427-
`<div class="test-enter-from test-enter-active"><div>d</div></div>`,
428-
)
448+
expect(
449+
(await transitionStart(btnSelector, containerSelector)).innerHTML,
450+
).toBe(
451+
`<div class="test-leave-from test-leave-active"><div>a</div></div>` +
452+
`<div class="test-move" style=""><div>b</div></div>` +
453+
`<div class="test-move" style=""><div>c</div></div>` +
454+
`<div class="test-enter-from test-enter-active"><div>d</div></div>`,
455+
)
429456

430-
await waitForInnerHTML(
431-
containerSelector,
432-
`<div class="test-leave-active test-leave-to"><div>a</div></div>` +
433-
`<div class="test-move" style=""><div>b</div></div>` +
434-
`<div class="test-move" style=""><div>c</div></div>` +
435-
`<div class="test-enter-active test-enter-to"><div>d</div></div>`,
436-
)
457+
await waitForInnerHTML(
458+
containerSelector,
459+
`<div class="test-leave-active test-leave-to"><div>a</div></div>` +
460+
`<div class="test-move" style=""><div>b</div></div>` +
461+
`<div class="test-move" style=""><div>c</div></div>` +
462+
`<div class="test-enter-active test-enter-to"><div>d</div></div>`,
463+
)
437464

438-
await waitForInnerHTML(
439-
containerSelector,
440-
`<div class="" style=""><div>b</div></div>` +
441-
`<div class="" style=""><div>c</div></div>` +
442-
`<div class=""><div>d</div></div>`,
443-
)
465+
await waitForInnerHTML(
466+
containerSelector,
467+
`<div class="" style=""><div>b</div></div>` +
468+
`<div class="" style=""><div>c</div></div>` +
469+
`<div class=""><div>d</div></div>`,
470+
)
471+
})
444472
})
445473
})

0 commit comments

Comments
 (0)