Skip to content

Commit fdf77e2

Browse files
committed
feat: support jest v27
And also babel-jest and ts-jest v27.
1 parent d086ee5 commit fdf77e2

File tree

16 files changed

+815
-631
lines changed

16 files changed

+815
-631
lines changed

.circleci/config.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ version: 2
22
jobs:
33
build:
44
docker:
5-
- image: circleci/node:10.16.3
5+
- image: circleci/node:10.24.1
66

77
working_directory: ~/repo
88

e2e/__projects__/babel-in-package/package.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,13 @@
1010
"dependencies": {
1111
"@babel/core": "^7.9.0",
1212
"@babel/preset-env": "^7.9.0",
13-
"jest": "^26.0.0",
14-
"ts-jest": "^26.4.4",
13+
"jest": "^27.0.0",
14+
"ts-jest": "^27.0.0",
1515
"typescript": "^4.1.2",
1616
"vue": "^3.0.3"
1717
},
1818
"jest": {
19+
"testEnvironment": "jsdom",
1920
"moduleFileExtensions": [
2021
"js",
2122
"json",

e2e/__projects__/basic/package.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,14 @@
1717
"babel-helper-vue-jsx-merge-props": "^2.0.3",
1818
"babel-plugin-syntax-jsx": "^6.18.0",
1919
"babel-plugin-transform-vue-jsx": "^3.7.0",
20-
"jest": "^26.0.0",
21-
"ts-jest": "^26.4.4",
20+
"jest": "^27.0.0",
21+
"ts-jest": "^27.0.1",
2222
"typescript": "^4.1.2",
2323
"vue-class-component": "^8.0.0-beta.4",
2424
"vue-property-decorator": "^10.0.0-rc.3"
2525
},
2626
"jest": {
27+
"testEnvironment": "jsdom",
2728
"moduleFileExtensions": [
2829
"js",
2930
"json",

e2e/__projects__/basic/test.js

+8-6
Original file line numberDiff line numberDiff line change
@@ -72,21 +72,23 @@ test('handles named exports', () => {
7272
test('generates source maps for .vue files', () => {
7373
const filePath = resolve(__dirname, './components/Basic.vue')
7474
const fileString = readFileSync(filePath, { encoding: 'utf8' })
75-
76-
const { code } = jestVue.process(fileString, filePath, {
75+
const config = {
7776
moduleFileExtensions: ['js', 'vue']
78-
})
77+
}
78+
79+
const { code } = jestVue.process(fileString, filePath, { config })
7980

8081
expect(code).toMatchSnapshot()
8182
})
8283

8384
test('generates source maps using src attributes', () => {
8485
const filePath = resolve(__dirname, './components/SourceMapsSrc.vue')
8586
const fileString = readFileSync(filePath, { encoding: 'utf8' })
86-
87-
const { code } = jestVue.process(fileString, filePath, {
87+
const config = {
8888
moduleFileExtensions: ['js', 'vue']
89-
})
89+
}
90+
91+
const { code } = jestVue.process(fileString, filePath, { config })
9092

9193
expect(code).toMatchSnapshot()
9294
})
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { createTransformer } = require('babel-jest')
1+
const { createTransformer } = require('babel-jest').default
22
module.exports = createTransformer({
33
presets: ['@babel/preset-env']
44
})

e2e/__projects__/custom-transformers/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"devDependencies": {
1515
"@babel/core": "^7.9.0",
1616
"@babel/preset-env": "^7.9.0",
17-
"jest": "^26.0.0",
17+
"jest": "^27.0.0",
1818
"postcss": "^7.0.13",
1919
"postcss-color-function": "^4.0.1",
2020
"sass": "^1.23.7"

e2e/__projects__/javascript/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,10 @@
1313
"devDependencies": {
1414
"@babel/core": "^7.9.0",
1515
"@babel/preset-env": "^7.9.0",
16-
"jest": "^26.0.0"
16+
"jest": "^27.0.0"
1717
},
1818
"jest": {
19+
"testEnvironment": "jsdom",
1920
"moduleFileExtensions": [
2021
"js",
2122
"json",

e2e/__projects__/style/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"@babel/core": "^7.9.0",
1616
"@babel/preset-env": "^7.9.0",
1717
"@vue/test-utils": "^1.1.0",
18-
"jest": "^26.0.0",
18+
"jest": "^27.0.0",
1919
"postcss": "^7.0.13",
2020
"sass": "^1.23.7"
2121
},

e2e/__projects__/typescript/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,15 @@
1313
"devDependencies": {
1414
"@babel/core": "^7.9.0",
1515
"@babel/preset-env": "^7.9.0",
16-
"jest": "^26.0.0"
16+
"jest": "^27.0.0"
1717
},
1818
"jest": {
1919
"globals": {
2020
"vue-jest": {
2121
"tsConfig": "./sub-project/tsconfig.json"
2222
}
2323
},
24+
"testEnvironment": "jsdom",
2425
"moduleFileExtensions": [
2526
"js",
2627
"json",

lib/index.js

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
const crypto = require('crypto')
2-
const babelJest = require('babel-jest')
3-
2+
const babelJest = require('babel-jest').default
43
module.exports = {
54
process: require('./process'),
65
getCacheKey: function getCacheKey(
76
fileData,
87
filename,
9-
configString,
10-
{ config, instrument, rootDir }
8+
{ config, configString, instrument, rootDir }
119
) {
1210
return crypto
1311
.createHash('md5')
1412
.update(
15-
babelJest.getCacheKey(fileData, filename, configString, {
13+
babelJest.getCacheKey(fileData, filename, {
1614
config,
15+
configString,
1716
instrument,
1817
rootDir
1918
}),

lib/process.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const { parse, compileTemplate, compileScript } = require('@vue/compiler-sfc')
22
const { transform } = require('@babel/core')
3-
const babelTransformer = require('babel-jest')
3+
const babelTransformer = require('babel-jest').default
44

55
const typescriptTransformer = require('./transformers/typescript')
66
const coffeescriptTransformer = require('./transformers/coffee')

lib/transformers/coffee.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ const throwError = require('../utils').throwError
33
const getBabelOptions = require('../utils').getBabelOptions
44

55
module.exports = {
6-
process(src, filename, config) {
6+
process(src, filename) {
77
ensureRequire('coffee', ['coffeescript'])
88
const coffee = require('coffeescript')
99
const babelOptions = getBabelOptions(filename)

lib/transformers/typescript.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const ensureRequire = require('../ensure-require')
2-
const babelJest = require('babel-jest')
2+
const babelJest = require('babel-jest').default
33
const {
44
getBabelOptions,
55
getTsJestConfig,

lib/utils.js

+7-4
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,11 @@ const transformContent = function transformContent(
4949

5050
const getVueJestConfig = function getVueJestConfig(jestConfig) {
5151
return (
52-
(jestConfig && jestConfig.globals && jestConfig.globals['vue-jest']) || {}
52+
(jestConfig &&
53+
jestConfig.config &&
54+
jestConfig.config.globals &&
55+
jestConfig.config.globals['vue-jest']) ||
56+
{}
5357
)
5458
}
5559
const getBabelOptions = function loadBabelOptions(filename, options = {}) {
@@ -74,9 +78,8 @@ const getTsJestConfig = function getTsJestConfig(config) {
7478
return null
7579
}
7680

77-
const createTransformer = require('ts-jest').createTransformer
78-
const tr = createTransformer()
79-
const configSet = tr.configsFor(config)
81+
const { ConfigSet } = require('ts-jest/dist/config/config-set')
82+
const configSet = new ConfigSet(config)
8083
const tsConfig = configSet.typescript || configSet.parsedTsConfig
8184
// Force es5 to prevent const vue_1 = require('vue') from conflicting
8285
return { compilerOptions: { ...tsConfig.options, target: 'es5' } }

package.json

+6-6
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
"@babel/preset-env": "^7.9.0",
3434
"@vue/compiler-sfc": "^3.0.3",
3535
"babel-core": "^7.0.0-bridge.0",
36-
"babel-jest": "^26.0.0",
36+
"babel-jest": "^27.0.0",
3737
"coffeescript": "^2.3.2",
3838
"conventional-changelog": "^1.1.5",
3939
"eslint": "^5.12.0",
@@ -48,23 +48,23 @@
4848
"hamljs": "^0.6.2",
4949
"husky": "^1.1.4",
5050
"jade": "^1.11.0",
51-
"jest": "^26.0.0",
51+
"jest": "^27.0.0",
5252
"less": "^3.9.0",
5353
"lint-staged": "^8.0.5",
5454
"prettier": "^1.16.1",
5555
"pug": "^2.0.3",
5656
"sass": "^1.23.7",
5757
"semantic-release": "^15.13.2",
5858
"stylus": "^0.54.5",
59-
"ts-jest": "^26.4.4",
59+
"ts-jest": "^27.0.1",
6060
"typescript": "^4.1.2",
6161
"vue": "^3.0.3"
6262
},
6363
"peerDependencies": {
6464
"@babel/core": "7.x",
65-
"babel-jest": ">= 24 < 27",
66-
"jest": ">= 24 < 27 ",
67-
"ts-jest": ">= 24 < 27 ",
65+
"babel-jest": ">= 24 < 28",
66+
"jest": ">= 24 < 28 ",
67+
"ts-jest": ">= 24 < 28 ",
6868
"typescript": ">= 3.x",
6969
"vue": "^3.0.0-0"
7070
},

0 commit comments

Comments
 (0)