Nuxt/test/unit/nuxt.test.js

72 lines
2.0 KiB
JavaScript
Raw Normal View History

2018-03-18 19:31:32 +00:00
import { resolve } from 'path'
import { loadFixture, getPort, Nuxt, Builder } from '../utils'
2018-03-18 19:31:32 +00:00
describe('nuxt', () => {
test('Nuxt.js Class', () => {
expect(typeof Nuxt).toBe('function')
})
test('Nuxt.js Instance', async () => {
const config = await loadFixture('empty')
2018-03-18 23:41:14 +00:00
const nuxt = new Nuxt(config)
2018-03-18 19:31:32 +00:00
expect(typeof nuxt).toBe('object')
2018-03-18 23:41:14 +00:00
expect(nuxt.options.dev).toBe(false)
2018-03-18 19:31:32 +00:00
expect(typeof nuxt._ready.then).toBe('function')
2018-03-18 23:41:14 +00:00
2018-03-18 19:31:32 +00:00
await nuxt.ready()
2018-03-18 23:41:14 +00:00
2018-03-18 19:31:32 +00:00
expect(nuxt.initialized).toBe(true)
})
test('Fail to build when no pages/ directory but is in the parent', () => {
const nuxt = new Nuxt({
dev: false,
2018-03-19 10:06:45 +00:00
rootDir: resolve(__dirname, '..', 'fixtures', 'empty', 'pages')
2018-03-18 19:31:32 +00:00
})
2018-03-18 23:41:14 +00:00
return new Builder(nuxt).build().catch((err) => {
2018-08-08 10:54:05 +00:00
const s = String(err)
2018-11-08 09:41:24 +00:00
expect(s).toContain('No `pages` directory found')
expect(s).toContain('Did you mean to run `nuxt` in the parent (`../`) directory?')
2018-03-18 19:31:32 +00:00
})
})
test('Build with default page when no pages/ directory', async () => {
const nuxt = new Nuxt()
new Builder(nuxt).build()
const port = await getPort()
await nuxt.server.listen(port, 'localhost')
2018-03-18 23:41:14 +00:00
const { html } = await nuxt.server.renderRoute('/')
2018-11-08 09:41:24 +00:00
expect(html).toContain('<h2 class="Landscape__Title">')
expect(/Landscape__Page__Explanation/.test(html)).toBe(true)
await nuxt.close()
2018-03-18 19:31:32 +00:00
})
test('Fail to build when specified plugin isn\'t found', () => {
const nuxt = new Nuxt({
dev: false,
rootDir: resolve(__dirname, '..', 'fixtures', 'missing-plugin')
})
return new Builder(nuxt).build().catch((err) => {
const s = String(err)
2018-11-08 09:41:24 +00:00
expect(s).toContain('Plugin not found')
})
})
test('Warn when styleResource isn\'t found', () => {
const nuxt = new Nuxt({
dev: false,
rootDir: resolve(__dirname, '..', 'fixtures', 'missing-style-resource')
})
return new Builder(nuxt).build().catch((err) => {
const s = String(err)
2018-11-08 09:41:24 +00:00
expect(s).toContain('Style Resource not found')
})
})
2018-03-18 19:31:32 +00:00
})