Skip to content

Commit aeacd25

Browse files
committed
chore: run e2e tests on CI
1 parent d34db83 commit aeacd25

File tree

13 files changed

+153
-23
lines changed

13 files changed

+153
-23
lines changed

e2e/2.x/babel-in-package/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"jest": "26.x",
2020
"ts-jest": "^26.3.0",
2121
"typescript": "^3.2.2",
22-
"vue2-jest": "~26.0.0"
22+
"@vue/vue2-jest": "file:../../../packages/vue2-jest"
2323
},
2424
"jest": {
2525
"moduleFileExtensions": [
@@ -29,7 +29,7 @@
2929
],
3030
"transform": {
3131
"^.+\\.js$": "babel-jest",
32-
"^.+\\.vue$": "vue2-jest"
32+
"^.+\\.vue$": "@vue/vue2-jest"
3333
}
3434
},
3535
"babel": {

e2e/2.x/basic/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"sass": "^1.23.7",
2525
"ts-jest": "^26.3.0",
2626
"typescript": "^3.2.2",
27-
"vue2-jest": "~26.0.0"
27+
"@vue/vue2-jest": "file:../../../packages/vue2-jest"
2828
},
2929
"jest": {
3030
"moduleFileExtensions": [
@@ -34,7 +34,7 @@
3434
],
3535
"transform": {
3636
"^.+\\.js$": "babel-jest",
37-
"^.+\\.vue$": "vue2-jest"
37+
"^.+\\.vue$": "@vue/vue2-jest"
3838
},
3939
"moduleNameMapper": {
4040
"^~?__styles/(.*)$": "<rootDir>/components/styles/$1"

e2e/2.x/custom-transformers/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"postcss": "^7.0.13",
1919
"postcss-color-function": "^4.0.1",
2020
"sass": "^1.23.7",
21-
"vue2-jest": "~26.0.0"
21+
"@vue/vue2-jest": "file:../../../packages/vue2-jest"
2222
},
2323
"jest": {
2424
"moduleFileExtensions": [
@@ -28,7 +28,7 @@
2828
],
2929
"transform": {
3030
"^.+\\.js$": "./babel-transformer.js",
31-
"^.+\\.vue$": "vue2-jest"
31+
"^.+\\.vue$": "@vue/vue2-jest"
3232
},
3333
"moduleNameMapper": {
3434
"^~?__styles/(.*)$": "<rootDir>/components/styles/$1"

e2e/2.x/style/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"postcss": "^7.0.13",
2020
"sass": "^1.23.7",
2121
"stylus": "^0.54.5",
22-
"vue2-jest": "~26.0.0"
22+
"@vue/vue2-jest": "file:../../../packages/vue2-jest"
2323
},
2424
"jest": {
2525
"moduleFileExtensions": [
@@ -29,7 +29,7 @@
2929
],
3030
"transform": {
3131
"^.+\\.js$": "babel-jest",
32-
"^.+\\.vue$": "vue2-jest"
32+
"^.+\\.vue$": "@vue/vue2-jest"
3333
},
3434
"moduleNameMapper": {
3535
"^~tmp/(.*)": "/tmp/$1",

e2e/3.x/babel-in-package/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"jest": "^26.0.0",
1818
"ts-jest": "^26.4.4",
1919
"typescript": "^4.1.2",
20-
"vue3-jest": "^26.0.0-alpha.10"
20+
"@vue/vue3-jest": "file:../../../packages/vue3-jest"
2121
},
2222
"jest": {
2323
"moduleFileExtensions": [
@@ -27,7 +27,7 @@
2727
],
2828
"transform": {
2929
"^.+\\.js$": "babel-jest",
30-
"^.+\\.vue$": "vue3-jest"
30+
"^.+\\.vue$": "@vue/vue3-jest"
3131
}
3232
},
3333
"babel": {

e2e/3.x/basic/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"ts-jest": "^26.4.4",
2424
"typescript": "^4.1.2",
2525
"vue-class-component": "^8.0.0-beta.4",
26-
"vue3-jest": "^26.0.0-alpha.10",
26+
"@vue/vue3-jest": "file:../../../packages/vue3-jest",
2727
"vue-property-decorator": "^10.0.0-rc.3"
2828
},
2929
"jest": {
@@ -36,7 +36,7 @@
3636
"transform": {
3737
"^.+\\.ts$": "ts-jest",
3838
"^.+\\.js$": "babel-jest",
39-
"^.+\\.vue$": "vue3-jest"
39+
"^.+\\.vue$": "@vue/vue3-jest"
4040
},
4141
"moduleNameMapper": {
4242
"^~?__styles/(.*)$": "<rootDir>/components/styles/$1"

e2e/3.x/custom-transformers/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
"babel-jest": "^26.0.0",
1717
"extract-from-css": "^0.4.4",
1818
"jest": "^26.0.0",
19-
"postcss": "^7.0.13",
19+
"postcss": "^8.3.5",
2020
"postcss-color-function": "^4.0.1",
2121
"sass": "^1.23.7",
22-
"vue3-jest": "^26.0.0-alpha.10"
22+
"@vue/vue3-jest": "file:../../../packages/vue3-jest"
2323
},
2424
"jest": {
2525
"moduleFileExtensions": [
@@ -29,7 +29,7 @@
2929
],
3030
"transform": {
3131
"^.+\\.js$": "./babel-transformer.js",
32-
"^.+\\.vue$": "vue3-jest"
32+
"^.+\\.vue$": "@vue/vue3-jest"
3333
},
3434
"moduleNameMapper": {
3535
"^~?__styles/(.*)$": "<rootDir>/components/styles/$1"

e2e/3.x/javascript/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"@babel/preset-env": "^7.9.0",
1515
"coffeescript": "^2.3.2",
1616
"jest": "^26.0.0",
17-
"vue3-jest": "^26.0.0-alpha.10"
17+
"@vue/vue3-jest": "file:../../../packages/vue3-jest"
1818
},
1919
"jest": {
2020
"moduleFileExtensions": [
@@ -24,7 +24,7 @@
2424
],
2525
"transform": {
2626
"^.+\\.js$": "babel-jest",
27-
"^.+\\.vue$": "vue3-jest"
27+
"^.+\\.vue$": "@vue/vue3-jest"
2828
}
2929
},
3030
"babel": {

e2e/3.x/style/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
"@vue/test-utils": "^1.1.0",
1717
"jest": "^26.0.0",
1818
"less": "^3.9.0",
19-
"postcss": "^7.0.13",
19+
"postcss": "^8.3.5",
2020
"sass": "^1.23.7",
2121
"stylus": "^0.54.5",
22-
"vue3-jest": "^26.0.0-alpha.10"
22+
"@vue/vue3-jest": "file:../../../packages/vue3-jest"
2323
},
2424
"jest": {
2525
"moduleFileExtensions": [
@@ -29,7 +29,7 @@
2929
],
3030
"transform": {
3131
"^.+\\.js$": "babel-jest",
32-
"^.+\\.vue$": "vue3-jest"
32+
"^.+\\.vue$": "@vue/vue3-jest"
3333
},
3434
"moduleNameMapper": {
3535
"^~?__styles/(.*)$": "<rootDir>/components/styles/$1"

e2e/3.x/typescript/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"jest": "^26.0.0",
1717
"ts-jest": "^26.4.4",
1818
"typescript": "^4.1.2",
19-
"vue3-jest": "^26.0.0-alpha.10"
19+
"@vue/vue3-jest": "file:../../../packages/vue3-jest"
2020
},
2121
"jest": {
2222
"globals": {
@@ -31,7 +31,7 @@
3131
],
3232
"transform": {
3333
"^.+\\.js$": "babel-jest",
34-
"^.+\\.vue$": "vue3-jest"
34+
"^.+\\.vue$": "@vue/vue3-jest"
3535
}
3636
},
3737
"babel": {

e2e/test-runner.js

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
const fs = require('fs')
2+
const path = require('path')
3+
const { spawn } = require('child_process')
4+
const chalk = require('chalk')
5+
const rimraf = require('rimraf')
6+
7+
// Can be run as `yarn test:e2e --cache` to forego reinstalling node_modules, or
8+
// `yarn test:e2e 3.x`, or `yarn test:e2e 3.x/<projects dir>`, or
9+
// `yarn test:e2e --cache 3.x/<projects dir>`.
10+
const args = process.argv.slice(2)
11+
12+
async function runTests() {
13+
const versionDirectories = ['2.x', '3.x']
14+
const filteredVersionDirectories = filterDirectories(versionDirectories)
15+
const absVersionDirectories = filteredVersionDirectories.map(dir =>
16+
path.join(__dirname, dir)
17+
)
18+
19+
for (const versionDirectory of absVersionDirectories) {
20+
const fixtureDirectories = fs
21+
.readdirSync(versionDirectory, { withFileTypes: true })
22+
.filter(dirent => dirent.isDirectory())
23+
.map(dirent => dirent.name)
24+
25+
const filteredDirectories = filterDirectories(fixtureDirectories)
26+
const absFixtureDirectories = filteredDirectories.map(
27+
dir => `${versionDirectory}/${dir}`
28+
)
29+
30+
for (const directory of absFixtureDirectories) await runTest(directory)
31+
}
32+
}
33+
34+
async function runTest(dir) {
35+
if (!args.includes('--cache')) {
36+
await Promise.all([
37+
remove(dir, 'node_modules'),
38+
remove(dir, 'yarn.lock'),
39+
installDependencies(dir)
40+
])
41+
}
42+
logStep(dir, 'Running tests')
43+
await execute(dir, 'yarn test')
44+
45+
success(`(${dir}) Complete`)
46+
}
47+
48+
async function remove(dir, target) {
49+
logStep(dir, `Removing ${target}`)
50+
await new Promise(resolve => rimraf(`${dir}/${target}`, resolve))
51+
}
52+
53+
async function installDependencies(dir) {
54+
logStep(dir, 'Installing node_modules')
55+
await execute(dir, 'yarn install --silent')
56+
}
57+
58+
async function execute(dir, command) {
59+
const exitCode = await new Promise((resolve, reject) => {
60+
const [cmd, ...args] = command.split(' ')
61+
const child = spawn(cmd, args, { cwd: dir, stdio: 'inherit' })
62+
child.on('close', resolve)
63+
child.on('error', reject)
64+
})
65+
if (exitCode !== 0) process.exit(exitCode)
66+
}
67+
68+
function filterDirectories(directories) {
69+
const filtered = directories.filter(dir =>
70+
args.some(arg => arg.includes(dir))
71+
)
72+
return filtered.length ? filtered : directories
73+
}
74+
75+
function logStep(dir, msg) {
76+
return info(`(${dir}) ${msg}`)
77+
}
78+
79+
function success(msg) {
80+
console.info(chalk.green(formatLog(msg)))
81+
}
82+
83+
function info(msg) {
84+
console.info(chalk.blueBright(formatLog(msg)))
85+
}
86+
87+
function formatLog(msg) {
88+
return `\n[vue-jest]: ${msg}\n`
89+
}
90+
91+
runTests()

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
"format:check": "prettier --no-semi --single-quote --check \"**/*.{js,json,md}\"",
2020
"lint": "eslint --ignore-path .gitignore \"{,!(node_modules)/**/}*.js\"",
2121
"lint:fix": "yarn lint --fix",
22-
"test": "yarn lint && yarn format:check && yarn workspaces run test"
22+
"test": "yarn lint && yarn format:check && yarn test:e2e && yarn workspaces run test",
23+
"test:e2e": "node e2e/test-runner"
2324
},
2425
"devDependencies": {
2526
"eslint": "^5.12.0",

yarn.lock

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1739,6 +1739,25 @@
17391739
lodash "^4.17.15"
17401740
pretty "^2.0.0"
17411741

1742+
"@vue/vue2-jest@file:packages/vue2-jest":
1743+
version "26.0.0"
1744+
dependencies:
1745+
"@babel/plugin-transform-modules-commonjs" "^7.2.0"
1746+
"@vue/component-compiler-utils" "^3.1.0"
1747+
chalk "^2.1.0"
1748+
extract-from-css "^0.4.4"
1749+
source-map "0.5.6"
1750+
1751+
"@vue/vue3-jest@file:packages/vue3-jest":
1752+
version "26.0.0-alpha.10"
1753+
dependencies:
1754+
"@babel/plugin-transform-modules-commonjs" "^7.2.0"
1755+
chalk "^2.1.0"
1756+
convert-source-map "^1.6.0"
1757+
extract-from-css "^0.4.4"
1758+
source-map "0.5.6"
1759+
tsconfig "^7.0.0"
1760+
17421761
JSONStream@^1.0.4, JSONStream@^1.3.4, JSONStream@^1.3.5:
17431762
version "1.3.5"
17441763
resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
@@ -7114,6 +7133,11 @@ nanoid@^3.1.23:
71147133
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81"
71157134
integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==
71167135

7136+
nanoid@^3.1.28:
7137+
version "3.1.29"
7138+
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.29.tgz#214fb2d7a33e1a5bef4757b779dfaeb6a4e5aeb4"
7139+
integrity sha512-dW2pUSGZ8ZnCFIlBIA31SV8huOGCHb6OwzVCc7A69rb/a+SgPBwfmLvK5TKQ3INPbRkcI8a/Owo0XbiTNH19wg==
7140+
71177141
nanomatch@^1.2.9:
71187142
version "1.2.13"
71197143
resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
@@ -7958,6 +7982,11 @@ performance-now@^2.1.0:
79587982
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
79597983
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
79607984

7985+
picocolors@^0.2.1:
7986+
version "0.2.1"
7987+
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f"
7988+
integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==
7989+
79617990
picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.0.7, picomatch@^2.2.1:
79627991
version "2.2.1"
79637992
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a"
@@ -8135,6 +8164,15 @@ postcss@^8.1.10:
81358164
nanoid "^3.1.23"
81368165
source-map-js "^0.6.2"
81378166

8167+
postcss@^8.3.5:
8168+
version "8.3.9"
8169+
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.9.tgz#98754caa06c4ee9eb59cc48bd073bb6bd3437c31"
8170+
integrity sha512-f/ZFyAKh9Dnqytx5X62jgjhhzttjZS7hMsohcI7HEI5tjELX/HxCy3EFhsRxyzGvrzFF+82XPvCS8T9TFleVJw==
8171+
dependencies:
8172+
nanoid "^3.1.28"
8173+
picocolors "^0.2.1"
8174+
source-map-js "^0.6.2"
8175+
81388176
prelude-ls@~1.1.2:
81398177
version "1.1.2"
81408178
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"

0 commit comments

Comments
 (0)