Switch to happy-dom for testing (#29948)

Use `happy-dom` again in vitest as it has caught up recently to `jsdom`
in terms of features and it is a much more lightweight solution.

I encountered [one
bug](https://github.com/capricorn86/happy-dom/issues/1342), but it's an
easy workaround until fixed.

I regenerated the lockfile to get rid of the transitive dependencies so
that's why the diff also has some upgrades in it.

In total, this change removes 39 npm dependencies.
pull/29967/head^2
silverwind 8 months ago committed by GitHub
parent 62f8174aa2
commit 82979588f4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 1427
      package-lock.json
  2. 2
      package.json
  3. 2
      vitest.config.js
  4. 2
      web_src/js/svg.js

1427
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -84,7 +84,7 @@
"eslint-plugin-vue": "9.23.0", "eslint-plugin-vue": "9.23.0",
"eslint-plugin-vue-scoped-css": "2.7.2", "eslint-plugin-vue-scoped-css": "2.7.2",
"eslint-plugin-wc": "2.0.4", "eslint-plugin-wc": "2.0.4",
"jsdom": "24.0.0", "happy-dom": "14.2.0",
"markdownlint-cli": "0.39.0", "markdownlint-cli": "0.39.0",
"postcss-html": "1.6.0", "postcss-html": "1.6.0",
"stylelint": "16.2.1", "stylelint": "16.2.1",

@ -6,7 +6,7 @@ export default defineConfig({
test: { test: {
include: ['web_src/**/*.test.js'], include: ['web_src/**/*.test.js'],
setupFiles: ['web_src/js/vitest.setup.js'], setupFiles: ['web_src/js/vitest.setup.js'],
environment: 'jsdom', environment: 'happy-dom',
testTimeout: 20000, testTimeout: 20000,
open: false, open: false,
allowOnly: true, allowOnly: true,

@ -205,7 +205,7 @@ export const SvgIcon = {
// make the <SvgIcon class="foo" class-name="bar"> classes work together // make the <SvgIcon class="foo" class-name="bar"> classes work together
const classes = []; const classes = [];
for (const cls of svgOuter.classList) { for (const cls of svgOuter.classList.values()) {
classes.push(cls); classes.push(cls);
} }
// TODO: drop the `className/class-name` prop in the future, only use "class" prop // TODO: drop the `className/class-name` prop in the future, only use "class" prop

Loading…
Cancel
Save