mirror of
https://github.com/hanzoai/vitest.git
synced 2026-09-24 17:04:25 +00:00
117 lines
3.4 KiB
TypeScript
117 lines
3.4 KiB
TypeScript
import fs from 'node:fs'
|
|
import path from 'node:path'
|
|
import { expect, test } from 'vitest'
|
|
import { runVitest } from '../../test-utils'
|
|
|
|
test('snapshots in skipped test/suite is not obsolete', async () => {
|
|
// create snapshot on first run
|
|
const root = path.join(import.meta.dirname, 'fixtures/skip-test')
|
|
|
|
fs.rmSync(path.join(root, '__snapshots__'), { recursive: true, force: true })
|
|
let vitest = await runVitest({
|
|
root,
|
|
update: true,
|
|
})
|
|
expect(vitest.stdout).toContain('Snapshots 2 written')
|
|
expect(fs.readFileSync(path.join(root, '__snapshots__/repro.test.ts.snap'), 'utf-8')).toMatchInlineSnapshot(`
|
|
"// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
|
|
exports[\`repro suite > inner case 1\`] = \`"hi-1"\`;
|
|
|
|
exports[\`top-level case 1\`] = \`"hi-2"\`;
|
|
"
|
|
`)
|
|
|
|
// running with `skipIf` enabled should not show "obsolete"
|
|
vitest = await runVitest({
|
|
root,
|
|
env: {
|
|
ENABLE_SKIP: '1',
|
|
},
|
|
})
|
|
expect(vitest.stdout).toContain('2 skipped')
|
|
expect(vitest.stdout).not.toContain('obsolete')
|
|
|
|
// running with `skipIf` and `update` should keep snapshots
|
|
vitest = await runVitest({
|
|
root,
|
|
update: true,
|
|
env: {
|
|
ENABLE_SKIP: '1',
|
|
},
|
|
})
|
|
expect(fs.readFileSync(path.join(root, '__snapshots__/repro.test.ts.snap'), 'utf-8')).toMatchInlineSnapshot(`
|
|
"// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
|
|
exports[\`repro suite > inner case 1\`] = \`"hi-1"\`;
|
|
|
|
exports[\`top-level case 1\`] = \`"hi-2"\`;
|
|
"
|
|
`)
|
|
})
|
|
|
|
test('handle obsoleteness of toMatchSnapshot("custom message")', async () => {
|
|
const root = path.join(import.meta.dirname, './fixtures/skip-test-custom')
|
|
|
|
// clear snapshots
|
|
fs.rmSync(path.join(root, '__snapshots__'), { recursive: true, force: true })
|
|
|
|
// create snapshot on first run
|
|
let vitest = await runVitest({
|
|
root,
|
|
update: true,
|
|
})
|
|
expect(vitest.stdout).toContain('Snapshots 4 written')
|
|
expect(fs.readFileSync(path.join(root, '__snapshots__/basic.test.ts.snap'), 'utf-8')).toMatchInlineSnapshot(`
|
|
"// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
|
|
exports[\`custom a > x 1\`] = \`0\`;
|
|
|
|
exports[\`custom a > y 1\`] = \`0\`;
|
|
|
|
exports[\`custom b > w 1\`] = \`0\`;
|
|
|
|
exports[\`custom b > z 1\`] = \`0\`;
|
|
"
|
|
`)
|
|
|
|
// Skipped tests' `toMatchSnapshot("...")` is not considered obsolete
|
|
vitest = await runVitest({
|
|
root,
|
|
testNamePattern: 'custom a',
|
|
})
|
|
expect(vitest.stdout).toContain('1 passed')
|
|
expect(vitest.stdout).toContain('1 skipped')
|
|
expect(vitest.stdout).not.toContain('obsolete')
|
|
|
|
vitest = await runVitest({
|
|
root,
|
|
testNamePattern: 'custom b',
|
|
})
|
|
expect(vitest.stdout).toContain('1 passed')
|
|
expect(vitest.stdout).toContain('1 skipped')
|
|
expect(vitest.stdout).not.toContain('obsolete')
|
|
|
|
// check snapshot doesn't change when skip + update
|
|
vitest = await runVitest({
|
|
root,
|
|
update: true,
|
|
testNamePattern: 'custom a',
|
|
})
|
|
expect(vitest.stdout).toContain('1 passed')
|
|
expect(vitest.stdout).toContain('1 skipped')
|
|
expect(vitest.stdout).not.toContain('obsolete')
|
|
expect(fs.readFileSync(path.join(root, '__snapshots__/basic.test.ts.snap'), 'utf-8')).toMatchInlineSnapshot(`
|
|
"// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
|
|
exports[\`custom a > x 1\`] = \`0\`;
|
|
|
|
exports[\`custom a > y 1\`] = \`0\`;
|
|
|
|
exports[\`custom b > w 1\`] = \`0\`;
|
|
|
|
exports[\`custom b > z 1\`] = \`0\`;
|
|
"
|
|
`)
|
|
})
|