diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1c66b6f5..6aac6061 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,7 +31,7 @@ jobs: run: pnpm nuxi prepare - name: π§ͺ Test project - run: pnpm test tests/unit + run: pnpm test - name: π Lint run: pnpm lint diff --git a/nuxt.config.ts b/nuxt.config.ts index 1b9cf4ef..41cdd882 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -24,7 +24,7 @@ export default defineNuxtConfig({ '@nuxtjs/i18n', '@nuxtjs/color-mode', '@unlazy/nuxt', - 'nuxt-vitest', + '@nuxt/test-utils/module', ...(isDevelopment || isWindows) ? [] : ['nuxt-security'], '~/modules/emoji-mart-translation', '~/modules/purge-comments', diff --git a/package.json b/package.json index 178e8eed..06bacf70 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "@iconify/json": "^2.2.142", "@iconify/utils": "^2.1.7", "@nuxt/devtools": "^1.0.0-beta.1", + "@nuxt/test-utils": "^3.9.0-alpha.1", "@nuxtjs/color-mode": "^3.3.2", "@nuxtjs/i18n": "8.0.0-beta.10", "@pinia/nuxt": "^0.4.11", @@ -79,7 +80,6 @@ "lru-cache": "^10.0.0", "masto": "^5.11.3", "nuxt-security": "^0.13.1", - "nuxt-vitest": "^0.11.0", "page-lifecycle": "^0.1.2", "pinia": "^2.1.4", "postcss-nested": "^6.0.1", @@ -117,6 +117,7 @@ "@types/prettier": "^2.7.3", "@types/wicg-file-system-access": "^2020.9.6", "@unlazy/nuxt": "^0.9.3", + "@vue/test-utils": "^2.4.3", "bumpp": "^9.2.0", "consola": "^3.2.3", "eslint": "^8.49.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 01e28a61..c77e1dc5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,6 +35,9 @@ importers: '@nuxt/devtools': specifier: ^1.0.0-beta.1 version: 1.0.4(idb-keyval@6.2.1)(nuxt@3.8.2)(rollup@2.79.1)(vite@4.5.0) + '@nuxt/test-utils': + specifier: ^3.9.0-alpha.1 + version: 3.9.0-alpha.1(@vue/test-utils@2.4.3)(h3@1.9.0)(happy-dom@10.5.2)(rollup@2.79.1)(vite@4.5.0)(vitest@1.0.4)(vue-router@4.2.5)(vue@3.3.9) '@nuxtjs/color-mode': specifier: ^3.3.2 version: 3.3.2(rollup@2.79.1) @@ -88,7 +91,7 @@ importers: version: 2.1.8(@tiptap/core@2.1.8)(@tiptap/pm@2.0.3)(vue@3.3.9) '@unocss/nuxt': specifier: ^0.53.4 - version: 0.53.4(postcss@8.4.31)(rollup@2.79.1)(vite@4.5.0)(webpack@5.89.0) + version: 0.53.4(postcss@8.4.32)(rollup@2.79.1)(vite@4.5.0)(webpack@5.89.0) '@vue-macros/nuxt': specifier: ^1.6.0 version: 1.6.0(@vue-macros/reactivity-transform@0.3.23)(@vueuse/core@10.2.1)(nuxt@3.8.2)(rollup@2.79.1)(typescript@5.1.6)(vite@4.5.0)(vue-tsc@1.8.8)(vue@3.3.9)(webpack@5.89.0) @@ -164,9 +167,6 @@ importers: nuxt-security: specifier: ^0.13.1 version: 0.13.1(patch_hash=bd6cmp7ukwwiwrxafbbotwkihe)(rollup@2.79.1) - nuxt-vitest: - specifier: ^0.11.0 - version: 0.11.0(@vitejs/plugin-vue-jsx@3.1.0)(@vitejs/plugin-vue@4.5.0)(happy-dom@10.5.2)(rollup@2.79.1)(vite@4.5.0)(vitest@1.0.4)(vue-router@4.2.5)(vue@3.3.9) page-lifecycle: specifier: ^0.1.2 version: 0.1.2 @@ -175,7 +175,7 @@ importers: version: 2.1.4(typescript@5.1.6)(vue@3.3.9) postcss-nested: specifier: ^6.0.1 - version: 6.0.1(postcss@8.4.31) + version: 6.0.1(postcss@8.4.32) rollup-plugin-node-polyfills: specifier: ^0.2.1 version: 0.2.1 @@ -273,6 +273,9 @@ importers: '@unlazy/nuxt': specifier: ^0.9.3 version: 0.9.3(rollup@2.79.1) + '@vue/test-utils': + specifier: ^2.4.3 + version: 2.4.3(vue@3.3.9) bumpp: specifier: ^9.2.0 version: 9.2.0 @@ -327,7 +330,7 @@ importers: devDependencies: '@nuxt-themes/docus': specifier: ^1.14.6 - version: 1.14.6(idb-keyval@6.2.1)(nuxt@3.8.2)(postcss@8.4.31)(rollup@3.29.4)(vue@3.3.9) + version: 1.14.6(idb-keyval@6.2.1)(nuxt@3.8.2)(postcss@8.4.32)(rollup@3.29.4)(vue@3.3.9) nuxt: specifier: ^3.7.0 version: 3.8.2(eslint@8.49.0)(idb-keyval@6.2.1)(rollup@3.29.4)(typescript@5.1.6)(vite@4.5.0)(vue-tsc@1.8.8) @@ -2565,13 +2568,6 @@ packages: wrap-ansi: 8.1.0 wrap-ansi-cjs: /wrap-ansi@7.0.0 - /@jest/schemas@29.4.3: - resolution: {integrity: sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.25.24 - dev: false - /@jest/schemas@29.6.3: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2805,12 +2801,12 @@ packages: transitivePeerDependencies: - supports-color - /@nuxt-themes/docus@1.14.6(idb-keyval@6.2.1)(nuxt@3.8.2)(postcss@8.4.31)(rollup@3.29.4)(vue@3.3.9): + /@nuxt-themes/docus@1.14.6(idb-keyval@6.2.1)(nuxt@3.8.2)(postcss@8.4.32)(rollup@3.29.4)(vue@3.3.9): resolution: {integrity: sha512-tkSG7j0jhVo53wEpK9V48hIvaK0XEzVU64hXhFfnIMv6LJu99cKOC//boebPbN9qLbJmkBdo4IAIJ0tN5MD0qw==} dependencies: - '@nuxt-themes/elements': 0.9.4(postcss@8.4.31)(rollup@3.29.4)(vue@3.3.9) - '@nuxt-themes/tokens': 1.9.1(postcss@8.4.31)(rollup@3.29.4)(vue@3.3.9) - '@nuxt-themes/typography': 0.11.0(postcss@8.4.31)(rollup@3.29.4)(vue@3.3.9) + '@nuxt-themes/elements': 0.9.4(postcss@8.4.32)(rollup@3.29.4)(vue@3.3.9) + '@nuxt-themes/tokens': 1.9.1(postcss@8.4.32)(rollup@3.29.4)(vue@3.3.9) + '@nuxt-themes/typography': 0.11.0(postcss@8.4.32)(rollup@3.29.4)(vue@3.3.9) '@nuxt/content': 2.7.2(idb-keyval@6.2.1)(rollup@3.29.4) '@nuxthq/studio': 0.13.4(rollup@3.29.4) '@vueuse/integrations': 10.2.1(focus-trap@7.5.2)(fuse.js@6.6.2)(idb-keyval@6.2.1)(vue@3.3.9) @@ -2849,10 +2845,10 @@ packages: - vue dev: true - /@nuxt-themes/elements@0.9.4(postcss@8.4.31)(rollup@3.29.4)(vue@3.3.9): + /@nuxt-themes/elements@0.9.4(postcss@8.4.32)(rollup@3.29.4)(vue@3.3.9): resolution: {integrity: sha512-d7XgHc/gjMpre26+N76APL1vlnQHiZTOk61GC4I/ZYQuioSfoKuoIP+Ixrr0QgM22j4MRBtAaBnDAg1wRJrDCQ==} dependencies: - '@nuxt-themes/tokens': 1.9.1(postcss@8.4.31)(rollup@3.29.4)(vue@3.3.9) + '@nuxt-themes/tokens': 1.9.1(postcss@8.4.32)(rollup@3.29.4)(vue@3.3.9) '@vueuse/core': 9.13.0(vue@3.3.9) transitivePeerDependencies: - '@vue/composition-api' @@ -2863,12 +2859,12 @@ packages: - vue dev: true - /@nuxt-themes/tokens@1.9.1(postcss@8.4.31)(rollup@3.29.4)(vue@3.3.9): + /@nuxt-themes/tokens@1.9.1(postcss@8.4.32)(rollup@3.29.4)(vue@3.3.9): resolution: {integrity: sha512-5C28kfRvKnTX8Tux+xwyaf+2pxKgQ53dC9l6C33sZwRRyfUJulGDZCFjKbuNq4iqVwdGvkFSQBYBYjFAv6t75g==} dependencies: '@nuxtjs/color-mode': 3.3.2(rollup@3.29.4) '@vueuse/core': 9.13.0(vue@3.3.9) - pinceau: 0.18.9(postcss@8.4.31) + pinceau: 0.18.9(postcss@8.4.32) transitivePeerDependencies: - '@vue/composition-api' - postcss @@ -2878,13 +2874,13 @@ packages: - vue dev: true - /@nuxt-themes/typography@0.11.0(postcss@8.4.31)(rollup@3.29.4)(vue@3.3.9): + /@nuxt-themes/typography@0.11.0(postcss@8.4.32)(rollup@3.29.4)(vue@3.3.9): resolution: {integrity: sha512-TqyvD7sDWnqGmL00VtuI7JdmNTPL5/g957HCAWNzcNp+S20uJjW/FXSdkM76d4JSVDHvBqw7Wer3RsqVhqvA4w==} dependencies: '@nuxtjs/color-mode': 3.3.2(rollup@3.29.4) nuxt-config-schema: 0.4.6(rollup@3.29.4) nuxt-icon: 0.3.3(rollup@3.29.4)(vue@3.3.9) - pinceau: 0.18.9(postcss@8.4.31) + pinceau: 0.18.9(postcss@8.4.32) ufo: 1.3.2 transitivePeerDependencies: - postcss @@ -3276,6 +3272,72 @@ packages: - supports-color dev: true + /@nuxt/test-utils@3.9.0-alpha.1(@vue/test-utils@2.4.3)(h3@1.9.0)(happy-dom@10.5.2)(rollup@2.79.1)(vite@4.5.0)(vitest@1.0.4)(vue-router@4.2.5)(vue@3.3.9): + resolution: {integrity: sha512-cPR2Z2REMyIRGM3/2zEf5IAfMHT2GniMx4IkeeexlG7O0y3VMA1SumoWFa5/pRLxXhUjR2Vg3je1WaUr/ACZkw==} + engines: {node: ^14.18.0 || >=16.10.0} + peerDependencies: + '@jest/globals': ^29.5.0 + '@testing-library/vue': ^7.0.0 || ^8.0.1 + '@vitest/ui': ^0.33.0 || ^0.34.6 || ^1.0.0 + '@vue/test-utils': ^2.4.2 + h3: '*' + happy-dom: ^9.10.9 || ^10.0.0 || ^11.0.0 || ^12.0.0 + jsdom: ^22.0.0 || ^23.0.0 + playwright-core: ^1.34.3 + vite: '*' + vitest: ^0.24.5 || ^0.26.0 || ^0.27.0 || ^0.28.0 || ^0.29.0 || ^0.30.0 || ^0.33.0 || ^0.34.6 || ^1.0.0 + vue: ^3.3.4 + vue-router: ^4.0.0 + peerDependenciesMeta: + '@jest/globals': + optional: true + '@testing-library/vue': + optional: true + '@vitest/ui': + optional: true + '@vue/test-utils': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright-core: + optional: true + vitest: + optional: true + dependencies: + '@nuxt/kit': 3.8.2(rollup@2.79.1) + '@nuxt/schema': 3.8.2(rollup@2.79.1) + '@vue/test-utils': 2.4.3(vue@3.3.9) + consola: 3.2.3 + defu: 6.1.3 + estree-walker: 3.0.3 + execa: 8.0.1 + fake-indexeddb: 5.0.1 + get-port-please: 3.1.1 + h3: 1.9.0 + happy-dom: 10.5.2 + local-pkg: 0.5.0 + magic-string: 0.30.5 + node-fetch-native: 1.4.1 + ofetch: 1.3.3 + pathe: 1.1.1 + perfect-debounce: 1.0.0 + radix3: 1.1.0 + std-env: 3.6.0 + ufo: 1.3.2 + unenv: 1.8.0 + unplugin: 1.5.1 + vite: 4.5.0 + vitest: 1.0.4(happy-dom@10.5.2) + vitest-environment-nuxt: 1.0.0-alpha.1(@vue/test-utils@2.4.3)(h3@1.9.0)(happy-dom@10.5.2)(rollup@2.79.1)(vite@4.5.0)(vitest@1.0.4)(vue-router@4.2.5)(vue@3.3.9) + vue: 3.3.9(typescript@5.1.6) + vue-router: 4.2.5(vue@3.3.9) + transitivePeerDependencies: + - rollup + - supports-color + dev: false + /@nuxt/ui-templates@1.3.1: resolution: {integrity: sha512-5gc02Pu1HycOVUWJ8aYsWeeXcSTPe8iX8+KIrhyEtEoOSkY0eMBuo0ssljB8wALuEmepv31DlYe5gpiRwkjESA==} @@ -3471,7 +3533,6 @@ packages: /@one-ini/wasm@0.1.1: resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} - dev: false /@parcel/watcher-android-arm64@2.3.0: resolution: {integrity: sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA==} @@ -4077,10 +4138,6 @@ packages: transitivePeerDependencies: - supports-color - /@sinclair/typebox@0.25.24: - resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==} - dev: false - /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -4879,7 +4936,7 @@ packages: sirv: 2.0.3 dev: false - /@unocss/nuxt@0.53.4(postcss@8.4.31)(rollup@2.79.1)(vite@4.5.0)(webpack@5.89.0): + /@unocss/nuxt@0.53.4(postcss@8.4.32)(rollup@2.79.1)(vite@4.5.0)(webpack@5.89.0): resolution: {integrity: sha512-KKLWLcOQw65oWaye3MF6rpZBc/zy8f5pJPPaqS0r2VQ1vGN85KuEc0yY2E0HK1KrW5yB/YU3aPWosRf5wPa5mQ==} dependencies: '@nuxt/kit': 3.8.2(rollup@2.79.1) @@ -4895,7 +4952,7 @@ packages: '@unocss/reset': 0.53.4 '@unocss/vite': 0.53.4(rollup@2.79.1)(vite@4.5.0) '@unocss/webpack': 0.53.4(rollup@2.79.1)(webpack@5.89.0) - unocss: 0.53.4(@unocss/webpack@0.53.4)(postcss@8.4.31)(rollup@2.79.1)(vite@4.5.0) + unocss: 0.53.4(@unocss/webpack@0.53.4)(postcss@8.4.32)(rollup@2.79.1)(vite@4.5.0) transitivePeerDependencies: - postcss - rollup @@ -4904,7 +4961,7 @@ packages: - webpack dev: false - /@unocss/postcss@0.53.4(postcss@8.4.31): + /@unocss/postcss@0.53.4(postcss@8.4.32): resolution: {integrity: sha512-G7ZWqUszJiXrQVOzLBzOFZwGIVGwH695lE75NufQi8tXQF9QphGKT0t7AX1NRxA3IZpZW2Twxa/tZYRh2PJQAg==} engines: {node: '>=14'} peerDependencies: @@ -4915,7 +4972,7 @@ packages: css-tree: 2.3.1 fast-glob: 3.3.2 magic-string: 0.30.5 - postcss: 8.4.31 + postcss: 8.4.32 dev: false /@unocss/preset-attributify@0.53.4: @@ -5129,29 +5186,6 @@ packages: dependencies: tinyspy: 2.2.0 - /@vitest/ui@0.33.0(vitest@1.0.4): - resolution: {integrity: sha512-7gbAjLqt30R4bodkJAutdpy4ncv+u5IKTHYTow1c2q+FOxZUC9cKOSqMUxjwaaTwLN+EnDnmXYPtg3CoahaUzQ==} - peerDependencies: - vitest: '>=0.30.1 <1' - dependencies: - '@vitest/utils': 0.33.0 - fast-glob: 3.3.2 - fflate: 0.8.0 - flatted: 3.2.9 - pathe: 1.1.1 - picocolors: 1.0.0 - sirv: 2.0.3 - vitest: 1.0.4(happy-dom@10.5.2) - dev: false - - /@vitest/utils@0.33.0: - resolution: {integrity: sha512-pF1w22ic965sv+EN6uoePkAOTkAPWM03Ri/jXNyMIKBb/XHLDPfhLvf/Fa9g0YECevAIz56oVYXhodLvLQ/awA==} - dependencies: - diff-sequences: 29.4.3 - loupe: 2.3.6 - pretty-format: 29.5.0 - dev: false - /@vitest/utils@1.0.4: resolution: {integrity: sha512-gsswWDXxtt0QvtK/y/LWukN7sGMYmnCcv1qv05CsY6cU/Y1zpGX1QuvLs+GO1inczpE6Owixeel3ShkjhYtGfA==} dependencies: @@ -5838,8 +5872,8 @@ packages: /@vue/shared@3.3.9: resolution: {integrity: sha512-ZE0VTIR0LmYgeyhurPTpy4KzKsuDyQbMSdM49eKkMnT5X4VfFBLysMzjIZhLEFQYjjOVVfbvUDHckwjDFiO2eA==} - /@vue/test-utils@2.4.1(vue@3.3.9): - resolution: {integrity: sha512-VO8nragneNzUZUah6kOjiFmD/gwRjUauG9DROh6oaOeFwX1cZRUNHhdeogE8635cISigXFTtGLUQWx5KCb0xeg==} + /@vue/test-utils@2.4.3(vue@3.3.9): + resolution: {integrity: sha512-F4K7mF+ad++VlTrxMJVRnenKSJmO6fkQt2wpRDiKDesQMkfpniGWsqEi/JevxGBo2qEkwwjvTUAoiGJLNx++CA==} peerDependencies: '@vue/server-renderer': ^3.0.1 vue: ^3.0.1 @@ -5849,8 +5883,7 @@ packages: dependencies: js-beautify: 1.14.9 vue: 3.3.9(typescript@5.1.6) - vue-component-type-helpers: 1.8.4 - dev: false + vue-component-type-helpers: 1.8.25 /@vue/typescript@1.8.8(typescript@5.1.6): resolution: {integrity: sha512-jUnmMB6egu5wl342eaUH236v8tdcEPXXkPgj+eI/F6JwW/lb+yAU6U07ZbQ3MVabZRlupIlPESB7ajgAGixhow==} @@ -7075,7 +7108,6 @@ packages: dependencies: ini: 1.3.8 proto-list: 1.2.4 - dev: false /consola@2.15.3: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} @@ -7434,11 +7466,6 @@ packages: /devalue@4.3.2: resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} - /diff-sequences@29.4.3: - resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: false - /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7525,7 +7552,6 @@ packages: commander: 10.0.1 minimatch: 9.0.1 semver: 7.5.4 - dev: false /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -8287,6 +8313,11 @@ packages: pathe: 1.1.1 ufo: 1.3.2 + /fake-indexeddb@5.0.1: + resolution: {integrity: sha512-vxybH29Owtc6khV/Usy47B1g+eKwyhFiX8nwpCC4td320jvwrKQDH6vNtcJZgUzVxmfsSIlHzLKQzT76JMCO7A==} + engines: {node: '>=18'} + dev: false + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -8314,10 +8345,6 @@ packages: dependencies: reusify: 1.0.4 - /fflate@0.8.0: - resolution: {integrity: sha512-FAdS4qMuFjsJj6XHbBaZeXOgaypXp8iw/Tpyuq/w3XA41jjLHT8NPA+n7czH/DDhdncq0nAyDZmPeWXh2qmdIg==} - dev: false - /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -9504,7 +9531,6 @@ packages: editorconfig: 1.0.4 glob: 8.1.0 nopt: 6.0.0 - dev: false /js-cookie@3.0.5: resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} @@ -10474,7 +10500,6 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 - dev: false /minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} @@ -11006,36 +11031,6 @@ packages: dev: false patched: true - /nuxt-vitest@0.11.0(@vitejs/plugin-vue-jsx@3.1.0)(@vitejs/plugin-vue@4.5.0)(happy-dom@10.5.2)(rollup@2.79.1)(vite@4.5.0)(vitest@1.0.4)(vue-router@4.2.5)(vue@3.3.9): - resolution: {integrity: sha512-3gXY/c6bfIQnrwUp1tVLdc5jNEk9m2czmebCSWn9fmMz7wVO3BX1k1qJaWvwU0Q4q7WEzHNn6toUXwI8BuhV1Q==} - peerDependencies: - '@vitejs/plugin-vue': '*' - '@vitejs/plugin-vue-jsx': '*' - vite: '*' - vitest: ^0.24.5 || ^0.26.0 || ^0.27.0 || ^0.28.0 || ^0.29.0 || ^0.30.0 || ^0.33.0 - dependencies: - '@nuxt/kit': 3.8.2(rollup@2.79.1) - '@vitejs/plugin-vue': 4.5.0(vite@4.5.0)(vue@3.3.9) - '@vitejs/plugin-vue-jsx': 3.1.0(vite@4.5.0)(vue@3.3.9) - '@vitest/ui': 0.33.0(vitest@1.0.4) - defu: 6.1.3 - get-port-please: 3.1.1 - perfect-debounce: 1.0.0 - std-env: 3.5.0 - vite: 4.5.0 - vitest: 1.0.4(happy-dom@10.5.2) - vitest-environment-nuxt: 0.11.0(happy-dom@10.5.2)(rollup@2.79.1)(vitest@1.0.4)(vue-router@4.2.5)(vue@3.3.9) - transitivePeerDependencies: - - '@testing-library/vue' - - '@vue/server-renderer' - - happy-dom - - jsdom - - rollup - - supports-color - - vue - - vue-router - dev: false - /nuxt@3.8.2(eslint@8.49.0)(idb-keyval@6.2.1)(rollup@2.79.1)(typescript@5.1.6)(vite@4.5.0)(vue-tsc@1.8.8): resolution: {integrity: sha512-HUAyifmqTs2zcQBGvcby3KNs2pBAk+l7ZbLjD1oCNqQQ+wBuZ1qgLC4Ebu++y4g3o3Y8WAWSvpafbKRLQZziPw==} engines: {node: ^14.18.0 || >=16.10.0} @@ -11615,7 +11610,7 @@ packages: hasBin: true dev: true - /pinceau@0.18.9(postcss@8.4.31): + /pinceau@0.18.9(postcss@8.4.32): resolution: {integrity: sha512-GJ+l8a5Y+7PP/diwuajJhd2QONTIFkk2YXjrVTh7QKC3sMQEphpLH6ZJfXSeeSonQ0/BnhrrMi9a5e14mmqXug==} dependencies: '@unocss/reset': 0.50.8 @@ -11630,9 +11625,9 @@ packages: ohash: 1.1.3 paneer: 0.1.0 pathe: 1.1.1 - postcss-custom-properties: 13.1.4(postcss@8.4.31) - postcss-dark-theme-class: 0.7.3(postcss@8.4.31) - postcss-nested: 6.0.1(postcss@8.4.31) + postcss-custom-properties: 13.1.4(postcss@8.4.32) + postcss-dark-theme-class: 0.7.3(postcss@8.4.32) + postcss-nested: 6.0.1(postcss@8.4.32) recast: 0.22.0 scule: 1.1.0 style-dictionary-esm: 1.3.7 @@ -11715,7 +11710,7 @@ packages: postcss: 8.4.31 postcss-value-parser: 4.2.0 - /postcss-custom-properties@13.1.4(postcss@8.4.31): + /postcss-custom-properties@13.1.4(postcss@8.4.32): resolution: {integrity: sha512-iSAdaZrM3KMec8cOSzeTUNXPYDlhqsMJHpt62yrjwG6nAnMtRHPk5JdMzGosBJtqEahDolvD5LNbcq+EZ78o5g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -11724,17 +11719,17 @@ packages: '@csstools/cascade-layer-name-parser': 1.0.3(@csstools/css-parser-algorithms@2.3.0)(@csstools/css-tokenizer@2.1.1) '@csstools/css-parser-algorithms': 2.3.0(@csstools/css-tokenizer@2.1.1) '@csstools/css-tokenizer': 2.1.1 - postcss: 8.4.31 + postcss: 8.4.32 postcss-value-parser: 4.2.0 dev: true - /postcss-dark-theme-class@0.7.3(postcss@8.4.31): + /postcss-dark-theme-class@0.7.3(postcss@8.4.32): resolution: {integrity: sha512-M9vtfh8ORzQsVdT9BWb+xpEDAzC7nHBn7wVc988/JkEVLPupKcUnV0jw7RZ8sSj0ovpqN1POf6PLdt19JCHfhQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.31 + postcss: 8.4.32 dev: true /postcss-discard-comments@6.0.0(postcss@8.4.31): @@ -11831,13 +11826,13 @@ packages: postcss: 8.4.31 postcss-selector-parser: 6.0.13 - /postcss-nested@6.0.1(postcss@8.4.31): + /postcss-nested@6.0.1(postcss@8.4.32): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.31 + postcss: 8.4.32 postcss-selector-parser: 6.0.13 /postcss-normalize-charset@6.0.0(postcss@8.4.31): @@ -12033,15 +12028,6 @@ packages: resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} engines: {node: ^14.13.1 || >=16.0.0} - /pretty-format@29.5.0: - resolution: {integrity: sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.4.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - dev: false - /pretty-format@29.7.0: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -12231,7 +12217,6 @@ packages: /proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - dev: false /protocols@2.0.1: resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} @@ -13188,6 +13173,10 @@ packages: /std-env@3.5.0: resolution: {integrity: sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==} + /std-env@3.6.0: + resolution: {integrity: sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==} + dev: false + /streamx@2.15.0: resolution: {integrity: sha512-HcxY6ncGjjklGs1xsP1aR71INYcsXFJet5CU1CHqihQ2J5nOsbd4OjgjHO42w/4QNv9gZb3BueV+Vxok5pLEXg==} dependencies: @@ -14023,7 +14012,7 @@ packages: '@unlazy/core': 0.9.3 dev: true - /unocss@0.53.4(@unocss/webpack@0.53.4)(postcss@8.4.31)(rollup@2.79.1)(vite@4.5.0): + /unocss@0.53.4(@unocss/webpack@0.53.4)(postcss@8.4.32)(rollup@2.79.1)(vite@4.5.0): resolution: {integrity: sha512-UUEi+oh1rngHHP0DVESRS+ScoKMRF8q6GIQrElHb67gqG7GDEGpy3oocIA/6+1t71I4FFvnnxLMGIo9qAD0TEw==} engines: {node: '>=14'} peerDependencies: @@ -14036,7 +14025,7 @@ packages: '@unocss/cli': 0.53.4(rollup@2.79.1) '@unocss/core': 0.53.4 '@unocss/extractor-arbitrary-variants': 0.53.4 - '@unocss/postcss': 0.53.4(postcss@8.4.31) + '@unocss/postcss': 0.53.4(postcss@8.4.32) '@unocss/preset-attributify': 0.53.4 '@unocss/preset-icons': 0.53.4 '@unocss/preset-mini': 0.53.4 @@ -14624,42 +14613,25 @@ packages: optionalDependencies: fsevents: 2.3.3 - /vitest-environment-nuxt@0.11.0(happy-dom@10.5.2)(rollup@2.79.1)(vitest@1.0.4)(vue-router@4.2.5)(vue@3.3.9): - resolution: {integrity: sha512-+ZvmtdijCgL+18fDV9NeHB17KGpzqAokHc2iXzaRa7cb7eXO1HwaHJFGIavHG3ybr5gJf8MBArraSdVPAjYJlw==} - peerDependencies: - '@testing-library/vue': 7.0.0 - happy-dom: ^9.10.9 || ^10.0.0 || ^11.0.0 || ^12.0.0 - jsdom: ^22.0.0 - vitest: ^0.24.5 || ^0.26.0 || ^0.27.0 || ^0.28.0 || ^0.29.0 || ^0.30.0 || ^0.33.0 - vue: ^3.2.45 - vue-router: ^4.0.0 - peerDependenciesMeta: - '@testing-library/vue': - optional: true - happy-dom: - optional: true - jsdom: - optional: true + /vitest-environment-nuxt@1.0.0-alpha.1(@vue/test-utils@2.4.3)(h3@1.9.0)(happy-dom@10.5.2)(rollup@2.79.1)(vite@4.5.0)(vitest@1.0.4)(vue-router@4.2.5)(vue@3.3.9): + resolution: {integrity: sha512-0/gfNcZNNqFRjocmGZN/R4PlZ0p4MlmmsTkplKf9FwgBadGxN4eYtxOqk1ubhz+qf8ZvPRER3toydmOASovMcg==} dependencies: - '@nuxt/kit': 3.8.2(rollup@2.79.1) - '@vue/test-utils': 2.4.1(vue@3.3.9) - defu: 6.1.3 - estree-walker: 3.0.3 - h3: 1.9.0 - happy-dom: 10.5.2 - local-pkg: 0.4.3 - magic-string: 0.30.5 - ofetch: 1.3.3 - radix3: 1.1.0 - ufo: 1.3.2 - unenv: 1.8.0 - vitest: 1.0.4(happy-dom@10.5.2) - vue: 3.3.9(typescript@5.1.6) - vue-router: 4.2.5(vue@3.3.9) + '@nuxt/test-utils': 3.9.0-alpha.1(@vue/test-utils@2.4.3)(h3@1.9.0)(happy-dom@10.5.2)(rollup@2.79.1)(vite@4.5.0)(vitest@1.0.4)(vue-router@4.2.5)(vue@3.3.9) transitivePeerDependencies: - - '@vue/server-renderer' + - '@jest/globals' + - '@testing-library/vue' + - '@vitest/ui' + - '@vue/test-utils' + - h3 + - happy-dom + - jsdom + - playwright-core - rollup - supports-color + - vite + - vitest + - vue + - vue-router dev: false /vitest@1.0.4(happy-dom@10.5.2): @@ -14791,14 +14763,13 @@ packages: vue-component-type-helpers: 1.8.3 dev: true + /vue-component-type-helpers@1.8.25: + resolution: {integrity: sha512-NCA6sekiJIMnMs4DdORxATXD+/NRkQpS32UC+I1KQJUasx+Z7MZUb3Y+MsKsFmX+PgyTYSteb73JW77AibaCCw==} + /vue-component-type-helpers@1.8.3: resolution: {integrity: sha512-+/nC0Ra571Jqe7QuZObo1WJbHcdHo8d1rcF8EDSuFAl+dQGlMB6zbM4dsrofJY1wIeky/rGkFE6pCmtHaEf/zw==} dev: true - /vue-component-type-helpers@1.8.4: - resolution: {integrity: sha512-6bnLkn8O0JJyiFSIF0EfCogzeqNXpnjJ0vW/SZzNHfe6sPx30lTtTXlE5TFs2qhJlAtDFybStVNpL73cPe3OMQ==} - dev: false - /vue-demi@0.13.11(vue@3.3.9): resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} engines: {node: '>=12'} diff --git a/tests/nuxt/__snapshots__/content-rich.test.ts.snap b/tests/nuxt/__snapshots__/content-rich.test.ts.snap index 83902a2f..3e4e5b2e 100644 --- a/tests/nuxt/__snapshots__/content-rich.test.ts.snap +++ b/tests/nuxt/__snapshots__/content-rich.test.ts.snap @@ -1,10 +1,10 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`content-rich > block with backticks 1`] = `"
[(\`number string) (\`tag string)]"`; +exports[`content-rich > block with backticks 1`] = `"
[(\`number string) (\`tag string)]"`; exports[`content-rich > block with injected html, with a known language 1`] = ` "
-
+
<a href="javascript:alert(1)">click me</a>
@@ -13,7 +13,7 @@ exports[`content-rich > block with injected html, with a known language 1`] = `
exports[`content-rich > block with injected html, with an unknown language 1`] = `
"
-
+
<a href="javascript:alert(1)">click me</a>
@@ -30,7 +30,7 @@ exports[`content-rich > block with injected html, without language 1`] = `
`;
exports[`content-rich > code frame 1`] = `
-"Testing code block
import { useMouse, usePreferredDark } from '@vueuse/core' +"Testing code block
import { useMouse, usePreferredDark } from '@vueuse/core' // tracks mouse position const { x, y } = useMouse() // is the user prefers dark theme @@ -39,34 +39,34 @@ const isDark = usePreferredDark()" exports[`content-rich > code frame 2 1`] = ` "const a = hello+const a = hello" `; -exports[`content-rich > code frame empty 1`] = `"
"`; +exports[`content-rich > code frame empty 1`] = `"
"`; -exports[`content-rich > code frame no lang 1`] = `"hello world
no lang"`; +exports[`content-rich > code frame no lang 1`] = `"hello world
no lang"`; exports[`content-rich > custom emoji 1`] = ` "Daniel Roe - " `; @@ -75,11 +75,11 @@ exports[`content-rich > empty 1`] = `""`; exports[`content-rich > group mention > html 1`] = ` " @@ -106,7 +106,7 @@ exports[`content-rich > handles formatting from servers 1`] = ` exports[`content-rich > handles html within code blocks 1`] = ` "HTML block code:
-+<span class="icon--noto icon--noto--1st-place-medal"></span> <span class="icon--noto icon--noto--2nd-place-medal-medal"></span>@@ -128,26 +128,26 @@ exports[`content-rich > link + mention 1`] = ` "Happy weβre now using - (migrated from chai+mocha) https://github.com/ayoayco/astro-reactive-library/pull/203https://github.com/ayoayco/astro-reactive-library/pull/203
" diff --git a/tests/nuxt/__snapshots__/html-parse.test.ts.snap b/tests/nuxt/__snapshots__/html-parse.test.ts.snap index 953d9971..8f00bdfd 100644 --- a/tests/nuxt/__snapshots__/html-parse.test.ts.snap +++ b/tests/nuxt/__snapshots__/html-parse.test.ts.snap @@ -1,7 +1,7 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`html-parse > code frame > html 1`] = ` -"Testing code block
import { useMouse, usePreferredDark } from '@vueuse/core' +"
Testing code block
import { useMouse, usePreferredDark } from '@vueuse/core' // tracks mouse position const { x, y } = useMouse() // is the user prefers dark theme @@ -23,17 +23,17 @@ const isDark = usePreferredDark() exports[`html-parse > code frame 2 > html 1`] = ` "
- @antfu Testing
-+const a = hello
" `; @@ -48,15 +48,15 @@ const a = hello exports[`html-parse > custom emoji > html 1`] = ` "Daniel Roe - " `; @@ -65,23 +65,23 @@ exports[`html-parse > custom emoji > text 1`] = `"Daniel Roe :nuxt:"`; exports[`html-parse > emojis > html 1`] = ` " " `; @@ -99,7 +99,7 @@ exports[`html-parse > html entities > html 1`] = ` exports[`html-parse > html entities > text 1`] = `"Helloconst a = hello
."`; -exports[`html-parse > inline markdown > html 1`] = `" text
code
bold italicdel"`; +exports[`html-parse > inline markdown > html 1`] = `"code block
text
code
bold italicdel"`; exports[`html-parse > inline markdown > text 1`] = ` "text \`code\` **bold** *italic* ~~del~~ @@ -114,28 +114,28 @@ exports[`html-parse > link + mention > html 1`] = ` "code block
Happy weβre now using - @vitest (migrated from chai+mocha) https://github.com/ayoayco/astro-reactive-library/pull/203https://github.com/ayoayco/astro-reactive-library/pull/203
" diff --git a/tests/nuxt/content-rich.test.ts b/tests/nuxt/content-rich.test.ts index fc1d2afd..5ffef951 100644 --- a/tests/nuxt/content-rich.test.ts +++ b/tests/nuxt/content-rich.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it, vi } from 'vitest' import { renderToString } from 'vue/server-renderer' import { format } from 'prettier' import type { mastodon } from 'masto' -import { mockComponent } from 'nuxt-vitest/utils' +import { mockComponent } from '@nuxt/test-utils/runtime' import { contentToVNode } from '~/composables/content-render' import type { ContentParseOptions } from '~/composables/content-parse' @@ -91,47 +91,47 @@ describe('content-rich', () => { }) expect(formatted).toMatchInlineSnapshot(` "- - content - - - - content @@ -158,11 +158,11 @@ describe('content-rich', () => { }) expect(formatted).toMatchInlineSnapshot(` "
- content @@ -179,25 +179,25 @@ describe('content-rich', () => { expect(formatted).toMatchInlineSnapshot(` "
diff --git a/vitest.config.mjs b/vitest.config.ts similarity index 58% rename from vitest.config.mjs rename to vitest.config.ts index 78f4876c..a8c8cffa 100644 --- a/vitest.config.mjs +++ b/vitest.config.ts @@ -1,4 +1,4 @@ -import { defineVitestConfig } from 'nuxt-vitest' +import { defineVitestConfig } from '@nuxt/test-utils/config' export default defineVitestConfig({ define: {