Skip to content

Commit c575d8d

Browse files
committed
Replace one-double-zero with one-double-zero-core
one-double-zero-core embarks its own lightweight parser, instead of depending on the gigantic TypeScript package.
1 parent cf49e94 commit c575d8d

File tree

4 files changed

+75
-3
lines changed

4 files changed

+75
-3
lines changed

packages/jest-reporters/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
"jest-message-util": "workspace:*",
3535
"jest-util": "workspace:*",
3636
"jest-worker": "workspace:*",
37-
"one-double-zero": "1.0.0-beta.14",
37+
"one-double-zero-core": "^1.0.0-alpha.0",
3838
"slash": "^3.0.0",
3939
"string-length": "^4.0.1",
4040
"strip-ansi": "^6.0.0",

packages/jest-reporters/src/CoverageReporter.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import {
2020
type ProcessCoverage,
2121
type SourceMap,
2222
createOneDoubleZero,
23-
} from 'one-double-zero';
23+
} from 'one-double-zero-core';
2424
import v8toIstanbul = require('v8-to-istanbul');
2525
import type {
2626
AggregatedResult,

packages/jest-reporters/src/__tests__/CoverageReporter.test.js

+61
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ beforeEach(() => {
4343
},
4444
'non_covered_file.js': '',
4545
'relative_path_file.js': '',
46+
'statement.js': 'const foo = 5;',
4647
};
4748
fileTree[`${process.cwd()}/path-test`] = {
4849
'100pc_coverage_file.js': '',
@@ -448,4 +449,64 @@ describe('onRunComplete', () => {
448449
expect(testReporter.getLastError()).toBeUndefined();
449450
});
450451
});
452+
453+
test('getLastError() returns an error when threshold is not met for global (odz)', () => {
454+
const testReporter = new CoverageReporter({
455+
collectCoverage: true,
456+
coverageProvider: 'odz',
457+
coverageThreshold: {
458+
global: {
459+
statements: 100,
460+
},
461+
},
462+
});
463+
/**
464+
* @type {Array<V8CoverageResult>}
465+
*/
466+
const v8CoverageResults = [
467+
[
468+
{
469+
codeTransformResult: {
470+
code: 'const foo = 5;',
471+
originalCode: 'const foo = 5;',
472+
sourceMapPath: '',
473+
wrapperLength: 0,
474+
},
475+
result: {
476+
functions: [
477+
{
478+
functionName: '',
479+
isBlockCoverage: true,
480+
ranges: [
481+
{
482+
count: 0,
483+
endOffset: 14,
484+
startOffset: 0,
485+
},
486+
],
487+
},
488+
],
489+
url: 'path-test-files/statement.js',
490+
},
491+
},
492+
],
493+
];
494+
495+
testReporter._v8CoverageResults = v8CoverageResults;
496+
testReporter.log = jest.fn();
497+
498+
const testContext = {
499+
config: {
500+
rootDir: '.',
501+
},
502+
hasteFS: {
503+
matchFilesWithGlob: () => ['path-test-files/statement.js'],
504+
},
505+
};
506+
return testReporter
507+
.onRunComplete(new Set([testContext]), {}, mockAggResults)
508+
.then(() => {
509+
expect(testReporter.getLastError().message.split('\n')).toHaveLength(1);
510+
});
511+
});
451512
});

yarn.lock

+12-1
Original file line numberDiff line numberDiff line change
@@ -3862,6 +3862,7 @@ __metadata:
38623862
jest-worker: "workspace:*"
38633863
mock-fs: ^5.1.2
38643864
node-notifier: ^10.0.0
3865+
one-double-zero-core: ^1.0.0-alpha.0
38653866
slash: ^3.0.0
38663867
string-length: ^4.0.1
38673868
strip-ansi: ^6.0.0
@@ -13389,7 +13390,7 @@ __metadata:
1338913390
languageName: node
1339013391
linkType: hard
1339113392

13392-
"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0":
13393+
"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0, istanbul-lib-coverage@npm:^3.2.2":
1339313394
version: 3.2.2
1339413395
resolution: "istanbul-lib-coverage@npm:3.2.2"
1339513396
checksum: 2367407a8d13982d8f7a859a35e7f8dd5d8f75aae4bb5484ede3a9ea1b426dc245aff28b976a2af48ee759fdd9be374ce2bd2669b644f31e76c5f46a2e29a831
@@ -17007,6 +17008,16 @@ __metadata:
1700717008
languageName: node
1700817009
linkType: hard
1700917010

17011+
"one-double-zero-core@npm:^1.0.0-alpha.0":
17012+
version: 1.0.0-alpha.0
17013+
resolution: "one-double-zero-core@npm:1.0.0-alpha.0"
17014+
dependencies:
17015+
"@jridgewell/trace-mapping": ^0.3.25
17016+
istanbul-lib-coverage: ^3.2.2
17017+
checksum: 0831ba26ede8b95a697bd09f79b270a2eede2d2317830c5c11a5b714c8211081f5f30a7e3f863e4bb4de6755e4b47305828865f8e7a0fde0e18a4a87b74f9576
17018+
languageName: node
17019+
linkType: hard
17020+
1701017021
"onetime@npm:^5.1.2":
1701117022
version: 5.1.2
1701217023
resolution: "onetime@npm:5.1.2"

0 commit comments

Comments
 (0)