Awesome
🛠 c8-reproduce
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:
v8
produces not full coverage information;