Nuxt/packages/cli/test/unit/start.test.js
Pim 3e9eee2549 fix: dont force exit when it was explicitly disabled (#4973)
* fix: remove slash from warning text

* fix: dont force-exit when explicitly disabled

chore: add tests for force-exit behaviour

* feat: default option value can be fn
2019-02-08 13:36:47 +03:30

66 lines
1.7 KiB
JavaScript

import fs from 'fs-extra'
import * as utils from '../../src/utils/'
import { consola, mockGetNuxtStart, mockGetNuxtConfig, NuxtCommand } from '../utils'
describe('start', () => {
let start
beforeAll(async () => {
start = await import('../../src/commands/start').then(m => m.default)
jest.spyOn(utils, 'forceExit').mockImplementation(() => {})
})
afterEach(() => {
if (fs.existsSync.mockRestore) {
fs.existsSync.mockRestore()
}
jest.resetAllMocks()
})
test('has run function', () => {
expect(typeof start.run).toBe('function')
})
test('no error if dist dir exists', async () => {
mockGetNuxtStart()
mockGetNuxtConfig()
await NuxtCommand.from(start).run()
expect(consola.fatal).not.toHaveBeenCalled()
})
test('no error on ssr and server bundle exists', async () => {
mockGetNuxtStart(true)
mockGetNuxtConfig()
await NuxtCommand.from(start).run()
expect(consola.fatal).not.toHaveBeenCalled()
})
test('start doesnt force-exit by default', async () => {
mockGetNuxtStart()
const cmd = NuxtCommand.from(start, ['start', '.'])
await cmd.run()
expect(utils.forceExit).not.toHaveBeenCalled()
})
test('start can set force exit explicitly', async () => {
mockGetNuxtStart()
const cmd = NuxtCommand.from(start, ['start', '.', '--force-exit'])
await cmd.run()
expect(utils.forceExit).toHaveBeenCalledTimes(1)
expect(utils.forceExit).toHaveBeenCalledWith('start', false)
})
test('start can disable force exit explicitly', async () => {
mockGetNuxtStart()
const cmd = NuxtCommand.from(start, ['start', '.', '--no-force-exit'])
await cmd.run()
expect(utils.forceExit).not.toHaveBeenCalled()
})
})