diff --git a/.gitignore b/.gitignore
index 6b2d6f7e1d..0d87892d25 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,7 +9,7 @@ package-lock.json
npm-debug.log*
# Other
-.nuxt
+.nuxt*
.cache
# Dist folder
@@ -47,4 +47,4 @@ coverage
.AppleDesktop
Network Trash Folder
Temporary Items
-.apdisk
\ No newline at end of file
+.apdisk
diff --git a/package.json b/package.json
index e1ed78a84b..af782df7b1 100644
--- a/package.json
+++ b/package.json
@@ -45,7 +45,7 @@
]
},
"scripts": {
- "test": "npm run lint && nyc ava --verbose --serial test/ -- && nyc report --reporter=html",
+ "test": "npm run lint && nyc ava --verbose test/ -- && nyc report --reporter=html",
"coverage": "nyc report --reporter=text-lcov > coverage.lcov && codecov",
"lint": "eslint --ext .js,.vue bin/* build/ lib/ test/ examples/",
"precommit": "npm run lint",
diff --git a/test/basic.csr.test.js b/test/basic.csr.test.js
index 94fada4228..b8108dae16 100644
--- a/test/basic.csr.test.js
+++ b/test/basic.csr.test.js
@@ -2,6 +2,7 @@ import test from 'ava'
import { resolve } from 'path'
import { Nuxt, Builder } from '..'
import * as browser from './helpers/browser'
+import { interceptLog } from './helpers/console'
const port = 4003
const url = (route) => 'http://localhost:' + port + route
@@ -10,36 +11,46 @@ let nuxt = null
let page = null
// Init nuxt.js and create server listening on localhost:4003
-test.before('Init Nuxt.js', async t => {
+test.serial('Init Nuxt.js', async t => {
const options = {
rootDir: resolve(__dirname, 'fixtures/basic'),
- dev: false,
+ buildDir: '.nuxt-csr',
+ dev: true,
head: {
titleTemplate(titleChunk) {
return titleChunk ? `${titleChunk} - Nuxt.js` : 'Nuxt.js'
}
+ },
+ build: {
+ stats: false
}
}
- nuxt = new Nuxt(options)
- await new Builder(nuxt).build()
- await nuxt.listen(port, 'localhost')
+ const logSpy = await interceptLog(async () => {
+ nuxt = new Nuxt(options)
+ await new Builder(nuxt).build()
+ await nuxt.listen(port, 'localhost')
+ })
+
+ t.true(logSpy.calledWithMatch('DONE'))
+ t.true(logSpy.calledWithMatch('OPEN'))
})
-test.before('Start browser', async t => {
+test.serial('Start browser', async t => {
+ t.plan(0) // suppress 'no assertions' warning
await browser.start({
// slowMo: 50,
// headless: false
})
})
-test('Open /', async t => {
+test.serial('Open /', async t => {
page = await browser.page(url('/'))
t.is(await page.$text('h1'), 'Index page')
})
-test('/stateless', async t => {
+test.serial('/stateless', async t => {
const { hook } = await page.nuxt.navigate('/stateless', false)
const loading = await page.nuxt.loadingData()
@@ -48,27 +59,27 @@ test('/stateless', async t => {
t.is(await page.$text('h1'), 'My component!')
})
-test('/css', async t => {
+test.serial('/css', async t => {
await page.nuxt.navigate('/css')
t.is(await page.$text('.red'), 'This is red')
t.is(await page.$eval('.red', (red) => window.getComputedStyle(red).color), 'rgb(255, 0, 0)')
})
-test('/stateful', async t => {
+test.serial('/stateful', async t => {
await page.nuxt.navigate('/stateful')
t.is(await page.$text('p'), 'The answer is 42')
})
-test('/store', async t => {
+test.serial('/store', async t => {
await page.nuxt.navigate('/store')
t.is(await page.$text('h1'), 'Vuex Nested Modules')
t.is(await page.$text('p'), '1')
})
-test('/head', async t => {
+test.serial('/head', async t => {
const msg = new Promise((resolve) => page.on('console', (msg) => resolve(msg.text)))
await page.nuxt.navigate('/head')
const metas = await page.$$attr('meta', 'content')
@@ -79,31 +90,31 @@ test('/head', async t => {
t.is(metas[0], 'my meta')
})
-test('/async-data', async t => {
+test.serial('/async-data', async t => {
await page.nuxt.navigate('/async-data')
t.is(await page.$text('p'), 'Nuxt.js')
})
-test('/await-async-data', async t => {
+test.serial('/await-async-data', async t => {
await page.nuxt.navigate('/await-async-data')
t.is(await page.$text('p'), 'Await Nuxt.js')
})
-test('/callback-async-data', async t => {
+test.serial('/callback-async-data', async t => {
await page.nuxt.navigate('/callback-async-data')
t.is(await page.$text('p'), 'Callback Nuxt.js')
})
-test('/users/1', async t => {
+test.serial('/users/1', async t => {
await page.nuxt.navigate('/users/1')
t.is(await page.$text('h1'), 'User: 1')
})
-test('/validate should display a 404', async t => {
+test.serial('/validate should display a 404', async t => {
await page.nuxt.navigate('/validate')
const error = await page.nuxt.errorData()
@@ -111,39 +122,39 @@ test('/validate should display a 404', async t => {
t.is(error.message, 'This page could not be found')
})
-test('/validate?valid=true', async t => {
+test.serial('/validate?valid=true', async t => {
await page.nuxt.navigate('/validate?valid=true')
t.is(await page.$text('h1'), 'I am valid')
})
-test('/redirect', async t => {
+test.serial('/redirect', async t => {
await page.nuxt.navigate('/redirect')
t.is(await page.$text('h1'), 'Index page')
})
-test('/error', async t => {
+test.serial('/error', async t => {
await page.nuxt.navigate('/error')
t.deepEqual(await page.nuxt.errorData(), { statusCode: 500 })
t.is(await page.$text('.title'), 'Error mouahahah')
})
-test('/error2', async t => {
+test.serial('/error2', async t => {
await page.nuxt.navigate('/error2')
t.is(await page.$text('.title'), 'Custom error')
t.deepEqual(await page.nuxt.errorData(), { message: 'Custom error' })
})
-test('/redirect2', async t => {
+test.serial('/redirect2', async t => {
await page.nuxt.navigate('/redirect2')
t.is(await page.$text('h1'), 'Index page')
})
-test('/redirect3', async t => {
+test.serial('/redirect3', async t => {
// New page for redirecting to external link.
const page = await browser.page(url('/'))
await page.nuxt.navigate('/redirect3', false)
@@ -152,44 +163,44 @@ test('/redirect3', async t => {
t.pass()
})
-test('/no-ssr', async t => {
+test.serial('/no-ssr', async t => {
await page.nuxt.navigate('/no-ssr')
t.is(await page.$text('h1'), 'Displayed only on client-side')
})
-test('/meta', async t => {
+test.serial('/meta', async t => {
await page.nuxt.navigate('/meta')
const state = await page.nuxt.storeState()
t.deepEqual(state.meta, [{ works: true }])
})
-test('/fn-midd', async t => {
+test.serial('/fn-midd', async t => {
await page.nuxt.navigate('/fn-midd')
t.is(await page.$text('.title'), 'You need to ask the permission')
t.deepEqual(await page.nuxt.errorData(), { message: 'You need to ask the permission', statusCode: 403 })
})
-test('/fn-midd?please=true', async t => {
+test.serial('/fn-midd?please=true', async t => {
await page.nuxt.navigate('/fn-midd?please=true')
const h1 = await page.$text('h1')
t.true(h1.includes('Date:'))
})
-test('/router-guard', async t => {
+test.serial('/router-guard', async t => {
await page.nuxt.navigate('/router-guard')
t.is(await page.$text('p'), 'Nuxt.js')
})
// Close server and ask nuxt to stop listening to file changes
-test.after('Closing server and nuxt.js', t => {
- nuxt.close()
+test.after.always('Closing server and nuxt.js', async t => {
+ await nuxt.close()
})
-test.after('Stop browser', async t => {
+test.after.always('Stop browser', async t => {
await browser.stop()
})
diff --git a/test/basic.dev.test.js b/test/basic.dev.test.js
index af13547414..8bd9e552a5 100644
--- a/test/basic.dev.test.js
+++ b/test/basic.dev.test.js
@@ -1,6 +1,6 @@
import test from 'ava'
import { resolve } from 'path'
-import { interceptLog, release } from './helpers/console'
+import { intercept, release } from './helpers/console'
import { Nuxt, Builder, Utils } from '..'
import { truncateSync, readFileSync, writeFileSync } from 'fs'
@@ -13,32 +13,39 @@ const pluginContent = readFileSync(pluginPath)
let nuxt = null
// Init nuxt.js and create server listening on localhost:4000
-test.before('Init Nuxt.js', async t => {
+test.serial('Init Nuxt.js', async t => {
const options = {
rootDir,
+ buildDir: '.nuxt-dev',
dev: true,
build: {
+ stats: false,
profile: true
},
plugins: [
'~/plugins/watch.js'
]
}
- nuxt = new Nuxt(options)
- await new Builder(nuxt).build()
- await nuxt.listen(port, 'localhost')
+ const spies = await intercept({ log: true, stderr: true }, async () => {
+ nuxt = new Nuxt(options)
+ await new Builder(nuxt).build()
+ await nuxt.listen(port, 'localhost')
+ })
+
+ t.true(spies.log.calledWithMatch('DONE'))
+ t.true(spies.log.calledWithMatch('OPEN'))
})
-test('remove mixins in live reloading', async t => {
- const logSpy = await interceptLog()
+test.serial('remove mixins in live reloading', async t => {
+ const spies = await intercept({ log: true, error: true, stderr: true })
await nuxt.renderRoute(url('/'))
- t.true(logSpy.calledWith('I am mixin'))
+ t.true(spies.log.calledWith('I am mixin'))
truncateSync(pluginPath)
await new Promise(async (resolve, reject) => {
let waitTimes = 0
- while (logSpy.neverCalledWithMatch(/Compiled successfully/)) {
+ while (spies.log.neverCalledWithMatch(/Compiled successfully/)) {
if (waitTimes++ >= 20) {
t.fail('Dev server doesn\'t reload after 2000ms')
reject(Error())
@@ -47,16 +54,21 @@ test('remove mixins in live reloading', async t => {
}
resolve()
})
- logSpy.reset()
+ spies.log.reset()
+
await nuxt.renderRoute(url('/'))
- t.true(logSpy.neverCalledWith('I am mixin'))
+ t.true(spies.log.neverCalledWith('I am mixin'))
+ t.is(spies.error.getCall(0).args[0].statusCode, 404)
release()
})
-test('/stateless', async t => {
+test.serial('/stateless', async t => {
+ const spies = await intercept()
const window = await nuxt.renderAndGetWindow(url('/stateless'))
const html = window.document.body.innerHTML
t.true(html.includes('
My component!
'))
+ t.true(spies.info.calledWithMatch('You are running Vue in development mode.'))
+ release()
})
// test('/_nuxt/test.hot-update.json should returns empty html', async t => {
@@ -69,7 +81,7 @@ test('/stateless', async t => {
// })
// Close server and ask nuxt to stop listening to file changes
-test.after('Closing server and nuxt.js', async t => {
+test.after.always('Closing server and nuxt.js', async t => {
writeFileSync(pluginPath, pluginContent)
await nuxt.close()
})
diff --git a/test/basic.fail.generate.test.js b/test/basic.fail.generate.test.js
index 79653d3593..65e8874e75 100644
--- a/test/basic.fail.generate.test.js
+++ b/test/basic.fail.generate.test.js
@@ -1,22 +1,32 @@
import test from 'ava'
import { resolve } from 'path'
import { Nuxt, Builder, Generator } from '..'
+import { intercept } from './helpers/console'
test('Fail with routes() which throw an error', async t => {
const options = {
rootDir: resolve(__dirname, 'fixtures/basic'),
+ buildDir: '.nuxt-fail',
dev: false,
+ build: {
+ stats: false
+ },
generate: {
async routes() {
throw new Error('Not today!')
}
}
}
- const nuxt = new Nuxt(options)
- const builder = new Builder(nuxt)
- const generator = new Generator(nuxt, builder)
- return generator.generate()
- .catch((e) => {
- t.true(e.message === 'Not today!')
- })
+ const spies = await intercept(async () => {
+ const nuxt = new Nuxt(options)
+ const builder = new Builder(nuxt)
+ const generator = new Generator(nuxt, builder)
+
+ return generator.generate()
+ .catch((e) => {
+ t.true(e.message === 'Not today!')
+ })
+ })
+ t.true(spies.log.calledWithMatch('DONE'))
+ t.true(spies.error.withArgs('Could not resolve routes').calledOnce)
})
diff --git a/test/basic.generate.nosubfolders.test.js b/test/basic.generate.nosubfolders.test.js
deleted file mode 100644
index 5aeb01a16f..0000000000
--- a/test/basic.generate.nosubfolders.test.js
+++ /dev/null
@@ -1,138 +0,0 @@
-import test from 'ava'
-import { resolve } from 'path'
-import { existsSync } from 'fs'
-import http from 'http'
-import serveStatic from 'serve-static'
-import finalhandler from 'finalhandler'
-import rp from 'request-promise-native'
-import { Nuxt, Builder, Generator } from '..'
-
-const port = 4002
-const url = (route) => 'http://localhost:' + port + route
-
-let nuxt = null
-let server = null
-
-// Init nuxt.js and create server listening on localhost:4000
-test.before('Init Nuxt.js', async t => {
- const rootDir = resolve(__dirname, 'fixtures/basic')
- let config = require(resolve(rootDir, 'nuxt.config.js'))
- config.rootDir = rootDir
- config.dev = false
- config.generate.subFolders = false
-
- nuxt = new Nuxt(config)
- const builder = new Builder(nuxt)
- const generator = new Generator(nuxt, builder)
- try {
- await generator.generate() // throw an error (of /validate route)
- } catch (err) {
- }
-
- const serve = serveStatic(resolve(__dirname, 'fixtures/basic/dist'), { extensions: ['html'] })
- server = http.createServer((req, res) => {
- serve(req, res, finalhandler(req, res))
- })
- server.listen(port)
-})
-
-test('Check ready hook called', async t => {
- t.true(nuxt.__hook_called__)
-})
-
-test('/stateless', async t => {
- const window = await nuxt.renderAndGetWindow(url('/stateless'))
- const html = window.document.body.innerHTML
- t.true(html.includes('My component!
'))
-})
-
-test('/css', async t => {
- const window = await nuxt.renderAndGetWindow(url('/css'))
- const element = window.document.querySelector('.red')
- t.not(element, null)
- t.is(element.textContent, 'This is red')
- t.is(element.className, 'red')
- t.is(window.getComputedStyle(element).color, 'red')
-})
-
-test('/stateful', async t => {
- const window = await nuxt.renderAndGetWindow(url('/stateful'))
- const html = window.document.body.innerHTML
- t.true(html.includes(''))
-})
-
-test('/head', async t => {
- const window = await nuxt.renderAndGetWindow(url('/head'))
- const html = window.document.body.innerHTML
- const metas = window.document.getElementsByTagName('meta')
- t.is(window.document.title, 'My title')
- t.is(metas[0].getAttribute('content'), 'my meta')
- t.true(html.includes('I can haz meta tags
'))
-})
-
-test('/async-data', async t => {
- const window = await nuxt.renderAndGetWindow(url('/async-data'))
- const html = window.document.body.innerHTML
- t.true(html.includes('Nuxt.js
'))
-})
-
-test('/users/1', async t => {
- const html = await rp(url('/users/1'))
- t.true(html.includes('User: 1
'))
- t.true(existsSync(resolve(__dirname, 'fixtures/basic/dist', 'users/1.html')))
- t.false(existsSync(resolve(__dirname, 'fixtures/basic/dist', 'users/1/index.html')))
-})
-
-test('/users/2', async t => {
- const html = await rp(url('/users/2'))
- t.true(html.includes('User: 2
'))
-})
-
-test('/users/3 (payload given)', async t => {
- const html = await rp(url('/users/3'))
- t.true(html.includes('User: 3000
'))
-})
-
-test('/users/4 -> Not found', async t => {
- try {
- await rp(url('/users/4'))
- } catch (error) {
- t.true(error.statusCode === 404)
- t.true(error.response.body.includes('Cannot GET /users/4'))
- }
-})
-
-test('/validate should not be server-rendered', async t => {
- const html = await rp(url('/validate'))
- t.true(html.includes(''))
- t.true(html.includes('serverRendered:!1'))
-})
-
-test('/validate -> should display a 404', async t => {
- const window = await nuxt.renderAndGetWindow(url('/validate'))
- const html = window.document.body.innerHTML
- t.true(html.includes('This page could not be found'))
-})
-
-test('/validate?valid=true', async t => {
- const window = await nuxt.renderAndGetWindow(url('/validate?valid=true'))
- const html = window.document.body.innerHTML
- t.true(html.includes('I am valid'))
-})
-
-test('/redirect should not be server-rendered', async t => {
- const html = await rp(url('/redirect'))
- t.true(html.includes(''))
- t.true(html.includes('serverRendered:!1'))
-})
-
-test('/redirect -> check redirected source', async t => {
- const window = await nuxt.renderAndGetWindow(url('/redirect'))
- const html = window.document.body.innerHTML
- t.true(html.includes('Index page
'))
-})
-
-// Close server and ask nuxt to stop listening to file changes
-test.after('Closing server', t => {
- server.close()
-})
diff --git a/test/basic.generate.test.js b/test/basic.generate.test.js
index 877cd1c52a..27f169b492 100644
--- a/test/basic.generate.test.js
+++ b/test/basic.generate.test.js
@@ -1,31 +1,39 @@
import test from 'ava'
import { resolve } from 'path'
import { existsSync } from 'fs'
+import { remove } from 'fs-extra'
import http from 'http'
import serveStatic from 'serve-static'
import finalhandler from 'finalhandler'
import rp from 'request-promise-native'
+import { interceptLog, release } from './helpers/console'
import { Nuxt, Builder, Generator } from '..'
const port = 4002
const url = (route) => 'http://localhost:' + port + route
+const rootDir = resolve(__dirname, 'fixtures/basic')
let nuxt = null
let server = null
+let generator = null
// Init nuxt.js and create server listening on localhost:4000
-test.before('Init Nuxt.js', async t => {
- const rootDir = resolve(__dirname, 'fixtures/basic')
+test.serial('Init Nuxt.js', async t => {
let config = require(resolve(rootDir, 'nuxt.config.js'))
config.rootDir = rootDir
+ config.buildDir = '.nuxt-generate'
config.dev = false
- nuxt = new Nuxt(config)
- const builder = new Builder(nuxt)
- const generator = new Generator(nuxt, builder)
- try {
- await generator.generate() // throw an error (of /validate route)
- } catch (err) {
- }
+ config.build.stats = false
+
+ const logSpy = await interceptLog(async () => {
+ nuxt = new Nuxt(config)
+ const builder = new Builder(nuxt)
+ generator = new Generator(nuxt, builder)
+
+ await generator.generate()
+ })
+ t.true(logSpy.calledWithMatch('DONE'))
+
const serve = serveStatic(resolve(__dirname, 'fixtures/basic/dist'))
server = http.createServer((req, res) => {
serve(req, res, finalhandler(req, res))
@@ -33,17 +41,17 @@ test.before('Init Nuxt.js', async t => {
server.listen(port)
})
-test('Check ready hook called', async t => {
+test.serial('Check ready hook called', async t => {
t.true(nuxt.__hook_called__)
})
-test('/stateless', async t => {
+test.serial('/stateless', async t => {
const window = await nuxt.renderAndGetWindow(url('/stateless'))
const html = window.document.body.innerHTML
t.true(html.includes('My component!
'))
})
-test('/css', async t => {
+test.serial('/css', async t => {
const window = await nuxt.renderAndGetWindow(url('/css'))
const element = window.document.querySelector('.red')
t.not(element, null)
@@ -52,84 +60,106 @@ test('/css', async t => {
t.is(window.getComputedStyle(element).color, 'red')
})
-test('/stateful', async t => {
+test.serial('/stateful', async t => {
const window = await nuxt.renderAndGetWindow(url('/stateful'))
const html = window.document.body.innerHTML
t.true(html.includes(''))
})
-test('/head', async t => {
+test.serial('/head', async t => {
+ const logSpy = await interceptLog()
const window = await nuxt.renderAndGetWindow(url('/head'))
const html = window.document.body.innerHTML
const metas = window.document.getElementsByTagName('meta')
t.is(window.document.title, 'My title')
t.is(metas[0].getAttribute('content'), 'my meta')
t.true(html.includes('I can haz meta tags
'))
+ release()
+ t.is(logSpy.getCall(0).args[0], 'Body script!')
})
-test('/async-data', async t => {
+test.serial('/async-data', async t => {
const window = await nuxt.renderAndGetWindow(url('/async-data'))
const html = window.document.body.innerHTML
t.true(html.includes('Nuxt.js
'))
})
-test('/users/1', async t => {
- const html = await rp(url('/users/1'))
+test.serial('/users/1/index.html', async t => {
+ const html = await rp(url('/users/1/index.html'))
t.true(html.includes('User: 1
'))
t.true(existsSync(resolve(__dirname, 'fixtures/basic/dist', 'users/1/index.html')))
t.false(existsSync(resolve(__dirname, 'fixtures/basic/dist', 'users/1.html')))
})
-test('/users/2', async t => {
+test.serial('/users/2', async t => {
const html = await rp(url('/users/2'))
t.true(html.includes('User: 2
'))
})
-test('/users/3 (payload given)', async t => {
+test.serial('/users/3 (payload given)', async t => {
const html = await rp(url('/users/3'))
t.true(html.includes('User: 3000
'))
})
-test('/users/4 -> Not found', async t => {
- try {
- await rp(url('/users/4'))
- } catch (error) {
- t.true(error.statusCode === 404)
- t.true(error.response.body.includes('Cannot GET /users/4'))
- }
+test.serial('/users/4 -> Not found', async t => {
+ const error = await t.throws(rp(url('/users/4')))
+ t.true(error.statusCode === 404)
+ t.true(error.response.body.includes('Cannot GET /users/4'))
})
-test('/validate should not be server-rendered', async t => {
+test.serial('/validate should not be server-rendered', async t => {
const html = await rp(url('/validate'))
t.true(html.includes(''))
t.true(html.includes('serverRendered:!1'))
})
-test('/validate -> should display a 404', async t => {
+test.serial('/validate -> should display a 404', async t => {
const window = await nuxt.renderAndGetWindow(url('/validate'))
const html = window.document.body.innerHTML
t.true(html.includes('This page could not be found'))
})
-test('/validate?valid=true', async t => {
+test.serial('/validate?valid=true', async t => {
const window = await nuxt.renderAndGetWindow(url('/validate?valid=true'))
const html = window.document.body.innerHTML
t.true(html.includes('I am valid'))
})
-test('/redirect should not be server-rendered', async t => {
+test.serial('/redirect should not be server-rendered', async t => {
const html = await rp(url('/redirect'))
t.true(html.includes(''))
t.true(html.includes('serverRendered:!1'))
})
-test('/redirect -> check redirected source', async t => {
+test.serial('/redirect -> check redirected source', async t => {
const window = await nuxt.renderAndGetWindow(url('/redirect'))
const html = window.document.body.innerHTML
t.true(html.includes('Index page
'))
})
-// Close server and ask nuxt to stop listening to file changes
-test.after('Closing server', t => {
- server.close()
+test.serial('/users/1 not found', async t => {
+ await remove(resolve(rootDir, 'dist/users'))
+ const error = await t.throws(rp(url('/users/1')))
+ t.true(error.statusCode === 404)
+ t.true(error.response.body.includes('Cannot GET /users/1'))
+})
+
+test.serial('nuxt re-generating with no subfolders', async t => {
+ const logSpy = await interceptLog()
+ nuxt.options.generate.subFolders = false
+ await generator.generate()
+ release()
+ t.true(logSpy.calledWithMatch('DONE'))
+})
+
+test.serial('/users/1.html', async t => {
+ const html = await rp(url('/users/1.html'))
+ t.true(html.includes('User: 1
'))
+ t.true(existsSync(resolve(__dirname, 'fixtures/basic/dist', 'users/1.html')))
+ t.false(existsSync(resolve(__dirname, 'fixtures/basic/dist', 'users/1/index.html')))
+})
+
+// Close server and ask nuxt to stop listening to file changes
+test.after.always('Closing server', async t => {
+ await server.close()
})
diff --git a/test/basic.ssr.test.js b/test/basic.ssr.test.js
index 0e5a98b237..d023acaa8b 100755
--- a/test/basic.ssr.test.js
+++ b/test/basic.ssr.test.js
@@ -2,30 +2,38 @@ import test from 'ava'
import { resolve } from 'path'
import rp from 'request-promise-native'
import { Nuxt, Builder } from '..'
-import { interceptLog, interceptError } from './helpers/console'
+import { interceptLog, interceptError, release } from './helpers/console'
-const port = 4003
+const port = 4004
const url = (route) => 'http://localhost:' + port + route
let nuxt = null
// Init nuxt.js and create server listening on localhost:4003
-test.before('Init Nuxt.js', async t => {
+test.serial('Init Nuxt.js', async t => {
const options = {
rootDir: resolve(__dirname, 'fixtures/basic'),
+ buildDir: '.nuxt-ssr',
dev: false,
head: {
titleTemplate(titleChunk) {
return titleChunk ? `${titleChunk} - Nuxt.js` : 'Nuxt.js'
}
+ },
+ build: {
+ stats: false
}
}
- await interceptLog('building nuxt', async () => {
+ const logSpy = await interceptLog(async () => {
nuxt = new Nuxt(options)
- await new Builder(nuxt).build()
- await nuxt.listen(port, 'localhost')
+ const builder = await new Builder(nuxt)
+ await builder.build()
+ await nuxt.listen(port, '0.0.0.0')
})
+
+ t.true(logSpy.calledWithMatch('DONE'))
+ t.true(logSpy.calledWithMatch('OPEN'))
})
test('/stateless', async t => {
@@ -62,18 +70,19 @@ test('/store', async t => {
t.true(html.includes('1
'))
})
-test('/head', async t => {
- const logSpy = await interceptLog(async () => {
- const window = await nuxt.renderAndGetWindow(url('/head'), { virtualConsole: false })
- t.is(window.document.title, 'My title - Nuxt.js')
+test.serial('/head', async t => {
+ const logSpy = await interceptLog()
+ const window = await nuxt.renderAndGetWindow(url('/head'), { virtualConsole: false })
+ t.is(window.document.title, 'My title - Nuxt.js')
- const html = window.document.body.innerHTML
- t.true(html.includes('I can haz meta tags
'))
- t.true(html.includes('