mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-23 22:25:12 +00:00
a522aaf125
* misc: add user-defined chokidar files to watch * Improved user-defined chokidar files setup * Improved user-defined chokidar files setup (2) * Added custom file for CLI watch test * Added cli.dev.test.js * Added cli.dev.test.js (2) * Remove cli-start/cli.dev, just use cli.test * Refactored CLI test * Missing dot in fname * Improved user-defined chokidar files setup (3) * Fix killNuxt() * Remove genHandlers * Refactored CLI test (2) * Refactor exitCode * Remove debugging code * Remove debugging code (2) * Linting * Linting (2) * Disable nuxt-start test for now * Disable nuxt-start test for now (2) * Tweaking nuxt-start test * Tweaking nuxt-start test (2) * Tweaking nuxt-start test (3) * Fix ext * Tweaked wait params * Fix conflicts * hotfix * nuxt-dev tweak * Add blank line after variables declaration * Disable waitFor() test due to random failure in appveyor * Fixed error msg * Refactored into builder.js * Refactored into builder.js (2) * Remove unnecessary import from nuxt-dev * Fixed nuxt-dev test * Debugging nuxt-dev test * Debugging nuxt-dev test (2) * Skip in appveyor * Linting * Requested changes * Hook into nuxt-dev * Hook into nuxt-dev (2) * Get fname * Get fname (2) * Get fname (3) * Change hook name * Fixed conflict
81 lines
2.3 KiB
JavaScript
81 lines
2.3 KiB
JavaScript
import { spawn } from 'child_process'
|
|
import { resolve, join } from 'path'
|
|
import { writeFileSync } from 'fs-extra'
|
|
import { getPort, rp, waitUntil } from '../utils'
|
|
|
|
let port
|
|
const rootDir = resolve(__dirname, '..', 'fixtures/cli')
|
|
|
|
const url = route => 'http://localhost:' + port + route
|
|
const nuxtBin = resolve(__dirname, '..', '..', 'bin', 'nuxt')
|
|
|
|
const killNuxt = async (nuxtInt) => {
|
|
let exitCode
|
|
nuxtInt.on('close', (code) => { exitCode = code })
|
|
nuxtInt.kill()
|
|
// Wait max 10s for the process to be killed
|
|
if (await waitUntil(() => exitCode !== undefined, 10)) {
|
|
console.warn( // eslint-disable-line no-console
|
|
`we were unable to automatically kill the child process with pid: ${
|
|
nuxtInt.pid
|
|
}`
|
|
)
|
|
}
|
|
}
|
|
|
|
describe.skip.appveyor('cli', () => {
|
|
test('nuxt dev', async () => {
|
|
let stdout = ''
|
|
const env = process.env
|
|
env.PORT = port = await getPort()
|
|
|
|
const nuxtDev = spawn('node', [nuxtBin, 'dev', rootDir], { env })
|
|
nuxtDev.stdout.on('data', (data) => { stdout += data })
|
|
|
|
// Wait max 20s for the starting
|
|
await waitUntil(() => stdout.includes(`${port}`))
|
|
|
|
// Change file specified in `watchers` (nuxt.config.js)
|
|
const customFilePath = join(rootDir, 'custom.file')
|
|
writeFileSync(customFilePath, 'This file is used to test custom chokidar watchers.')
|
|
|
|
// Must see two compilations in the log
|
|
expect(
|
|
stdout.indexOf('Compiled client') !==
|
|
stdout.lastIndexOf('Compiled client')
|
|
)
|
|
await killNuxt(nuxtDev)
|
|
})
|
|
|
|
test('nuxt start', async () => {
|
|
let stdout = ''
|
|
let error
|
|
|
|
const env = process.env
|
|
env.PORT = port = await getPort()
|
|
|
|
await new Promise((resolve) => {
|
|
const nuxtBuild = spawn('node', [nuxtBin, 'build', rootDir], { env })
|
|
nuxtBuild.on('close', () => { resolve() })
|
|
})
|
|
|
|
const nuxtStart = spawn('node', [nuxtBin, 'start', rootDir], { env })
|
|
|
|
nuxtStart.stdout.on('data', (data) => { stdout += data })
|
|
nuxtStart.on('error', (err) => { error = err })
|
|
|
|
// Wait max 20s for the starting
|
|
if (await waitUntil(() => stdout.includes(`${port}`))) {
|
|
error = 'server failed to start successfully in 20 seconds'
|
|
}
|
|
|
|
expect(error).toBe(undefined)
|
|
expect(stdout.includes('Listening on')).toBe(true)
|
|
|
|
const html = await rp(url('/'))
|
|
expect(html).toMatch(('<div>CLI Test</div>'))
|
|
|
|
await killNuxt(nuxtStart)
|
|
})
|
|
})
|