Skip to content

Commit

Permalink
test: failing test for vitest-dev#7379
Browse files Browse the repository at this point in the history
  • Loading branch information
AriPerkkio committed Feb 4, 2025
1 parent c82387d commit 954d2a1
Show file tree
Hide file tree
Showing 6 changed files with 142 additions and 0 deletions.
3 changes: 3 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions test/coverage-test/fixtures/src/worker-wrapper.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
export async function calcInBackground(arg: number) {
const worker = new Worker(new URL('./worker', import.meta.url), {
type: 'module',
});

const cleanup = () => {
worker.terminate();
};

let doResolve: ((arg: number) => void) | undefined = undefined;
const resultPromise = new Promise<number>((resolve) => {
doResolve = resolve;
});

worker.onmessage = (ev: MessageEvent<number>) => {
doResolve!(ev.data);
};

worker.postMessage(arg);

const result = await resultPromise;
cleanup();
return result;
}
29 changes: 29 additions & 0 deletions test/coverage-test/fixtures/src/worker.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
self.onmessage = (ev: MessageEvent<number>) => {
const start = performance.now();
let data = ev.data;
if (data === 5) {
uncovered()
throw new Error("uncovered");
}

if(data === 6) {
uncovered()
throw new Error("uncovered");

}

while (data > 9) {
data -= 1;
}

const result = doCalc(data);
postMessage(result);
};

function uncovered() {
return "This is uncovered"
}

function doCalc(arg: number) {
return arg * 2;
}
7 changes: 7 additions & 0 deletions test/coverage-test/fixtures/test/web-worker.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { expect, test } from 'vitest';
import { calcInBackground } from '../src/worker-wrapper';

test('worker', async () => {
const result = await calcInBackground(45);
expect(result).toBe(18);
});
1 change: 1 addition & 0 deletions test/coverage-test/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"@vitest/browser": "workspace:*",
"@vitest/coverage-istanbul": "workspace:*",
"@vitest/coverage-v8": "workspace:*",
"@vitest/web-worker": "workspace:*",
"@vue/test-utils": "latest",
"happy-dom": "latest",
"istanbul-lib-coverage": "^3.2.0",
Expand Down
78 changes: 78 additions & 0 deletions test/coverage-test/test/web-worker.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
import { expect } from 'vitest'
import { isV8Provider, readCoverageMap, runVitest, test } from '../utils'

test('web worker coverage is correct', async () => {
await runVitest({
setupFiles: ['@vitest/web-worker'],
include: ['fixtures/test/web-worker.ts'],
coverage: {
include: ['fixtures/src/worker.ts'],
reporter: 'json',
},
})

const coverageMap = await readCoverageMap()
const fileCoverage = coverageMap.fileCoverageFor('<process-cwd>/fixtures/src/worker.ts')
const summary = fileCoverage.toSummary()

if (isV8Provider()) {
expect(summary).toMatchInlineSnapshot(`
{
"branches": {
"covered": 3,
"pct": 60,
"skipped": 0,
"total": 5,
},
"functions": {
"covered": 2,
"pct": 66.66,
"skipped": 0,
"total": 3,
},
"lines": {
"covered": 14,
"pct": 60.86,
"skipped": 0,
"total": 23,
},
"statements": {
"covered": 14,
"pct": 60.86,
"skipped": 0,
"total": 23,
},
}
`)
}
else {
expect(summary).toMatchInlineSnapshot(`
{
"branches": {
"covered": 2,
"pct": 50,
"skipped": 0,
"total": 4,
},
"functions": {
"covered": 2,
"pct": 66.66,
"skipped": 0,
"total": 3,
},
"lines": {
"covered": 10,
"pct": 66.66,
"skipped": 0,
"total": 15,
},
"statements": {
"covered": 10,
"pct": 66.66,
"skipped": 0,
"total": 15,
},
}
`)
}
})

0 comments on commit 954d2a1

Please sign in to comment.