diff --git a/packages/jest-mock/src/__tests__/index.test.ts b/packages/jest-mock/src/__tests__/index.test.ts index 0266d24f2b7b..5c1159214359 100644 --- a/packages/jest-mock/src/__tests__/index.test.ts +++ b/packages/jest-mock/src/__tests__/index.test.ts @@ -1216,6 +1216,18 @@ describe('moduleMocker', () => { expect(originalCallArguments[1]).toBe(secondArg); expect(spy).not.toHaveBeenCalled(); }); + + it('should not rely on hasOwnProperty', () => { + const Foo = Object.assign(Object.create(null), { + foo() {}, + }); + + const spy = moduleMocker.spyOn(Foo, 'foo'); + + Foo.foo(); + + expect(spy).toHaveBeenCalled(); + }); }); describe('spyOnProperty', () => { diff --git a/packages/jest-mock/src/index.ts b/packages/jest-mock/src/index.ts index 1b0330421124..885bf2ecf2d4 100644 --- a/packages/jest-mock/src/index.ts +++ b/packages/jest-mock/src/index.ts @@ -976,7 +976,10 @@ export class ModuleMocker { ); } - const isMethodOwner = object.hasOwnProperty(methodName); + const isMethodOwner = Object.prototype.hasOwnProperty.call( + object, + methodName, + ); let descriptor = Object.getOwnPropertyDescriptor(object, methodName); let proto = Object.getPrototypeOf(object);