๐ c8-reproduce
January 30, 2022 ยท View on GitHub
c8 Lies in it's report when node.js loader and mocks used. There is not uncovered lines actually.

Why do I need mocks?
When I have next code:
import {readFileSync} from 'fs'; // don't want actual reading
import {execSync} from 'child_process'; // don't need actual execution
// just want test the function
export default async (name, program) => {
if (name)
return readFileSync(name, 'utf8');
if (program)
return execSync(program);
return 'nothing';
};
I need to mock readFile and execSync somehow. If I don't use transpiler-based solutions (like tap, jest, ava etc), I have only loaders way of doing thing. I'm using ๐ผSupertape simplest test runner, so I need a way to mock EcmaScript Modules without transpiling (it eats a lot of time). So I use some transformation, but it's very simple and works with help of loaders which are very fast.
ISSUES
- โณ c8: removes all query parameters (
?mock-import-count=x, used bymock-import); - โณ nodejs:
v8produces not full coverage information;