2016-12-09 17:51:19 +00:00
|
|
|
import test from 'ava'
|
2016-12-09 22:29:04 +00:00
|
|
|
import { resolve } from 'path'
|
|
|
|
|
2016-12-09 17:51:19 +00:00
|
|
|
const Nuxt = require('../')
|
|
|
|
|
2016-12-09 22:29:04 +00:00
|
|
|
test('Nuxt.js Class', t => {
|
2016-12-09 17:51:19 +00:00
|
|
|
t.is(typeof Nuxt, 'function')
|
|
|
|
})
|
|
|
|
|
2016-12-09 22:29:04 +00:00
|
|
|
test('Nuxt.js Instance', t => {
|
|
|
|
const nuxt = new Nuxt()
|
2016-12-09 17:51:19 +00:00
|
|
|
t.is(typeof nuxt, 'object')
|
|
|
|
t.is(nuxt.dev, true)
|
|
|
|
t.is(typeof nuxt.build, 'function')
|
|
|
|
t.is(typeof nuxt.generate, 'function')
|
|
|
|
})
|
2016-12-09 22:29:04 +00:00
|
|
|
|
|
|
|
test('Fail when build not done and try to render', async t => {
|
|
|
|
const nuxt = new Nuxt({
|
|
|
|
dev: false,
|
|
|
|
rootDir: resolve(__dirname, 'empty')
|
|
|
|
})
|
|
|
|
return new Promise((resolve) => {
|
|
|
|
var oldExit = process.exit
|
|
|
|
var oldCE = console.error // eslint-disable-line no-console
|
|
|
|
var _log = ''
|
|
|
|
console.error = (s) => { _log += s } // eslint-disable-line no-console
|
|
|
|
process.exit = (code) => {
|
|
|
|
process.exit = oldExit
|
|
|
|
console.error = oldCE // eslint-disable-line no-console
|
|
|
|
t.is(code, 1)
|
2016-12-10 09:57:50 +00:00
|
|
|
t.true(_log.includes('No build files found, please run `nuxt build` before launching `nuxt start`'))
|
2016-12-09 22:29:04 +00:00
|
|
|
resolve()
|
|
|
|
}
|
|
|
|
nuxt.render()
|
|
|
|
})
|
|
|
|
})
|
2016-12-10 09:57:50 +00:00
|
|
|
|
|
|
|
test('Fail to build when no pages/ directory but is in the parent', async t => {
|
|
|
|
const nuxt = new Nuxt({
|
|
|
|
dev: false,
|
|
|
|
rootDir: resolve(__dirname, 'empty', 'pages')
|
|
|
|
})
|
|
|
|
var oldExit = process.exit
|
|
|
|
var oldCE = console.error // eslint-disable-line no-console
|
|
|
|
var _log = ''
|
|
|
|
console.error = (s) => { _log += s } // eslint-disable-line no-console
|
|
|
|
process.exit = (code) => {
|
|
|
|
process.exit = oldExit
|
|
|
|
console.error = oldCE // eslint-disable-line no-console
|
|
|
|
t.is(code, 1)
|
|
|
|
t.true(_log.includes('No `pages` directory found. Did you mean to run `nuxt` in the parent (`../`) directory?'))
|
|
|
|
resolve()
|
|
|
|
}
|
|
|
|
nuxt.build()
|
|
|
|
})
|
|
|
|
|
|
|
|
test('Fail to build when no pages/ directory', async t => {
|
|
|
|
const nuxt = new Nuxt({
|
|
|
|
dev: false,
|
|
|
|
rootDir: resolve(__dirname)
|
|
|
|
})
|
|
|
|
var oldExit = process.exit
|
|
|
|
var oldCE = console.error // eslint-disable-line no-console
|
|
|
|
var _log = ''
|
|
|
|
console.error = (s) => { _log += s } // eslint-disable-line no-console
|
|
|
|
process.exit = (code) => {
|
|
|
|
process.exit = oldExit
|
|
|
|
console.error = oldCE // eslint-disable-line no-console
|
|
|
|
t.is(code, 1)
|
|
|
|
t.true(_log.includes('Couldn\'t find a `pages` directory. Please create one under the project root'))
|
|
|
|
resolve()
|
|
|
|
}
|
|
|
|
nuxt.build()
|
|
|
|
})
|