From a03b13c2c14170f02a614515e15a504c705aae9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Tue, 20 Dec 2016 20:44:42 +0100 Subject: [PATCH] Move to fixtures and add generate test --- package.json | 2 +- test/basic.generate.test.js | 23 +++++++ test/basic.test.js | 12 ++-- test/children.test.js | 12 ++-- test/error.test.js | 12 ++-- .../{ => fixtures}/basic/pages/async-data.vue | 0 test/{ => fixtures}/basic/pages/css.vue | 0 test/{ => fixtures}/basic/pages/error.vue | 0 test/{ => fixtures}/basic/pages/head.vue | 0 test/{ => fixtures}/basic/pages/index.vue | 0 test/{ => fixtures}/basic/pages/redirect.vue | 0 test/{ => fixtures}/basic/pages/stateful.vue | 0 test/{ => fixtures}/basic/pages/stateless.vue | 0 test/{ => fixtures}/basic/pages/validate.vue | 0 test/{ => fixtures}/children/pages/parent.vue | 0 .../children/pages/parent/_id.vue | 0 .../children/pages/parent/child.vue | 0 .../children/pages/parent/validate-child.vue | 0 test/{ => fixtures}/empty/pages/.gitkeep | 0 test/{ => fixtures}/error/pages/index.vue | 0 test/index.test.js | 60 ++++++++++--------- 21 files changed, 71 insertions(+), 50 deletions(-) create mode 100644 test/basic.generate.test.js rename test/{ => fixtures}/basic/pages/async-data.vue (100%) rename test/{ => fixtures}/basic/pages/css.vue (100%) rename test/{ => fixtures}/basic/pages/error.vue (100%) rename test/{ => fixtures}/basic/pages/head.vue (100%) rename test/{ => fixtures}/basic/pages/index.vue (100%) rename test/{ => fixtures}/basic/pages/redirect.vue (100%) rename test/{ => fixtures}/basic/pages/stateful.vue (100%) rename test/{ => fixtures}/basic/pages/stateless.vue (100%) rename test/{ => fixtures}/basic/pages/validate.vue (100%) rename test/{ => fixtures}/children/pages/parent.vue (100%) rename test/{ => fixtures}/children/pages/parent/_id.vue (100%) rename test/{ => fixtures}/children/pages/parent/child.vue (100%) rename test/{ => fixtures}/children/pages/parent/validate-child.vue (100%) rename test/{ => fixtures}/empty/pages/.gitkeep (100%) rename test/{ => fixtures}/error/pages/index.vue (100%) diff --git a/package.json b/package.json index 08e7554ffa..6f892be923 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "scripts": { "test": "nyc ava test/", "coverage": "nyc report --reporter=text-lcov > coverage.lcov && codecov", - "lint": "eslint --ext .js,.vue bin lib pages test --ignore-pattern lib/app", + "lint": "eslint --ext .js,.vue bin lib pages test/*.js --ignore-pattern lib/app", "build": "webpack", "watch": "webpack --watch", "precommit": "npm run lint", diff --git a/test/basic.generate.test.js b/test/basic.generate.test.js new file mode 100644 index 0000000000..1c492ef87e --- /dev/null +++ b/test/basic.generate.test.js @@ -0,0 +1,23 @@ +import test from 'ava' +import { resolve } from 'path' +import pify from 'pify' +import fs from 'fs' +const readFile = pify(fs.readFile) + +let nuxt = null + +// Init nuxt.js and create server listening on localhost:4000 +test.before('Init Nuxt.js', async t => { + const Nuxt = require('../') + const options = { + rootDir: resolve(__dirname, 'fixtures/basic'), + dev: false + } + nuxt = new Nuxt(options) + await nuxt.generate() +}) + +test('/stateless', async t => { + const html = await readFile(resolve(__dirname, 'fixtures/basic/dist/stateless/index.html'), 'utf8') + t.true(html.includes('

My component!

')) +}) diff --git a/test/basic.test.js b/test/basic.test.js index 749dfff6b8..5d5b28a00b 100755 --- a/test/basic.test.js +++ b/test/basic.test.js @@ -7,18 +7,16 @@ let nuxt = null let server = null // Init nuxt.js and create server listening on localhost:4000 -test.before('Init Nuxt.js', t => { +test.before('Init Nuxt.js', async t => { const Nuxt = require('../') const options = { - rootDir: resolve(__dirname, 'basic'), + rootDir: resolve(__dirname, 'fixtures/basic'), dev: false } nuxt = new Nuxt(options) - return nuxt.build() - .then(function () { - server = new nuxt.Server(nuxt) - server.listen(port, 'localhost') - }) + await nuxt.build() + server = new nuxt.Server(nuxt) + server.listen(port, 'localhost') }) test('/stateless', async t => { diff --git a/test/children.test.js b/test/children.test.js index af7fdf9ec9..776148cdc1 100644 --- a/test/children.test.js +++ b/test/children.test.js @@ -7,18 +7,16 @@ let nuxt = null let server = null // Init nuxt.js and create server listening on localhost:4000 -test.before('Init Nuxt.js', t => { +test.before('Init Nuxt.js', async t => { const Nuxt = require('../') const options = { - rootDir: resolve(__dirname, 'children'), + rootDir: resolve(__dirname, 'fixtures/children'), dev: false } nuxt = new Nuxt(options) - return nuxt.build() - .then(function () { - server = new nuxt.Server(nuxt) - server.listen(port, 'localhost') - }) + await nuxt.build() + server = new nuxt.Server(nuxt) + server.listen(port, 'localhost') }) test('/parent', async t => { diff --git a/test/error.test.js b/test/error.test.js index b227ccd197..8ae6e025a4 100644 --- a/test/error.test.js +++ b/test/error.test.js @@ -7,18 +7,16 @@ let nuxt = null let server = null // Init nuxt.js and create server listening on localhost:4000 -test.before('Init Nuxt.js', t => { +test.before('Init Nuxt.js', async t => { const Nuxt = require('../') const options = { - rootDir: resolve(__dirname, 'error'), + rootDir: resolve(__dirname, 'fixtures/error'), dev: false } nuxt = new Nuxt(options) - return nuxt.build() - .then(function () { - server = new nuxt.Server(nuxt) - server.listen(port, 'localhost') - }) + await nuxt.build() + server = new nuxt.Server(nuxt) + server.listen(port, 'localhost') }) test('/ should display an error', async t => { diff --git a/test/basic/pages/async-data.vue b/test/fixtures/basic/pages/async-data.vue similarity index 100% rename from test/basic/pages/async-data.vue rename to test/fixtures/basic/pages/async-data.vue diff --git a/test/basic/pages/css.vue b/test/fixtures/basic/pages/css.vue similarity index 100% rename from test/basic/pages/css.vue rename to test/fixtures/basic/pages/css.vue diff --git a/test/basic/pages/error.vue b/test/fixtures/basic/pages/error.vue similarity index 100% rename from test/basic/pages/error.vue rename to test/fixtures/basic/pages/error.vue diff --git a/test/basic/pages/head.vue b/test/fixtures/basic/pages/head.vue similarity index 100% rename from test/basic/pages/head.vue rename to test/fixtures/basic/pages/head.vue diff --git a/test/basic/pages/index.vue b/test/fixtures/basic/pages/index.vue similarity index 100% rename from test/basic/pages/index.vue rename to test/fixtures/basic/pages/index.vue diff --git a/test/basic/pages/redirect.vue b/test/fixtures/basic/pages/redirect.vue similarity index 100% rename from test/basic/pages/redirect.vue rename to test/fixtures/basic/pages/redirect.vue diff --git a/test/basic/pages/stateful.vue b/test/fixtures/basic/pages/stateful.vue similarity index 100% rename from test/basic/pages/stateful.vue rename to test/fixtures/basic/pages/stateful.vue diff --git a/test/basic/pages/stateless.vue b/test/fixtures/basic/pages/stateless.vue similarity index 100% rename from test/basic/pages/stateless.vue rename to test/fixtures/basic/pages/stateless.vue diff --git a/test/basic/pages/validate.vue b/test/fixtures/basic/pages/validate.vue similarity index 100% rename from test/basic/pages/validate.vue rename to test/fixtures/basic/pages/validate.vue diff --git a/test/children/pages/parent.vue b/test/fixtures/children/pages/parent.vue similarity index 100% rename from test/children/pages/parent.vue rename to test/fixtures/children/pages/parent.vue diff --git a/test/children/pages/parent/_id.vue b/test/fixtures/children/pages/parent/_id.vue similarity index 100% rename from test/children/pages/parent/_id.vue rename to test/fixtures/children/pages/parent/_id.vue diff --git a/test/children/pages/parent/child.vue b/test/fixtures/children/pages/parent/child.vue similarity index 100% rename from test/children/pages/parent/child.vue rename to test/fixtures/children/pages/parent/child.vue diff --git a/test/children/pages/parent/validate-child.vue b/test/fixtures/children/pages/parent/validate-child.vue similarity index 100% rename from test/children/pages/parent/validate-child.vue rename to test/fixtures/children/pages/parent/validate-child.vue diff --git a/test/empty/pages/.gitkeep b/test/fixtures/empty/pages/.gitkeep similarity index 100% rename from test/empty/pages/.gitkeep rename to test/fixtures/empty/pages/.gitkeep diff --git a/test/error/pages/index.vue b/test/fixtures/error/pages/index.vue similarity index 100% rename from test/error/pages/index.vue rename to test/fixtures/error/pages/index.vue diff --git a/test/index.test.js b/test/index.test.js index 5677919ca4..95c62c316d 100644 --- a/test/index.test.js +++ b/test/index.test.js @@ -15,10 +15,10 @@ test('Nuxt.js Instance', t => { t.is(typeof nuxt.generate, 'function') }) -test('Fail when build not done and try to render', async t => { +test.serial('Fail when build not done and try to render', t => { const nuxt = new Nuxt({ dev: false, - rootDir: resolve(__dirname, 'empty') + rootDir: resolve(__dirname, 'fixtures/empty') }) return new Promise((resolve) => { var oldExit = process.exit @@ -36,40 +36,44 @@ test('Fail when build not done and try to render', async t => { }) }) -test('Fail to build when no pages/ directory but is in the parent', async t => { +test.serial('Fail to build when no pages/ directory but is in the parent', t => { const nuxt = new Nuxt({ dev: false, rootDir: resolve(__dirname, 'empty', 'pages') }) - var oldExit = process.exit - var oldCE = console.error // eslint-disable-line no-console - var _log = '' - console.error = (s) => { _log += s } // eslint-disable-line no-console - process.exit = (code) => { - process.exit = oldExit - console.error = oldCE // eslint-disable-line no-console - t.is(code, 1) - t.true(_log.includes('No `pages` directory found. Did you mean to run `nuxt` in the parent (`../`) directory?')) - resolve() - } - nuxt.build() + return new Promise((resolve) => { + var oldExit = process.exit + var oldCE = console.error // eslint-disable-line no-console + var _log = '' + console.error = (s) => { _log += s } // eslint-disable-line no-console + process.exit = (code) => { + process.exit = oldExit + console.error = oldCE // eslint-disable-line no-console + t.is(code, 1) + t.true(_log.includes('No `pages` directory found. Did you mean to run `nuxt` in the parent (`../`) directory?')) + resolve() + } + nuxt.build() + }) }) -test('Fail to build when no pages/ directory', async t => { +test.serial('Fail to build when no pages/ directory', t => { const nuxt = new Nuxt({ dev: false, rootDir: resolve(__dirname) }) - var oldExit = process.exit - var oldCE = console.error // eslint-disable-line no-console - var _log = '' - console.error = (s) => { _log += s } // eslint-disable-line no-console - process.exit = (code) => { - process.exit = oldExit - console.error = oldCE // eslint-disable-line no-console - t.is(code, 1) - t.true(_log.includes('Couldn\'t find a `pages` directory. Please create one under the project root')) - resolve() - } - nuxt.build() + return new Promise((resolve) => { + var oldExit = process.exit + var oldCE = console.error // eslint-disable-line no-console + var _log = '' + console.error = (s) => { _log += s } // eslint-disable-line no-console + process.exit = (code) => { + process.exit = oldExit + console.error = oldCE // eslint-disable-line no-console + t.is(code, 1) + t.true(_log.includes('Couldn\'t find a `pages` directory. Please create one under the project root')) + resolve() + } + nuxt.build() + }) })