diff --git a/packages/expect/src/jest-expect.ts b/packages/expect/src/jest-expect.ts index ed6f0af3d2fe..e57f6e9c574f 100644 --- a/packages/expect/src/jest-expect.ts +++ b/packages/expect/src/jest-expect.ts @@ -418,7 +418,7 @@ export const JestChaiExpect: ChaiPlugin = (chai, utils) => { ], ) if (called && isNot) - msg += formatCalls(spy, msg) + msg = formatCalls(spy, msg) if ((called && isNot) || (!called && !isNot)) { const err = new Error(msg) @@ -443,7 +443,7 @@ export const JestChaiExpect: ChaiPlugin = (chai, utils) => { ) if ((pass && isNot) || (!pass && !isNot)) { - msg += formatCalls(spy, msg, args) + msg = formatCalls(spy, msg, args) const err = new Error(msg) err.name = 'AssertionError' throw err diff --git a/test/core/test/jest-expect.test.ts b/test/core/test/jest-expect.test.ts index 450403fa244a..f6d763cd903b 100644 --- a/test/core/test/jest-expect.test.ts +++ b/test/core/test/jest-expect.test.ts @@ -463,6 +463,32 @@ describe('toSatisfy()', () => { }) }) +describe('toHaveBeenCalled', () => { + describe('negated', () => { + it('fails if called', () => { + const mock = vi.fn() + mock() + + expect(() => { + expect(mock).not.toHaveBeenCalled() + }).toThrow(/^expected "spy" to not be called at all[^e]/) + }) + }) +}) + +describe('toHaveBeenCalledWith', () => { + describe('negated', () => { + it('fails if called', () => { + const mock = vi.fn() + mock(3) + + expect(() => { + expect(mock).not.toHaveBeenCalledWith(3) + }).toThrow(/^expected "spy" to not be called with arguments: \[ 3 \][^e]/) + }) + }) +}) + describe('async expect', () => { it('resolves', async () => { await expect((async () => 'true')()).resolves.toBe('true')