add rollup/commonjs plugin to web-test-runner to treat externals the same as we do on the production build (this helps with tinymce)

This commit is contained in:
Jacob Overgaard
2023-11-08 12:03:50 +01:00
parent 252bde533f
commit 3fc490105e
3 changed files with 166 additions and 10 deletions

View File

@@ -47,6 +47,7 @@
"@typescript-eslint/parser": "^6.5.0",
"@web/dev-server-esbuild": "^0.4.1",
"@web/dev-server-import-maps": "^0.1.1",
"@web/dev-server-rollup": "^0.6.0",
"@web/test-runner": "^0.17.0",
"@web/test-runner-playwright": "^0.10.1",
"babel-loader": "^9.1.3",
@@ -8913,13 +8914,95 @@
}
},
"node_modules/@web/dev-server-rollup": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.5.2.tgz",
"integrity": "sha512-R1heFIOmbExKJn2auDcOcF0EPoLQotZF1HE8Bpqq4TfLRkc7w+JClLdwkOMr/+Ip608cRw8VMkc7teYDFkvSXw==",
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.6.0.tgz",
"integrity": "sha512-3cSLo/H8AGrJH7BRY/s7W3g38gzaBj3jcLiT1iUXPNFVn4hQJDO8mZEHqe02/XcO5p6wE65w6GrH0NAjOu1gUg==",
"dev": true,
"dependencies": {
"@rollup/plugin-node-resolve": "^15.0.1",
"@web/dev-server-core": "^0.5.0",
"@web/dev-server-core": "^0.7.0",
"nanocolors": "^0.2.1",
"parse5": "^6.0.1",
"rollup": "^3.15.0",
"whatwg-url": "^11.0.0"
},
"engines": {
"node": ">=18.0.0"
}
},
"node_modules/@web/dev-server-rollup/node_modules/@web/dev-server-core": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.0.tgz",
"integrity": "sha512-1FJe6cJ3r0x0ZmxY/FnXVduQD4lKX7QgYhyS6N+VmIpV+tBU4sGRbcrmeoYeY+nlnPa6p2oNuonk3X5ln/W95g==",
"dev": true,
"dependencies": {
"@types/koa": "^2.11.6",
"@types/ws": "^7.4.0",
"@web/parse5-utils": "^2.1.0",
"chokidar": "^3.4.3",
"clone": "^2.1.2",
"es-module-lexer": "^1.0.0",
"get-stream": "^6.0.0",
"is-stream": "^2.0.0",
"isbinaryfile": "^5.0.0",
"koa": "^2.13.0",
"koa-etag": "^4.0.0",
"koa-send": "^5.0.1",
"koa-static": "^5.0.0",
"lru-cache": "^8.0.4",
"mime-types": "^2.1.27",
"parse5": "^6.0.1",
"picomatch": "^2.2.2",
"ws": "^7.4.2"
},
"engines": {
"node": ">=18.0.0"
}
},
"node_modules/@web/dev-server-rollup/node_modules/es-module-lexer": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz",
"integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==",
"dev": true
},
"node_modules/@web/dev-server-rollup/node_modules/lru-cache": {
"version": "8.0.5",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz",
"integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==",
"dev": true,
"engines": {
"node": ">=16.14"
}
},
"node_modules/@web/dev-server-rollup/node_modules/ws": {
"version": "7.5.9",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
"dev": true,
"engines": {
"node": ">=8.3.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": "^5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/@web/dev-server/node_modules/@web/dev-server-rollup": {
"version": "0.5.4",
"resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.5.4.tgz",
"integrity": "sha512-lIN+lwj84Oh8Whe4vHijjMVe7NLJUzLxiiUsOleUtrBp1b7Us9QyUNCJK/iYitHJJDhCw6JcLJbCJ5H+vW969Q==",
"dev": true,
"dependencies": {
"@rollup/plugin-node-resolve": "^15.0.1",
"@web/dev-server-core": "^0.6.2",
"nanocolors": "^0.2.1",
"parse5": "^6.0.1",
"rollup": "^3.15.0",
@@ -8929,23 +9012,88 @@
"node": ">=16.0.0"
}
},
"node_modules/@web/dev-server/node_modules/@web/dev-server-rollup/node_modules/@web/dev-server-core": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.6.3.tgz",
"integrity": "sha512-BWlgxIXQbg3RqUdz9Cfeh3XqFv0KcjQi4DLaZy9s63IlXgNZTzesTfDzliP/mIdWd5r8KZYh/P3n6LMi7CLPjQ==",
"dev": true,
"dependencies": {
"@types/koa": "^2.11.6",
"@types/ws": "^7.4.0",
"@web/parse5-utils": "^2.0.2",
"chokidar": "^3.4.3",
"clone": "^2.1.2",
"es-module-lexer": "^1.0.0",
"get-stream": "^6.0.0",
"is-stream": "^2.0.0",
"isbinaryfile": "^5.0.0",
"koa": "^2.13.0",
"koa-etag": "^4.0.0",
"koa-send": "^5.0.1",
"koa-static": "^5.0.0",
"lru-cache": "^8.0.4",
"mime-types": "^2.1.27",
"parse5": "^6.0.1",
"picomatch": "^2.2.2",
"ws": "^7.4.2"
},
"engines": {
"node": ">=16.0.0"
}
},
"node_modules/@web/dev-server/node_modules/es-module-lexer": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz",
"integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==",
"dev": true
},
"node_modules/@web/dev-server/node_modules/ip": {
"version": "1.1.8",
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
"integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==",
"dev": true
},
"node_modules/@web/dev-server/node_modules/lru-cache": {
"version": "8.0.5",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz",
"integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==",
"dev": true,
"engines": {
"node": ">=16.14"
}
},
"node_modules/@web/dev-server/node_modules/ws": {
"version": "7.5.9",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
"dev": true,
"engines": {
"node": ">=8.3.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": "^5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/@web/parse5-utils": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.0.0.tgz",
"integrity": "sha512-9pxjAg1k0Ie3t4gTQr/nmoTrvq6wmP40MNPwaetaN+jPc328MpO+WzmEApvJOW65v7lamjlvYFDsdvG8Lrd87Q==",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.1.0.tgz",
"integrity": "sha512-GzfK5disEJ6wEjoPwx8AVNwUe9gYIiwc+x//QYxYDAFKUp4Xb1OJAGLc2l2gVrSQmtPGLKrTRcW90Hv4pEq1qA==",
"dev": true,
"dependencies": {
"@types/parse5": "^6.0.1",
"parse5": "^6.0.1"
},
"engines": {
"node": ">=16.0.0"
"node": ">=18.0.0"
}
},
"node_modules/@web/test-runner": {

View File

@@ -164,6 +164,7 @@
"@typescript-eslint/parser": "^6.5.0",
"@web/dev-server-esbuild": "^0.4.1",
"@web/dev-server-import-maps": "^0.1.1",
"@web/dev-server-rollup": "^0.6.0",
"@web/test-runner": "^0.17.0",
"@web/test-runner-playwright": "^0.10.1",
"babel-loader": "^9.1.3",

View File

@@ -1,6 +1,10 @@
import { esbuildPlugin } from '@web/dev-server-esbuild';
import { playwrightLauncher } from '@web/test-runner-playwright';
import { importMapsPlugin } from '@web/dev-server-import-maps';
import rollupCommonjs from '@rollup/plugin-commonjs';
import { fromRollup } from '@web/dev-server-rollup';
const commonjs = fromRollup(rollupCommonjs);
const mode = process.env.MODE || 'dev';
if (!['dev', 'prod'].includes(mode)) {
@@ -11,7 +15,7 @@ if (!['dev', 'prod'].includes(mode)) {
export default {
rootDir: '.',
files: ['./src/**/*.test.ts'],
nodeResolve: { exportConditions: mode === 'dev' ? ['development'] : [] },
nodeResolve: { exportConditions: mode === 'dev' ? ['development'] : [], preferBuiltins: false, browser: true },
plugins: [
esbuildPlugin({ ts: true, tsconfig: './tsconfig.json', target: 'auto', json: true }),
importMapsPlugin({
@@ -32,7 +36,7 @@ export default {
'@umbraco-cms/backoffice/external/uui': './src/external/uui/index.ts',
'@umbraco-cms/backoffice/external/uuid': './src/external/uuid/index.ts',
'@umbraco-cms/backoffice/external/sanitize-html': './src/external/sanitize-html/index.ts',
'@umbraco-cms/backoffice/external/marked': 'src/external/marked/index.ts',
'@umbraco-cms/backoffice/external/marked': './src/external/marked/index.ts',
'@umbraco-cms/backoffice/backend-api': './src/external/backend-api/index.ts',
'@umbraco-cms/backoffice/class-api': './src/libs/class-api/index.ts',
@@ -114,6 +118,9 @@ export default {
},
},
}),
commonjs({
include: ['node_modules/**', 'src/external/**'],
}),
],
browsers: [playwrightLauncher({ product: 'chromium' }), playwrightLauncher({ product: 'webkit' })],
coverageConfig: {