mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-23 22:25:12 +00:00
c5ca8c64f1
by not returning a promise we can expose .render method also the old way of using nuxt won't change by 1.x release
45 lines
1.4 KiB
JavaScript
Executable File
45 lines
1.4 KiB
JavaScript
Executable File
import test from 'ava'
|
|
import Nuxt from 'nuxt'
|
|
import { resolve } from 'path'
|
|
|
|
// We keep the nuxt and server instance
|
|
// So we can close them at the end of the test
|
|
let nuxt = null
|
|
let server = null
|
|
|
|
// Init Nuxt.js and create a server listening on localhost:4000
|
|
test.before('Init Nuxt.js', async t => {
|
|
const rootDir = resolve(__dirname, '..')
|
|
let config = {}
|
|
try { config = require(resolve(rootDir, 'nuxt.config.js')) } catch (e) {}
|
|
config.rootDir = rootDir // project folder
|
|
config.dev = false // production build
|
|
nuxt = new Nuxt(config)
|
|
await nuxt.build()
|
|
server = new nuxt.Server(nuxt)
|
|
server.listen(4000, 'localhost')
|
|
})
|
|
|
|
// Example of testing only generated html
|
|
test('Route / exits and render HTML', async t => {
|
|
let context = {}
|
|
const { html } = await nuxt.renderRoute('/', context)
|
|
t.true(html.includes('<h1 class="red">Hello world!</h1>'))
|
|
})
|
|
|
|
// Example of testing via dom checking
|
|
test('Route / exits and render HTML with CSS applied', async t => {
|
|
const window = await nuxt.renderAndGetWindow('http://localhost:4000/')
|
|
const element = window.document.querySelector('.red')
|
|
t.not(element, null)
|
|
t.is(element.textContent, 'Hello world!')
|
|
t.is(element.className, 'red')
|
|
t.is(window.getComputedStyle(element).color, 'red')
|
|
})
|
|
|
|
// Close server and ask nuxt to stop listening to file changes
|
|
test.after('Closing server and nuxt.js', t => {
|
|
server.close()
|
|
nuxt.close()
|
|
})
|