mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-05 21:53:56 +00:00
2c33641b9f
detail: 1. 'beforeAll' no longer support change to 'test.before' 2. renderAndGetWindow const window = await nuxt.renderAndGetWindow('http://localhost:4000/') does not return 'window'. if url change to real server return window but test server just return html. so change to JSDOM way.
49 lines
1.4 KiB
JavaScript
Executable File
49 lines
1.4 KiB
JavaScript
Executable File
import test from 'ava'
|
|
import { resolve } from 'path'
|
|
import { Nuxt, Builder } from 'nuxt'
|
|
import { JSDOM } from 'jsdom'
|
|
|
|
// We keep the nuxt and server instance
|
|
// So we can close them at the end of the test
|
|
let nuxt = null
|
|
|
|
// Init Nuxt.js and create a server listening on localhost:4000
|
|
test.before(async () => {
|
|
const rootDir = resolve(__dirname, '..')
|
|
let config = {}
|
|
try {
|
|
config = require(resolve(rootDir, 'nuxt.config.js'))
|
|
} catch (e) {
|
|
console.log(e)
|
|
}
|
|
config.rootDir = rootDir // project folder
|
|
config.dev = false // production build
|
|
nuxt = new Nuxt(config)
|
|
new Builder(nuxt).build()
|
|
await nuxt.listen(4000, 'localhost')
|
|
}, 30000)
|
|
|
|
// Example of testing only generated html
|
|
test('Route / exits and render HTML', async t => {
|
|
const 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 context = {}
|
|
const { html } = await nuxt.renderRoute('/', context)
|
|
const { window } = new JSDOM(html).window
|
|
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 => {
|
|
nuxt.close()
|
|
})
|