-
-
Notifications
You must be signed in to change notification settings - Fork 6.6k
Closed
Labels
Description
Version
29.4.0
Steps to reproduce
Simple test to reproduce:
test('it should reset properly', () => {
const obj = {
foo: () => 42,
};
const fooSpy = jest.spyOn(obj, 'foo');
console.log(obj.foo());
expect(obj.foo).toHaveBeenCalled();
jest.resetAllMocks();
console.log(obj.foo());
expect(obj.foo).toHaveBeenCalled();
});
Expected behavior
The test should pass
Actual behavior
The test fails with Matcher error: received value must be a mock or spy function
.
Additional context
It seems that resetAllMocks
is acting like mockRestore
instead of mockReset
.
If I replace jest.resetAllMocks()
with fooSpy.mockReset()
, the test passes as expected, whereas if I replace it with fooSpy.mockRestore()
it fails with that error again.
Environment
System:
OS: Linux 5.15 KDE neon 5.26 5.26
CPU: (16) x64 AMD Ryzen 7 PRO 6850U with Radeon Graphics
Binaries:
Node: 18.12.0 - ~/.nvm/versions/node/v18.12.0/bin/node
npm: 8.19.2 - ~/.nvm/versions/node/v18.12.0/bin/npm
npmPackages:
jest: ^29.4.0 => 29.4.0
kmarcisz, me4502, bmuenzenmeyer, 10hendersonm, munepom and 13 more