diff --git a/packages/coverage-c8/src/provider.ts b/packages/coverage-c8/src/provider.ts index 265b1746978d..f1c0c1e5e9a9 100644 --- a/packages/coverage-c8/src/provider.ts +++ b/packages/coverage-c8/src/provider.ts @@ -58,7 +58,7 @@ export class C8CoverageProvider implements CoverageProvider { if (!map) return - const url = _url.pathToFileURL(file.replace(/\?(.*)/, '')).href + const url = _url.pathToFileURL(file.split('?')[0]).href let code: string | undefined try { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3f8e9a3e061b..491e0d1699fa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -193,7 +193,7 @@ importers: lit: 2.3.1 devDependencies: '@vitest/ui': link:../../packages/ui - jsdom: 20.0.1 + jsdom: 20.0.2 vite: 3.2.1 vitest: link:../../packages/vitest @@ -238,10 +238,10 @@ importers: react-dom: 18.0.0_react@18.0.0 devDependencies: '@testing-library/react': 13.3.0_zpnidt7m3osuk7shl3s4oenomq - '@types/node': 18.11.7 + '@types/node': 18.11.8 '@types/react': 18.0.24 '@vitejs/plugin-react': 2.2.0 - jsdom: 20.0.1 + jsdom: 20.0.2 typescript: 4.6.3 vitest: link:../../packages/vitest @@ -291,7 +291,7 @@ importers: '@vitejs/plugin-react': 2.2.0_vite@3.2.1 '@vitest/ui': link:../../packages/ui happy-dom: 7.6.6 - jsdom: 20.0.1 + jsdom: 20.0.2 react-test-renderer: 17.0.2_react@17.0.2 vite: 3.2.1 vitest: link:../../packages/vitest @@ -362,7 +362,7 @@ importers: '@testing-library/user-event': 14.4.3 '@vitest/ui': link:../../packages/ui date-fns: 2.29.2 - jsdom: 20.0.1 + jsdom: 20.0.2 vite: 3.2.1 vitest: link:../../packages/vitest @@ -414,7 +414,7 @@ importers: '@vitejs/plugin-react': 1.3.2 '@vitest/ui': link:../../packages/ui babel-loader: 8.2.5_@babel+core@7.18.13 - jsdom: 20.0.1 + jsdom: 20.0.2 msw: 0.39.2 msw-storybook-addon: 1.6.3_ssm5z5kjlefxgbmyszjdm3lzke typescript: 4.8.2 @@ -448,7 +448,7 @@ importers: '@types/react-dom': 17.0.17 '@vitejs/plugin-react': 1.3.2 '@vitest/ui': link:../../packages/ui - jsdom: 20.0.1 + jsdom: 20.0.2 vite: 3.2.1 vitest: link:../../packages/vitest @@ -480,7 +480,7 @@ importers: '@vitejs/plugin-react': 1.3.2 '@vitest/ui': link:../../packages/ui cross-fetch: 3.1.5 - jsdom: 20.0.1 + jsdom: 20.0.2 msw: 0.39.2 vite: 3.2.1 vitest: link:../../packages/vitest @@ -496,8 +496,8 @@ importers: vue: latest devDependencies: '@vitejs/plugin-vue': 3.2.0_vite@3.2.1+vue@3.2.41 - '@vue/test-utils': 2.2.0_vue@3.2.41 - jsdom: 20.0.1 + '@vue/test-utils': 2.2.1_vue@3.2.41 + jsdom: 20.0.2 vite: 3.2.1 vite-plugin-ruby: 3.1.2_vite@3.2.1 vitest: link:../../packages/vitest @@ -513,7 +513,7 @@ importers: dependencies: solid-js: 1.5.2 devDependencies: - jsdom: 20.0.1 + jsdom: 20.0.2 solid-testing-library: 0.3.0_solid-js@1.5.2 vite-plugin-solid: 2.3.0_solid-js@1.5.2 vitest: link:../../packages/vitest @@ -531,7 +531,7 @@ importers: '@sveltejs/vite-plugin-svelte': 1.0.3_svelte@3.49.0+vite@3.2.1 '@testing-library/svelte': 3.2.1_svelte@3.49.0 '@vitest/ui': link:../../packages/ui - jsdom: 20.0.1 + jsdom: 20.0.2 svelte: 3.49.0 vite: 3.2.1 vitest: link:../../packages/vitest @@ -551,7 +551,7 @@ importers: devDependencies: '@vitejs/plugin-vue': 3.2.0_vite@3.2.1+vue@3.2.41 '@vue/test-utils': 2.0.2_vue@3.2.41 - jsdom: 20.0.1 + jsdom: 20.0.2 unplugin-auto-import: 0.11.2_vite@3.2.1 unplugin-vue-components: 0.22.4_vite@3.2.1+vue@3.2.41 vite: 3.2.1 @@ -570,7 +570,7 @@ importers: devDependencies: '@vitejs/plugin-vue': 3.2.0_vite@3.2.1+vue@3.2.41 '@vue/test-utils': 2.0.0_vue@3.2.41 - jsdom: 20.0.1 + jsdom: 20.0.2 vite: 3.2.1 vitest: link:../../packages/vitest @@ -586,8 +586,8 @@ importers: devDependencies: '@vitejs/plugin-vue': 3.2.0_vite@3.2.1+vue@3.2.41 '@vitejs/plugin-vue-jsx': 2.1.0_vite@3.2.1+vue@3.2.41 - '@vue/test-utils': 2.2.0_vue@3.2.41 - jsdom: 20.0.1 + '@vue/test-utils': 2.2.1_vue@3.2.41 + jsdom: 20.0.2 vite: 3.2.1 vitest: link:../../packages/vitest vue: 3.2.41 @@ -606,7 +606,7 @@ importers: devDependencies: '@vitejs/plugin-vue2': 1.1.2_vite@3.2.1+vue@2.7.10 '@vue/test-utils': 1.3.0_42puyn3dcxirnpdjnosl7pbb6a - jsdom: 20.0.1 + jsdom: 20.0.2 vite: 3.2.1 vitest: link:../../packages/vitest vue-template-compiler: 2.7.10 @@ -958,7 +958,7 @@ importers: vue: latest devDependencies: '@vitejs/plugin-vue': 3.2.0_vite@3.2.1+vue@3.2.41 - '@vue/test-utils': 2.2.0_vue@3.2.41 + '@vue/test-utils': 2.2.1_vue@3.2.41 execa: 6.1.0 happy-dom: 7.6.6 vite: 3.2.1 @@ -4494,7 +4494,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.11.7 + '@types/node': 18.11.8 '@types/yargs': 15.0.14 chalk: 4.1.2 dev: true @@ -4506,7 +4506,7 @@ packages: '@jest/schemas': 29.0.0 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.11.7 + '@types/node': 18.11.8 '@types/yargs': 17.0.12 chalk: 4.1.2 dev: true @@ -5019,7 +5019,7 @@ packages: engines: {node: '>=14'} hasBin: true dependencies: - '@types/node': 18.11.7 + '@types/node': 18.11.8 playwright-core: 1.25.1 dev: true @@ -6837,7 +6837,7 @@ packages: /@types/cheerio/0.22.31: resolution: {integrity: sha512-Kt7Cdjjdi2XWSfrZ53v4Of0wG3ZcmaegFXjMmz9tfNrZSkzzo36G0AL1YqSdcIA78Etjt6E609pt5h1xnQkPUw==} dependencies: - '@types/node': 18.11.7 + '@types/node': 18.11.8 dev: true /@types/codemirror/5.60.5: @@ -6849,7 +6849,7 @@ packages: /@types/concat-stream/1.6.1: resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} dependencies: - '@types/node': 18.11.7 + '@types/node': 18.11.8 dev: true /@types/cookie/0.4.1: @@ -6909,33 +6909,33 @@ packages: /@types/form-data/0.0.33: resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} dependencies: - '@types/node': 18.11.7 + '@types/node': 18.11.8 dev: true /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 18.11.7 + '@types/node': 18.11.8 dev: true /@types/glob/7.2.0: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.1 - '@types/node': 18.11.7 + '@types/node': 18.11.8 dev: true /@types/glob/8.0.0: resolution: {integrity: sha512-l6NQsDDyQUVeoTynNpC9uRvCUint/gSUXQA2euwmTuWGvPY5LSDUu6tkCtJB2SvGQlJQzLaKqcGZP4//7EDveA==} dependencies: '@types/minimatch': 5.1.1 - '@types/node': 18.11.7 + '@types/node': 18.11.8 dev: true /@types/graceful-fs/4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 18.11.7 + '@types/node': 18.11.8 dev: true /@types/hast/2.3.4: @@ -6996,7 +6996,7 @@ packages: /@types/jsdom/20.0.0: resolution: {integrity: sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==} dependencies: - '@types/node': 18.11.7 + '@types/node': 18.11.8 '@types/tough-cookie': 4.0.2 parse5: 7.0.0 dev: true @@ -7040,7 +7040,7 @@ packages: /@types/node-fetch/2.6.2: resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} dependencies: - '@types/node': 18.11.7 + '@types/node': 18.11.8 form-data: 3.0.1 dev: true @@ -7060,8 +7060,8 @@ packages: resolution: {integrity: sha512-3JRwhbjI+cHLAkUorhf8RnqUbFXajvzX4q6fMn5JwkgtuwfYtRQYI3u4V92vI6NJuTsbBQWWh3RZjFsuevyMGQ==} dev: true - /@types/node/18.11.7: - resolution: {integrity: sha512-LhFTglglr63mNXUSRYD8A+ZAIu5sFqNJ4Y2fPuY7UlrySJH87rRRlhtVmMHplmfk5WkoJGmDjE9oiTfyX94CpQ==} + /@types/node/18.11.8: + resolution: {integrity: sha512-uGwPWlE0Hj972KkHtCDVwZ8O39GmyjfMane1Z3GUBGGnkZ2USDq7SxLpVIiIHpweY9DS0QTDH0Nw7RNBsAAZ5A==} dev: true /@types/node/18.7.13: @@ -7098,7 +7098,7 @@ packages: /@types/prompts/2.4.1: resolution: {integrity: sha512-1Mqzhzi9W5KlooNE4o0JwSXGUDeQXKldbGn9NO4tpxwZbHXYd+WcKpCksG2lbhH7U9I9LigfsdVsP2QAY0lNPA==} dependencies: - '@types/node': 18.11.7 + '@types/node': 18.11.8 dev: true /@types/prop-types/15.7.5: @@ -7156,7 +7156,7 @@ packages: /@types/resolve/1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - '@types/node': 18.11.7 + '@types/node': 18.11.8 dev: true /@types/scheduler/0.16.2: @@ -7165,7 +7165,7 @@ packages: /@types/set-cookie-parser/2.4.2: resolution: {integrity: sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w==} dependencies: - '@types/node': 18.11.7 + '@types/node': 18.11.8 dev: true /@types/sinonjs__fake-timers/8.1.1: @@ -7235,7 +7235,7 @@ packages: /@types/webpack-sources/3.2.0: resolution: {integrity: sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==} dependencies: - '@types/node': 18.11.7 + '@types/node': 18.11.8 '@types/source-list-map': 0.1.2 source-map: 0.7.4 dev: true @@ -7243,7 +7243,7 @@ packages: /@types/webpack/4.41.32: resolution: {integrity: sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg==} dependencies: - '@types/node': 18.11.7 + '@types/node': 18.11.8 '@types/tapable': 1.0.8 '@types/uglify-js': 3.17.0 '@types/webpack-sources': 3.2.0 @@ -7254,7 +7254,7 @@ packages: /@types/ws/8.5.3: resolution: {integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==} dependencies: - '@types/node': 18.11.7 + '@types/node': 18.11.8 dev: true /@types/yargs-parser/21.0.0: @@ -7277,7 +7277,7 @@ packages: resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} requiresBuild: true dependencies: - '@types/node': 18.11.7 + '@types/node': 18.11.8 dev: true optional: true @@ -7959,8 +7959,8 @@ packages: vue: 3.2.41 dev: true - /@vue/test-utils/2.2.0_vue@3.2.41: - resolution: {integrity: sha512-EKp5/N7ieNZdoLTkD16j/irUjIEDN63QUIc41vLUMqGvSsTQN0QxbFiQqh5v49RPfS5vZH+DhjNUEkijCMOCSg==} + /@vue/test-utils/2.2.1_vue@3.2.41: + resolution: {integrity: sha512-AkLt24wnnxedJ3NX090JYiueog184QqlR5TVNZM+lggCrK8XjeuPr274okaLqDmiRgp4XVCaGa07KqKLGQbsMQ==} peerDependencies: vue: ^3.0.1 dependencies: @@ -14340,7 +14340,7 @@ packages: dependencies: '@jest/types': 26.6.2 '@types/graceful-fs': 4.1.5 - '@types/node': 18.11.7 + '@types/node': 18.11.8 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.10 @@ -14408,7 +14408,7 @@ packages: resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} engines: {node: '>= 10.14.2'} dependencies: - '@types/node': 18.11.7 + '@types/node': 18.11.8 graceful-fs: 4.2.10 dev: true @@ -14417,7 +14417,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 18.11.7 + '@types/node': 18.11.8 chalk: 4.1.2 graceful-fs: 4.2.10 is-ci: 2.0.0 @@ -14429,7 +14429,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.0.1 - '@types/node': 18.11.7 + '@types/node': 18.11.8 chalk: 4.1.2 ci-info: 3.3.2 graceful-fs: 4.2.10 @@ -14440,7 +14440,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.11.7 + '@types/node': 18.11.8 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -14449,7 +14449,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.11.7 + '@types/node': 18.11.8 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -14597,6 +14597,47 @@ packages: - utf-8-validate dev: true + /jsdom/20.0.2: + resolution: {integrity: sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.8.0 + acorn-globals: 7.0.1 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.4.1 + domexception: 4.0.0 + escodegen: 2.0.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.2 + parse5: 7.1.1 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.2 + w3c-xmlserializer: 3.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + ws: 8.10.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /jsesc/0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true diff --git a/test/coverage-test/coverage-test/c8/coverage-report/utils.test.js b/test/coverage-test/coverage-test/c8/coverage-report/utils.test.js index 307e37beb5ce..8a1d0708c1c1 100644 --- a/test/coverage-test/coverage-test/c8/coverage-report/utils.test.js +++ b/test/coverage-test/coverage-test/c8/coverage-report/utils.test.js @@ -1,5 +1,5 @@ import { expect, test } from 'vitest' -import { add } from '../../src/coverage-report/utils.js' +import { add } from '../../../src/coverage-report/utils.js' test('add', () => { expect(add(10, 15)).toBe(25) diff --git a/test/coverage-test/coverage-test/coverage.c8.test.ts b/test/coverage-test/coverage-test/coverage.c8.test.ts index 56ef53403062..6f57a6ec8de9 100644 --- a/test/coverage-test/coverage-test/coverage.c8.test.ts +++ b/test/coverage-test/coverage-test/coverage.c8.test.ts @@ -28,15 +28,15 @@ test('coverage c8', async () => { }) test('Should show coverage', async () => { - const stdout = await run('--config', 'vitest.config-c8-coverage.ts', '--coverage') + const stdout = await run('--config', 'vitest.config-c8-internal-coverage.ts', '--coverage') // For Vue SFC and vue + ts files - expect(stdout).contain('not-SFC.ts') - expect(stdout).not.contain('not-SFC.ts?vue') - expect(stdout).contain('not-SFC.vue') - expect(stdout).contain('SFC.vue') + expect(stdout).toContain('not-SFC.ts') + expect(stdout).not.toContain('not-SFC.ts?vue') + expect(stdout).toContain('not-SFC.vue') + expect(stdout).toContain('SFC.vue') // For ts and js files - expect(stdout).contain('math.ts') - expect(stdout).contain('utils.js') -}, 10000) + expect(stdout).toContain('math.ts') + expect(stdout).toContain('utils.js') +}, 30000) diff --git a/test/coverage-test/vitest.config-c8-coverage.ts b/test/coverage-test/vitest.config-c8-coverage.ts index 6ad25e1bceb7..ba221684a1af 100644 --- a/test/coverage-test/vitest.config-c8-coverage.ts +++ b/test/coverage-test/vitest.config-c8-coverage.ts @@ -6,7 +6,6 @@ export default defineConfig({ test: { include: [ './coverage-test/*.c8.test.ts', - './coverage-test/c8/**/*test.ts', ], coverage: { reporter: ['html', 'text', 'lcov'], diff --git a/test/coverage-test/vitest.config-c8-internal-coverage.ts b/test/coverage-test/vitest.config-c8-internal-coverage.ts new file mode 100644 index 000000000000..a4d28b78e4e7 --- /dev/null +++ b/test/coverage-test/vitest.config-c8-internal-coverage.ts @@ -0,0 +1,16 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +export default defineConfig({ + plugins: [vue()], + test: { + include: [ + './coverage-test/c8/**/*test.{ts,js}', + ], + coverage: { + reporter: ['html', 'text', 'lcov'], + include: ['src/**'], + extension: ['.ts', '.vue', '.js'], + }, + }, +})