Skip to content

Commit 81390ac

Browse files
authored
fix(mock): consider modules as objects (#13513)
1 parent df38770 commit 81390ac

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
### Fixes
66

7+
- `[jest-mock]` Treat cjs modules as objects so they can be mocked ([#13513](https://github.com/facebook/jest/pull/13513))
8+
79
### Chore & Maintenance
810

911
- `[@jest/transform]` Update `convert-source-map` ([#13509](https://github.com/facebook/jest/pull/13509))

packages/jest-mock/src/__tests__/index.test.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,20 @@ describe('moduleMocker', () => {
213213
expect(mock.enumGetter).toBeDefined();
214214
});
215215

216+
it('handles custom toString of transpiled modules', () => {
217+
const foo = Object.defineProperties(
218+
{foo: 'bar'},
219+
{
220+
__esModule: {value: true},
221+
[Symbol.toStringTag]: {value: 'Module'},
222+
},
223+
);
224+
const mock = moduleMocker.generateFromMetadata(
225+
moduleMocker.getMetadata(foo),
226+
);
227+
expect(mock.foo).toBeDefined();
228+
});
229+
216230
it('mocks ES2015 non-enumerable methods', () => {
217231
class ClassFoo {
218232
foo() {}

packages/jest-mock/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,7 @@ function getType(ref?: unknown): MockMetadataType | null {
426426
return 'function';
427427
} else if (Array.isArray(ref)) {
428428
return 'array';
429-
} else if (typeName === 'Object') {
429+
} else if (typeName === 'Object' || typeName === 'Module') {
430430
return 'object';
431431
} else if (
432432
typeName === 'Number' ||

0 commit comments

Comments
 (0)