MCPcopy
hub / github.com/jestjs/jest / generateEmptyCoverage

Function generateEmptyCoverage

packages/jest-reporters/src/generateEmptyCoverage.ts:27–94  ·  view source on GitHub ↗
(
  source: string,
  filename: string,
  globalConfig: Config.GlobalConfig,
  config: Config.ProjectConfig,
  changedFiles?: Set<string>,
  sourcesRelatedToTestsInChangedFiles?: Set<string>,
)

Source from the content-addressed store, hash-verified

25 };
26
27export default async function generateEmptyCoverage(
28 source: string,
29 filename: string,
30 globalConfig: Config.GlobalConfig,
31 config: Config.ProjectConfig,
32 changedFiles?: Set<string>,
33 sourcesRelatedToTestsInChangedFiles?: Set<string>,
34): Promise<CoverageWorkerResult | null> {
35 const coverageOptions = {
36 changedFiles,
37 collectCoverage: globalConfig.collectCoverage,
38 collectCoverageFrom: globalConfig.collectCoverageFrom,
39 coverageProvider: globalConfig.coverageProvider,
40 globalRootDir: globalConfig.rootDir,
41 sourcesRelatedToTestsInChangedFiles,
42 };
43 let coverageWorkerResult: CoverageWorkerResult | null = null;
44 if (shouldInstrument(filename, coverageOptions, config)) {
45 if (coverageOptions.coverageProvider === 'v8') {
46 const stat = fs.statSync(filename);
47 return {
48 kind: 'V8Coverage',
49 result: {
50 functions: [
51 {
52 functionName: '(empty-report)',
53 isBlockCoverage: true,
54 ranges: [
55 {
56 count: 0,
57 endOffset: stat.size,
58 startOffset: 0,
59 },
60 ],
61 },
62 ],
63 scriptId: '0',
64 url: filename,
65 },
66 };
67 }
68
69 const scriptTransformer = await createScriptTransformer(config);
70
71 // Transform file with instrumentation to make sure initial coverage data is well mapped to original code.
72 const {code} = await scriptTransformer.transformSourceAsync(
73 filename,
74 source,
75 {
76 instrument: true,
77 supportsDynamicImport: true,
78 supportsExportNamespaceFrom: true,
79 supportsStaticESM: true,
80 supportsTopLevelAwait: true,
81 },
82 );
83 // TODO: consider passing AST
84 const extracted = readInitialCoverage(code);

Callers 2

workerFunction · 0.85

Calls 3

shouldInstrumentFunction · 0.90
createScriptTransformerFunction · 0.90
transformSourceAsyncMethod · 0.80

Tested by

no test coverage detected