esmock
esmock must be used with node's experimental --loader
{
"name": "give-esmock-a-star",
"type": "module",
"scripts": {
"test-ava": "ava --node-arguments=\"--loader=esmock\"",
"test-mocha": "mocha --loader=esmock"
}
}
Use it await esmock('./to/module.js', childmocks, globalmocks)
import test from 'ava';
import esmock from 'esmock';
test('should mock modules and local files at same time', async t => {
const main = await esmock('./local/main.js', {
stringifierpackage : o => JSON.stringify(o),
'./local/util.js' : {
exportedFunction : () => 'foobar'
}
});
t.is(main(), JSON.stringify({ test : 'foobar' }));
});
test('should do global instance mocks —third parameter', async t => {
const { getFile } = await esmock('./local/main.js', {}, {
fs : {
readFileSync : () => {
return 'anywhere the instance uses fs readFileSync';
}
}
});
t.is(getFile(), 'anywhere the instance uses fs readFileSync');
});
changelog
- 0.3.6 Apr.19.2021
- throw error if mocked module path is not found
- 0.3.5 Apr.18.2021
- added gitlab actions npm test: node 12.x, 14.x and 15.x
- 0.3.3 Apr.13.2021
- added keywords to package.json, use github action to npm publish
- 0.3.1 Apr.12.2021
- 0.3.0 Apr.10.2021
- adds support for mocking modules 'globally' for the instance
- 0.2.0 Apr.10.2021
- adds support for mocking core modules such as fs and path
- 0.1.0 Apr.10.2021
- adds support for native esm modules