Open
Description
🐛 Bug Report
jest.clearAllMocks(); does not remove mock implementation within afterEach
To Reproduce
I have a file called src/layouts/index.js
// ./src/layouts/index.js
const importAll = (r) =>
r.keys().reduce(
(acc, key) => ({
...acc,
[key.replace(/^\.\/(.*).json$/, '$1')]: r(key)
}),
{}
);
module.exports = importAll(require.context('./', true, /\.json$/));
It utilizes webpack require.context
so I am trying to mock with jest.mock.
I have another file... say file util.js
//./src/util.js
import layouts from '../layouts';
export const getLayout(name) {
return layouts[name];
}
in my test I'm trying to clear the mocks after each test
//./src/util.test.js
describe('my test suite', () => {
afterEach(() => {
jest.clearAllMocks();
})
test('test number one', () => {
jest.mock('./layouts', () => ({
layout1 : { a : 1 },
layout2 : { b: 2 },
}));
assert.equals(getLayout('layout1').a, 1);
assert.equals(getLayout('layout2').b, 2);
});
test('test number two', () => {
assert.equals(getLayout('layout1').a, 1);
assert.equals(getLayout('layout2').b, 2);
});
});
Expected behavior
I would expect for the first test to pass and the second test to fail... because the mock should have been cleared.
Link to repl or repo (highly encouraged)
Metadata
Metadata
Assignees
Labels
No labels