mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-24 06:35:10 +00:00
45 lines
1.5 KiB
JavaScript
45 lines
1.5 KiB
JavaScript
|
import { promises as fs } from 'fs'
|
||
|
import { TARGETS } from '@nuxt/utils'
|
||
|
import * as utils from '../../src/utils/'
|
||
|
import { consola, mockNuxt, mockGetNuxtConfig, NuxtCommand } from '../utils'
|
||
|
|
||
|
describe('serve', () => {
|
||
|
let serve
|
||
|
|
||
|
beforeAll(async () => {
|
||
|
serve = await import('../../src/commands/serve').then(m => m.default)
|
||
|
jest.spyOn(utils, 'forceExit').mockImplementation(() => {})
|
||
|
})
|
||
|
|
||
|
afterEach(() => {
|
||
|
jest.resetAllMocks()
|
||
|
})
|
||
|
|
||
|
test('has run function', () => {
|
||
|
expect(typeof serve.run).toBe('function')
|
||
|
})
|
||
|
|
||
|
test('error if starts with server target', () => {
|
||
|
mockGetNuxtConfig({ target: TARGETS.server })
|
||
|
const cmd = NuxtCommand.from(serve)
|
||
|
expect(cmd.run()).rejects.toThrow(new Error('You cannot use `nuxt serve` with server target, please use `nuxt start`'))
|
||
|
})
|
||
|
|
||
|
test('error if dist/ does not exists', () => {
|
||
|
mockGetNuxtConfig({ target: TARGETS.static })
|
||
|
const cmd = NuxtCommand.from(serve)
|
||
|
expect(cmd.run()).rejects.toThrow(new Error('Output directory `dist/` does not exists, please run `nuxt export` before `nuxt serve`.'))
|
||
|
})
|
||
|
|
||
|
test('no error if dist/ dir exists', async () => {
|
||
|
mockGetNuxtConfig({ target: TARGETS.static })
|
||
|
mockNuxt()
|
||
|
fs.stat = jest.fn().mockImplementationOnce(() => Promise.resolve(({
|
||
|
isDirectory: () => true
|
||
|
})))
|
||
|
fs.readFile = jest.fn().mockImplementationOnce(() => Promise.resolve('HTML here'))
|
||
|
await NuxtCommand.from(serve).run()
|
||
|
expect(consola.fatal).not.toHaveBeenCalled()
|
||
|
})
|
||
|
})
|