Skip to content

Commit 021c4ea

Browse files
committed
chore: migrate to @nuxt/test-utils
1 parent dde86a7 commit 021c4ea

File tree

5 files changed

+210
-51
lines changed

5 files changed

+210
-51
lines changed

jest.config.js

+1-11
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,3 @@
11
module.exports = {
2-
testEnvironment: 'node',
3-
preset: 'ts-jest',
4-
collectCoverage: true,
5-
globals: {
6-
'ts-jest': {
7-
tsConfig: 'tsconfig.test.json',
8-
diagnostics: {
9-
ignoreCodes: [2345]
10-
}
11-
}
12-
}
2+
preset: '@nuxt/test-utils'
133
}

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
},
3030
"devDependencies": {
3131
"@babel/preset-env": "latest",
32+
"@nuxt/test-utils": "^0.0.1",
3233
"@nuxt/types": "latest",
3334
"@nuxt/typescript-build": "latest",
3435
"@nuxt/typescript-runtime": "latest",

test/module.test.ts

+26-28
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
import path from 'path'
2-
import { loadNuxt } from '@nuxt/core-edge'
3-
import { getBuilder } from '@nuxt/builder-edge'
1+
// @ts-nocheck nuxt internals not typed!
2+
import { setupTest, getNuxt, getContext } from '@nuxt/test-utils'
43

54
const watchers: any[] = []
6-
75
jest.mock('chokidar', () => ({
86
watch () {
97
return {
@@ -14,61 +12,61 @@ jest.mock('chokidar', () => ({
1412
}
1513
}
1614
}))
17-
1815
const callChokidarEvent = (eventName, filename = 'test.js') => Promise.all(watchers.map(w => w.fn(eventName, filename)))
1916

20-
const warn = console.warn = jest.fn() // eslint-disable-line no-console
21-
22-
describe('module', () => {
23-
let nuxt, builder, hookFn
24-
25-
beforeAll(async () => {
26-
nuxt = await loadNuxt({ rootDir: path.resolve('test/fixture'), for: 'dev' })
27-
builder = getBuilder(nuxt)
28-
hookFn = jest.fn()
29-
nuxt.hook('components:dirs', hookFn)
30-
31-
await builder.build()
32-
expect(warn).toBeCalledWith('Components directory not found: `~/non-existent`')
17+
describe('My test', () => {
18+
console.warn = jest.fn() // eslint-disable-line no-console
19+
const componentsDirsHook = jest.fn()
3320

34-
builder.generateRoutesAndFiles = jest.fn()
35-
}, 60000)
21+
setupTest({
22+
testDir: __dirname,
23+
fixture: 'fixture',
24+
configFile: 'nuxt.config.ts',
25+
build: true,
26+
config: {
27+
dev: true,
28+
hooks: {
29+
'components:dirs': componentsDirsHook,
30+
'build:before' (builder) {
31+
jest.spyOn(builder, 'generateRoutesAndFiles')
32+
}
33+
}
34+
}
35+
})
3636

3737
test('displays autoImported components', async () => {
38-
const { html } = await nuxt.server.renderRoute('/')
38+
const { html } = await getNuxt().server.renderRoute('/')
3939
expect(html).toContain('Foo')
4040
expect(html).toContain('Bar')
4141
expect(html).toContain('Base Button')
4242
expect(html).toContain('Icon Home')
4343
})
4444

4545
test('displays autoImported components in pug template', async () => {
46-
const { html } = await nuxt.server.renderRoute('/pug')
46+
const { html } = await getNuxt().server.renderRoute('/pug')
4747
expect(html).toContain('Foo')
4848
expect(html).toContain('Bar')
4949
expect(html).toContain('Base Button')
5050
expect(html).toContain('Icon Home')
5151
})
5252

5353
test('watch: rebuild on add/remove', async () => {
54+
const { builder } = getContext()
5455
builder.generateRoutesAndFiles.mockClear()
5556
await callChokidarEvent('add')
5657
expect(builder.generateRoutesAndFiles).toHaveBeenCalledTimes(1)
5758
await callChokidarEvent('unlink')
5859
expect(builder.generateRoutesAndFiles).toHaveBeenCalledTimes(2)
5960
})
6061

61-
test.skip('watch: no rebuild on other events', async () => {
62+
test('watch: no rebuild on other events', async () => {
63+
const { builder } = getContext()
6264
builder.generateRoutesAndFiles.mockClear()
6365
await callChokidarEvent('foo')
6466
expect(builder.generateRoutesAndFiles).not.toHaveBeenCalled()
6567
})
6668

6769
test('hook: components:dirs hook is called', () => {
68-
expect(hookFn).toHaveBeenCalled()
69-
})
70-
71-
afterAll(async () => {
72-
await nuxt.close()
70+
expect(componentsDirsHook).toHaveBeenCalled()
7371
})
7472
})

tsconfig.test.json

-11
This file was deleted.

0 commit comments

Comments
 (0)