diff --git a/meta.js b/meta.js index 6f7b0f80d8..7623234117 100644 --- a/meta.js +++ b/meta.js @@ -107,6 +107,7 @@ module.exports = { "config/test.env.js": "unit || e2e", "test/unit/**/*": "unit", "test/unit/index.js": "unit && runner === 'karma'", + "test/unit/jest.conf.js": "unit && runner === 'jest'", "test/unit/karma.conf.js": "unit && runner === 'karma'", "test/unit/specs/index.js": "unit && runner === 'karma'", "test/unit/setup.js": "unit && runner === 'jest'", diff --git a/template/package.json b/template/package.json index c91e06c239..7eb3d49163 100644 --- a/template/package.json +++ b/template/package.json @@ -8,7 +8,7 @@ "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "start": "npm run dev", {{#if_eq runner "jest"}} - "unit": "jest test/unit/specs --coverage", + "unit": "jest --config test/unit/jest.conf.js --coverage", {{/if_eq}} {{#if_eq runner "karma"}} "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run", @@ -68,6 +68,7 @@ {{#if_eq runner "jest"}} "babel-jest": "^21.0.2", "jest": "^21.2.0", + "jest-serializer-vue": "^0.3.0", "vue-jest": "^1.0.2", {{/if_eq}} {{#if_eq runner "karma"}} @@ -112,33 +113,6 @@ "webpack-dev-server": "^2.9.1", "webpack-merge": "^4.1.0" }, - {{#if_eq runner "jest"}} - "jest": { - "moduleFileExtensions": [ - "js", - "json", - "vue" - ], - "moduleNameMapper": { - "^@/(.*)$": "/src/$1" - }, - "transform": { - "^.+\\.js$": "/node_modules/babel-jest", - ".*\\.(vue)$": "/node_modules/vue-jest" - }, - "setupFiles": ["/test/unit/setup"], - "mapCoverage": true, - "coverageDirectory": "/test/unit/coverage", - "collectCoverageFrom" : [ - "src/**/*.{js,vue}", - "!src/main.js", - {{#router}} - "!src/router/index.js", - {{/router}} - "!**/node_modules/**" - ] - }, - {{/if_eq}} "engines": { "node": ">= 4.0.0", "npm": ">= 3.0.0" diff --git a/template/test/unit/jest.conf.js b/template/test/unit/jest.conf.js new file mode 100644 index 0000000000..f591d90240 --- /dev/null +++ b/template/test/unit/jest.conf.js @@ -0,0 +1,29 @@ +const path = require('path') + +module.exports = { + rootDir: path.resolve(__dirname, '../../'), + moduleFileExtensions: [ + 'js', + 'json', + 'vue' + ], + moduleNameMapper: { + '^@/(.*)$': '/src/$1' + }, + transform: { + '^.+\\.js$': '/node_modules/babel-jest', + '.*\\.(vue)$': '/node_modules/vue-jest' + }, + snapshotSerializers: ['/node_modules/jest-serializer-vue'], + setupFiles: ['/test/unit/setup'], + mapCoverage: true, + coverageDirectory: '/test/unit/coverage', + collectCoverageFrom: [ + 'src/**/*.{js,vue}', + '!src/main.js', + {{#router}} + '!src/router/index.js', + {{/router}} + '!**/node_modules/**' + ] +}