From a9dbdc4bbd3f56eb2c93cdfa7dcb9cba7d2d7e8c Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Mon, 5 Jun 2023 15:29:03 +0200 Subject: [PATCH 1/3] fix(mocker): don't restore mock to the original if module is mocked --- packages/vitest/src/runtime/mocker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vitest/src/runtime/mocker.ts b/packages/vitest/src/runtime/mocker.ts index 8b818bd8b399..d2d5910c1cbe 100644 --- a/packages/vitest/src/runtime/mocker.ts +++ b/packages/vitest/src/runtime/mocker.ts @@ -278,7 +278,7 @@ export class VitestMocker { const mock = spyOn(newContainer, property).mockImplementation(() => undefined) mock.mockRestore = () => { mock.mockReset() - mock.mockImplementation(undefined!) + mock.mockImplementation(() => undefined) return mock } // tinyspy retains length, but jest doesn't. From 88efbf2d16fd3ca71996b351ab84554e4ec12fed Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Mon, 5 Jun 2023 16:29:01 +0200 Subject: [PATCH 2/3] chore: fix test --- examples/mocks/test/automocking.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/mocks/test/automocking.spec.ts b/examples/mocks/test/automocking.spec.ts index 1eea3c48fa86..17a4b8929df0 100644 --- a/examples/mocks/test/automocking.spec.ts +++ b/examples/mocks/test/automocking.spec.ts @@ -56,8 +56,8 @@ test('automock properly restores mock', async () => { log.warn() }).not.toThrow() - expect(moduleWithSymbol[methodSymbol]()).toBe('hello') - expect(moduleWithSymbol.warn()).toBe('hello') + expect(moduleWithSymbol[methodSymbol]()).toBe(undefined) + expect(moduleWithSymbol.warn()).toBe(undefined) expect(log.warn).toHaveProperty('mockImplementation') }) From fe9387314523da2b03cc3287a3b9dc9666d62949 Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Mon, 5 Jun 2023 16:52:43 +0200 Subject: [PATCH 3/3] test: fix test --- test/core/test/mocked-no-mocks.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/core/test/mocked-no-mocks.test.ts b/test/core/test/mocked-no-mocks.test.ts index f824a930db9e..6260bf30c41d 100644 --- a/test/core/test/mocked-no-mocks.test.ts +++ b/test/core/test/mocked-no-mocks.test.ts @@ -15,6 +15,7 @@ test('mocking several modules work', () => { mockedB() - expect(mockedA).toHaveBeenCalledTimes(2) + // mockedA is not called because mockedB is restored to be undefined + expect(mockedA).toHaveBeenCalledTimes(1) expect(mockedB).toHaveBeenCalledTimes(1) })