Merge pull request #2158 from clarkdo/dev

test: coverage for webpack config files
This commit is contained in:
Sébastien Chopin 2017-11-20 06:58:47 +01:00 committed by GitHub
commit a9dcdca0f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 47 additions and 2 deletions

View File

@ -2,6 +2,7 @@ import test from 'ava'
import { resolve } from 'path'
import fs from 'fs'
import pify from 'pify'
import stdMocks from 'std-mocks'
import { Nuxt, Builder } from '../index.js'
const readFile = pify(fs.readFile)
@ -16,11 +17,13 @@ const checkCache = (lib) => {
}
}
let nuxt
test.before('Init Nuxt.js', async t => {
let config = require(resolve(rootDir, 'nuxt.config.js'))
config.rootDir = rootDir
config.dev = true
const nuxt = new Nuxt(config)
nuxt = new Nuxt(config)
await new Builder(nuxt).build()
})
@ -29,3 +32,17 @@ test('Check vue cache', checkCache('vue'))
test('Check vue-meta cache', checkCache('vue-meta'))
test('Check vue-router cache', checkCache('vue-router'))
test('Build with DllReferencePlugin', async t => {
stdMocks.use()
await new Builder(nuxt).build()
stdMocks.restore()
const output = stdMocks.flush()
const dllLog = output.stdout.filter(value => value === 'Using dll for 3 libs\n')
t.true(dllLog.length === 1)
})
// Close server and ask nuxt to stop listening to file changes
test.after('Closing nuxt.js', t => {
nuxt.close()
})

View File

@ -1,5 +1,12 @@
module.exports = {
build: {
dll: true
dll: true,
extend(config, options) {
if (options.isClient) {
const dlls = config.plugins.filter(plugin => plugin.constructor.name === 'DllReferencePlugin')
console.log('Using dll for ' + dlls.length + ' libs') // eslint-disable-line no-console
}
return config
}
}
}

View File

@ -1,3 +1,5 @@
const path = require('path')
module.exports = {
srcDir: __dirname,
router: {
@ -14,6 +16,7 @@ module.exports = {
]
}
},
modulesDir: path.join(__dirname, '..', '..', '..', 'node_modules'),
transition: 'test',
layoutTransition: 'test',
offline: true,
@ -43,6 +46,9 @@ module.exports = {
generateStatsFile: true
},
extend(config, options) {
if (options.dev) {
// Please use isDev instead of dev
}
return Object.assign({}, config, {
devtool: 'nosources-source-map'
})

View File

@ -1,5 +1,6 @@
import test from 'ava'
import { resolve } from 'path'
import stdMocks from 'std-mocks'
import rp from 'request-promise-native'
import { Nuxt, Builder } from '../index.js'
@ -7,6 +8,7 @@ const port = 4007
const url = (route) => 'http://localhost:' + port + route
let nuxt = null
let builtErr = null
// Init nuxt.js and create server listening on localhost:4000
test.before('Init Nuxt.js', async t => {
@ -15,7 +17,14 @@ test.before('Init Nuxt.js', async t => {
config.rootDir = rootDir
config.dev = false
nuxt = new Nuxt(config)
stdMocks.use({
stdout: false,
stderr: true
})
await new Builder(nuxt).build()
stdMocks.restore()
builtErr = stdMocks.flush().stderr
await nuxt.listen(port, 'localhost')
})
@ -124,6 +133,12 @@ test('Check /test.txt should return 404', async t => {
t.is(err.response.statusCode, 404)
})
test('Check deprecated dev in build.extend()', async t => {
const deprecatedMsg = 'dev has been deprecated in build.extend(), please use isDev\n'
const errors = builtErr.filter(value => value === deprecatedMsg)
t.true(errors.length === 2)
})
// Close server and ask nuxt to stop listening to file changes
test.after('Closing server and nuxt.js', t => {
nuxt.close()