Skip to content

Commit 05f6217

Browse files
authoredAug 25, 2022
fix: support deep CJS re-exports when using ESM (#13170)
1 parent 490fd88 commit 05f6217

File tree

9 files changed

+358
-45
lines changed

9 files changed

+358
-45
lines changed
 

‎CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
- `[jest-config]` Fix testing multiple projects with TypeScript config files ([#13099](https://github.com/facebook/jest/pull/13099))
2222
- `[@jest/expect-utils]` Fix deep equality of ImmutableJS Record ([#13055](https://github.com/facebook/jest/pull/13055))
2323
- `[jest-haste-map]` Increase the maximum possible file size that jest-haste-map can handle ([#13094](https://github.com/facebook/jest/pull/13094))
24+
- `[jest-runtime]` Properly support CJS re-exports from dual packages ([#13170](https://github.com/facebook/jest/pull/13170))
2425
- `[jest-snapshot]` Make `prettierPath` optional in `SnapshotState` ([#13149](https://github.com/facebook/jest/pull/13149))
2526
- `[jest-snapshot]` Fix parsing error from inline snapshot files with `JSX` ([#12760](https://github.com/facebook/jest/pull/12760))
2627
- `[jest-worker]` When a process runs out of memory worker exits correctly and doesn't spin indefinitely ([#13054](https://github.com/facebook/jest/pull/13054))

‎e2e/__tests__/__snapshots__/nativeEsm.test.ts.snap

+8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
// Jest Snapshot v1, https://goo.gl/fbAQLP
22

3+
exports[`on node >=16.9.0 support re-exports from CJS of dual packages 1`] = `
4+
"Test Suites: 1 passed, 1 total
5+
Tests: 1 passed, 1 total
6+
Snapshots: 0 total
7+
Time: <<REPLACED>>
8+
Ran all test suites matching /native-esm-deep-cjs-reexport.test.js/i."
9+
`;
10+
311
exports[`runs test with native ESM 1`] = `
412
"Test Suites: 1 passed, 1 total
513
Tests: 33 passed, 33 total

‎e2e/__tests__/nativeEsm.test.ts

+23-1
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,16 @@
66
*/
77

88
import {resolve} from 'path';
9-
import {extractSummary} from '../Utils';
9+
import {onNodeVersions} from '@jest/test-utils';
10+
import {extractSummary, runYarnInstall} from '../Utils';
1011
import runJest, {getConfig} from '../runJest';
1112

1213
const DIR = resolve(__dirname, '../native-esm');
1314

15+
beforeAll(() => {
16+
runYarnInstall(DIR);
17+
});
18+
1419
test('test config is without transform', () => {
1520
const {configs} = getConfig(DIR);
1621

@@ -41,3 +46,20 @@ test('supports top-level await', () => {
4146
expect(stdout).toBe('');
4247
expect(exitCode).toBe(0);
4348
});
49+
50+
// minimum version supported by discord.js
51+
onNodeVersions('>=16.9.0', () => {
52+
test('support re-exports from CJS of dual packages', () => {
53+
const {exitCode, stderr, stdout} = runJest(
54+
DIR,
55+
['native-esm-deep-cjs-reexport.test.js'],
56+
{nodeOptions: '--experimental-vm-modules --no-warnings'},
57+
);
58+
59+
const {summary} = extractSummary(stderr);
60+
61+
expect(summary).toMatchSnapshot();
62+
expect(stdout).toBe('');
63+
expect(exitCode).toBe(0);
64+
});
65+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/**
2+
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*/
7+
8+
import {Constants} from '../deepReexport.js';
9+
10+
test('can reexport deep CJS requires', () => {
11+
expect(Constants).toHaveProperty('NonSystemMessageTypes');
12+
});

‎e2e/native-esm/__tests__/native-esm.test.js

+3
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ test('should support importing node core modules', () => {
4444
const packageJsonPath = resolve(dir, '../package.json');
4545

4646
expect(JSON.parse(readFileSync(packageJsonPath, 'utf8'))).toEqual({
47+
devDependencies: {
48+
'discord.js': '14.3.0',
49+
},
4750
jest: {
4851
testEnvironment: 'node',
4952
transform: {},

‎e2e/native-esm/deepReexport.js

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/**
2+
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*/
7+
8+
import {Constants} from 'discord.js';
9+
10+
export {Constants};

‎e2e/native-esm/package.json

+3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
{
22
"type": "module",
3+
"devDependencies": {
4+
"discord.js": "14.3.0"
5+
},
36
"jest": {
47
"testEnvironment": "node",
58
"transform": {}

‎e2e/native-esm/yarn.lock

+274
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,274 @@
1+
# This file is generated by running "yarn install" inside your project.
2+
# Manual changes might be lost - proceed with caution!
3+
4+
__metadata:
5+
version: 6
6+
cacheKey: 8
7+
8+
"@discordjs/builders@npm:^1.2.0":
9+
version: 1.2.0
10+
resolution: "@discordjs/builders@npm:1.2.0"
11+
dependencies:
12+
"@sapphire/shapeshift": ^3.5.1
13+
discord-api-types: ^0.37.3
14+
fast-deep-equal: ^3.1.3
15+
ts-mixer: ^6.0.1
16+
tslib: ^2.4.0
17+
checksum: 19949a574496ff353ce4d6c00b7bd2be8e5f8a30b0cee817d8e8e9d83127adfecc1d18bf2ec0e73013cdfb8bbe6da2e3c234cf43a1c776a777efa128038c968f
18+
languageName: node
19+
linkType: hard
20+
21+
"@discordjs/collection@npm:^1.0.1, @discordjs/collection@npm:^1.1.0":
22+
version: 1.1.0
23+
resolution: "@discordjs/collection@npm:1.1.0"
24+
checksum: 9a78763a181130d91b51d0d93553fd75d09d0aabd6556890a35404bbefe9c5112cb74c3b1e486a213607f6577f9d2d8ee94ee3177652116bac80516e7d3083d6
25+
languageName: node
26+
linkType: hard
27+
28+
"@discordjs/rest@npm:^1.1.0":
29+
version: 1.1.0
30+
resolution: "@discordjs/rest@npm:1.1.0"
31+
dependencies:
32+
"@discordjs/collection": ^1.0.1
33+
"@sapphire/async-queue": ^1.5.0
34+
"@sapphire/snowflake": ^3.2.2
35+
discord-api-types: ^0.37.3
36+
file-type: ^17.1.6
37+
tslib: ^2.4.0
38+
undici: ^5.9.1
39+
checksum: b216d5b217bf70a713480738851a0e607cbed267a0ad60942268f9761c605aac6552fd9cdda56bcabe332f6e5ccb5b7ce9911645e24d3d9342ed6f18dccc6b94
40+
languageName: node
41+
linkType: hard
42+
43+
"@sapphire/async-queue@npm:^1.5.0":
44+
version: 1.5.0
45+
resolution: "@sapphire/async-queue@npm:1.5.0"
46+
checksum: 983dbd1fd1b1798496e5edb6a0db7e4d90015160e1028f20475eab0a92625513f1e8d938bc0305811a9cec461c94e01b1e4191615ff03ba49356f568f3255250
47+
languageName: node
48+
linkType: hard
49+
50+
"@sapphire/shapeshift@npm:^3.5.1":
51+
version: 3.5.1
52+
resolution: "@sapphire/shapeshift@npm:3.5.1"
53+
dependencies:
54+
fast-deep-equal: ^3.1.3
55+
lodash.uniqwith: ^4.5.0
56+
checksum: caecfef844c9e43e921a5051da888fae7da8980bfd9f9bb4f7fee85931d40929ffb9b6dfae464c0dccee61e56f7698f998e4d9a54d25f35fad39a51ba1a4f391
57+
languageName: node
58+
linkType: hard
59+
60+
"@sapphire/snowflake@npm:^3.2.2":
61+
version: 3.2.2
62+
resolution: "@sapphire/snowflake@npm:3.2.2"
63+
checksum: 315fecef4738092c2a2f3509b132b811fcbfa6c98d5d45d951adaf3ca21608be69043bcc137cc6933a7c3e55cbdc066daa5bb484603e6575422b335445b59315
64+
languageName: node
65+
linkType: hard
66+
67+
"@tokenizer/token@npm:^0.3.0":
68+
version: 0.3.0
69+
resolution: "@tokenizer/token@npm:0.3.0"
70+
checksum: 1d575d02d2a9f0c5a4ca5180635ebd2ad59e0f18b42a65f3d04844148b49b3db35cf00b6012a1af2d59c2ab3caca59451c5689f747ba8667ee586ad717ee58e1
71+
languageName: node
72+
linkType: hard
73+
74+
"@types/node@npm:*":
75+
version: 18.7.13
76+
resolution: "@types/node@npm:18.7.13"
77+
checksum: 45431e7e89ecaf85c7d2c180d801c132a7c59e2f8ad578726b6d71cc74e3267c18f9ccdcad738bc0479790c078f0c79efb0e58da2c6be535c15995dbb19050c9
78+
languageName: node
79+
linkType: hard
80+
81+
"@types/ws@npm:^8.5.3":
82+
version: 8.5.3
83+
resolution: "@types/ws@npm:8.5.3"
84+
dependencies:
85+
"@types/node": "*"
86+
checksum: 0ce46f850d41383fcdc2149bcacc86d7232fa7a233f903d2246dff86e31701a02f8566f40af5f8b56d1834779255c04ec6ec78660fe0f9b2a69cf3d71937e4ae
87+
languageName: node
88+
linkType: hard
89+
90+
"discord-api-types@npm:^0.37.3":
91+
version: 0.37.4
92+
resolution: "discord-api-types@npm:0.37.4"
93+
checksum: 18b74acfcd5f6c554668eb5cb31a5db9076dfb5cb6b5c538a342ab9d22816644bada22a66285468fe7dd9980287921d5d50ba3b11cc8e391fe4f09e761bcd179
94+
languageName: node
95+
linkType: hard
96+
97+
"discord.js@npm:14.3.0":
98+
version: 14.3.0
99+
resolution: "discord.js@npm:14.3.0"
100+
dependencies:
101+
"@discordjs/builders": ^1.2.0
102+
"@discordjs/collection": ^1.1.0
103+
"@discordjs/rest": ^1.1.0
104+
"@sapphire/snowflake": ^3.2.2
105+
"@types/ws": ^8.5.3
106+
discord-api-types: ^0.37.3
107+
fast-deep-equal: ^3.1.3
108+
lodash.snakecase: ^4.1.1
109+
tslib: ^2.4.0
110+
undici: ^5.9.1
111+
ws: ^8.8.1
112+
checksum: e45117549d8d504eae958cb104a42dd3903f67ae0c3062fdc60c748a2a21da14a32ec3c9643edcebe568d82602f0b2efc3b9af59d1482ac1304ce4aaeda944a2
113+
languageName: node
114+
linkType: hard
115+
116+
"fast-deep-equal@npm:^3.1.3":
117+
version: 3.1.3
118+
resolution: "fast-deep-equal@npm:3.1.3"
119+
checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d
120+
languageName: node
121+
linkType: hard
122+
123+
"file-type@npm:^17.1.6":
124+
version: 17.1.6
125+
resolution: "file-type@npm:17.1.6"
126+
dependencies:
127+
readable-web-to-node-stream: ^3.0.2
128+
strtok3: ^7.0.0-alpha.9
129+
token-types: ^5.0.0-alpha.2
130+
checksum: 797e0d155ecaf4b575d4569a0188bfed85af19d18cf3d93ec8bb66d797172a1fde9f13d56135c6a0b471cacd7ecc1adb0c9a45c6e3a19436f682a275d0be16cc
131+
languageName: node
132+
linkType: hard
133+
134+
"ieee754@npm:^1.2.1":
135+
version: 1.2.1
136+
resolution: "ieee754@npm:1.2.1"
137+
checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e
138+
languageName: node
139+
linkType: hard
140+
141+
"inherits@npm:^2.0.3":
142+
version: 2.0.4
143+
resolution: "inherits@npm:2.0.4"
144+
checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1
145+
languageName: node
146+
linkType: hard
147+
148+
"lodash.snakecase@npm:^4.1.1":
149+
version: 4.1.1
150+
resolution: "lodash.snakecase@npm:4.1.1"
151+
checksum: 1685ed3e83dda6eae5a4dcaee161a51cd210aabb3e1c09c57150e7dd8feda19e4ca0d27d0631eabe8d0f4eaa51e376da64e8c018ae5415417c5890d42feb72a8
152+
languageName: node
153+
linkType: hard
154+
155+
"lodash.uniqwith@npm:^4.5.0":
156+
version: 4.5.0
157+
resolution: "lodash.uniqwith@npm:4.5.0"
158+
checksum: d49a4565ed64efd86674127d321622673c29cde3e060baebc0f30372f22886c61b2ead44709db8c890053db1b9660e8ed689689812c1a485eb5703caa94d1150
159+
languageName: node
160+
linkType: hard
161+
162+
"peek-readable@npm:^5.0.0":
163+
version: 5.0.0
164+
resolution: "peek-readable@npm:5.0.0"
165+
checksum: bef5ceb50586eb42e14efba274ac57ffe97f0ed272df9239ce029f688f495d9bf74b2886fa27847c706a9db33acda4b7d23bbd09a2d21eb4c2a54da915117414
166+
languageName: node
167+
linkType: hard
168+
169+
"readable-stream@npm:^3.6.0":
170+
version: 3.6.0
171+
resolution: "readable-stream@npm:3.6.0"
172+
dependencies:
173+
inherits: ^2.0.3
174+
string_decoder: ^1.1.1
175+
util-deprecate: ^1.0.1
176+
checksum: d4ea81502d3799439bb955a3a5d1d808592cf3133350ed352aeaa499647858b27b1c4013984900238b0873ec8d0d8defce72469fb7a83e61d53f5ad61cb80dc8
177+
languageName: node
178+
linkType: hard
179+
180+
"readable-web-to-node-stream@npm:^3.0.2":
181+
version: 3.0.2
182+
resolution: "readable-web-to-node-stream@npm:3.0.2"
183+
dependencies:
184+
readable-stream: ^3.6.0
185+
checksum: 8c56cc62c68513425ddfa721954875b382768f83fa20e6b31e365ee00cbe7a3d6296f66f7f1107b16cd3416d33aa9f1680475376400d62a081a88f81f0ea7f9c
186+
languageName: node
187+
linkType: hard
188+
189+
"root-workspace-0b6124@workspace:.":
190+
version: 0.0.0-use.local
191+
resolution: "root-workspace-0b6124@workspace:."
192+
dependencies:
193+
discord.js: 14.3.0
194+
languageName: unknown
195+
linkType: soft
196+
197+
"safe-buffer@npm:~5.2.0":
198+
version: 5.2.1
199+
resolution: "safe-buffer@npm:5.2.1"
200+
checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491
201+
languageName: node
202+
linkType: hard
203+
204+
"string_decoder@npm:^1.1.1":
205+
version: 1.3.0
206+
resolution: "string_decoder@npm:1.3.0"
207+
dependencies:
208+
safe-buffer: ~5.2.0
209+
checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56
210+
languageName: node
211+
linkType: hard
212+
213+
"strtok3@npm:^7.0.0-alpha.9":
214+
version: 7.0.0
215+
resolution: "strtok3@npm:7.0.0"
216+
dependencies:
217+
"@tokenizer/token": ^0.3.0
218+
peek-readable: ^5.0.0
219+
checksum: 2ebe7ad8f2aea611dec6742cf6a42e82764892a362907f7ce493faf334501bf981ce21c828dcc300457e6d460dc9c34d644ededb3b01dcb9e37559203cf1748c
220+
languageName: node
221+
linkType: hard
222+
223+
"token-types@npm:^5.0.0-alpha.2":
224+
version: 5.0.1
225+
resolution: "token-types@npm:5.0.1"
226+
dependencies:
227+
"@tokenizer/token": ^0.3.0
228+
ieee754: ^1.2.1
229+
checksum: 32780123bc6ce8b6a2231d860445c994a02a720abf38df5583ea957aa6626873cd1c4dd8af62314da4cf16ede00c379a765707a3b06f04b8808c38efdae1c785
230+
languageName: node
231+
linkType: hard
232+
233+
"ts-mixer@npm:^6.0.1":
234+
version: 6.0.1
235+
resolution: "ts-mixer@npm:6.0.1"
236+
checksum: 7050f6e85a24155d18cecdcc0a098d1038991cc498317fcffa9d7a8654c776d417fb97e65de1ce8e7ed54ef4814abd8057d0efb9c3b24e9cc78ac3c0f48bbf53
237+
languageName: node
238+
linkType: hard
239+
240+
"tslib@npm:^2.4.0":
241+
version: 2.4.0
242+
resolution: "tslib@npm:2.4.0"
243+
checksum: 8c4aa6a3c5a754bf76aefc38026134180c053b7bd2f81338cb5e5ebf96fefa0f417bff221592bf801077f5bf990562f6264fecbc42cd3309b33872cb6fc3b113
244+
languageName: node
245+
linkType: hard
246+
247+
"undici@npm:^5.9.1":
248+
version: 5.10.0
249+
resolution: "undici@npm:5.10.0"
250+
checksum: 7ba2b71dccc74cd2bdf645b83e9aaef374ae04855943d0a2f42a3d0b9e5556f37cc9b5156fb5288277a2fa95fd46a56f3ae0d5cf73db3f008d75ec41104b136c
251+
languageName: node
252+
linkType: hard
253+
254+
"util-deprecate@npm:^1.0.1":
255+
version: 1.0.2
256+
resolution: "util-deprecate@npm:1.0.2"
257+
checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2
258+
languageName: node
259+
linkType: hard
260+
261+
"ws@npm:^8.8.1":
262+
version: 8.8.1
263+
resolution: "ws@npm:8.8.1"
264+
peerDependencies:
265+
bufferutil: ^4.0.1
266+
utf-8-validate: ^5.0.2
267+
peerDependenciesMeta:
268+
bufferutil:
269+
optional: true
270+
utf-8-validate:
271+
optional: true
272+
checksum: 2152cf862cae0693f3775bc688a6afb2e989d19d626d215e70f5fcd8eb55b1c3b0d3a6a4052905ec320e2d7734e20aeedbf9744496d62f15a26ad79cf4cf7dae
273+
languageName: node
274+
linkType: hard

‎packages/jest-runtime/src/index.ts

+24-44
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,6 @@ export default class Runtime {
545545
referencingIdentifier,
546546
specifier,
547547
this._explicitShouldMockModule,
548-
{conditions: this.esmConditions},
549548
)
550549
) {
551550
return this.importMock(referencingIdentifier, specifier, context);
@@ -631,15 +630,12 @@ export default class Runtime {
631630
referencingIdentifier,
632631
path,
633632
this._explicitShouldMockModule,
634-
{conditions: this.esmConditions},
635633
)
636634
) {
637635
return this.importMock(referencingIdentifier, path, context);
638636
}
639637

640-
const resolved = await this._resolveModule(referencingIdentifier, path, {
641-
conditions: this.esmConditions,
642-
});
638+
const resolved = await this._resolveModule(referencingIdentifier, path);
643639

644640
if (
645641
this._resolver.isCoreModule(resolved) ||
@@ -697,9 +693,7 @@ export default class Runtime {
697693

698694
const [path, query] = (moduleName ?? '').split('?');
699695

700-
const modulePath = await this._resolveModule(from, path, {
701-
conditions: this.esmConditions,
702-
});
696+
const modulePath = await this._resolveModule(from, path);
703697

704698
const module = await this.loadEsmModule(modulePath, query);
705699

@@ -792,9 +786,7 @@ export default class Runtime {
792786
const namedExports = new Set(exports);
793787

794788
reexports.forEach(reexport => {
795-
const resolved = this._resolveCjsModule(modulePath, reexport, {
796-
conditions: this.esmConditions,
797-
});
789+
const resolved = this._resolveCjsModule(modulePath, reexport);
798790

799791
const exports = this.getExportsOfCjs(resolved);
800792

@@ -845,9 +837,7 @@ export default class Runtime {
845837
}
846838

847839
if (!modulePath) {
848-
modulePath = this._resolveCjsModule(from, moduleName, {
849-
conditions: this.cjsConditions,
850-
});
840+
modulePath = this._resolveCjsModule(from, moduleName);
851841
}
852842

853843
if (this.unstable_shouldLoadAsEsm(modulePath)) {
@@ -960,9 +950,7 @@ export default class Runtime {
960950

961951
let modulePath =
962952
this._resolver.getMockModule(from, moduleName) ||
963-
this._resolveCjsModule(from, moduleName, {
964-
conditions: this.cjsConditions,
965-
});
953+
this._resolveCjsModule(from, moduleName);
966954

967955
let isManualMock =
968956
manualMockOrStub &&
@@ -1066,11 +1054,7 @@ export default class Runtime {
10661054
}
10671055

10681056
try {
1069-
if (
1070-
this._shouldMockCjs(from, moduleName, this._explicitShouldMock, {
1071-
conditions: this.cjsConditions,
1072-
})
1073-
) {
1057+
if (this._shouldMockCjs(from, moduleName, this._explicitShouldMock)) {
10741058
return this.requireMock<T>(from, moduleName);
10751059
} else {
10761060
return this.requireModule<T>(from, moduleName);
@@ -1305,20 +1289,20 @@ export default class Runtime {
13051289
this.isTornDown = true;
13061290
}
13071291

1308-
private _resolveCjsModule(
1309-
from: string,
1310-
to: string | undefined,
1311-
options?: ResolveModuleConfig,
1312-
) {
1313-
return to ? this._resolver.resolveModule(from, to, options) : from;
1292+
private _resolveCjsModule(from: string, to: string | undefined) {
1293+
return to
1294+
? this._resolver.resolveModule(from, to, {
1295+
conditions: this.cjsConditions,
1296+
})
1297+
: from;
13141298
}
13151299

1316-
private _resolveModule(
1317-
from: string,
1318-
to: string | undefined,
1319-
options?: ResolveModuleConfig,
1320-
) {
1321-
return to ? this._resolver.resolveModuleAsync(from, to, options) : from;
1300+
private _resolveModule(from: string, to: string | undefined) {
1301+
return to
1302+
? this._resolver.resolveModuleAsync(from, to, {
1303+
conditions: this.esmConditions,
1304+
})
1305+
: from;
13221306
}
13231307

13241308
private _requireResolve(
@@ -1366,9 +1350,7 @@ export default class Runtime {
13661350
}
13671351

13681352
try {
1369-
return this._resolveCjsModule(from, moduleName, {
1370-
conditions: this.cjsConditions,
1371-
});
1353+
return this._resolveCjsModule(from, moduleName);
13721354
} catch (err) {
13731355
const module = this._resolver.getMockModule(from, moduleName);
13741356

@@ -1731,9 +1713,7 @@ export default class Runtime {
17311713
private _generateMock(from: string, moduleName: string) {
17321714
const modulePath =
17331715
this._resolver.resolveStubModuleName(from, moduleName) ||
1734-
this._resolveCjsModule(from, moduleName, {
1735-
conditions: this.cjsConditions,
1736-
});
1716+
this._resolveCjsModule(from, moduleName);
17371717
if (!this._mockMetaDataCache.has(modulePath)) {
17381718
// This allows us to handle circular dependencies while generating an
17391719
// automock
@@ -1777,8 +1757,8 @@ export default class Runtime {
17771757
from: string,
17781758
moduleName: string,
17791759
explicitShouldMock: Map<string, boolean>,
1780-
options: ResolveModuleConfig,
17811760
): boolean {
1761+
const options: ResolveModuleConfig = {conditions: this.cjsConditions};
17821762
const moduleID = this._resolver.getModuleID(
17831763
this._virtualMocks,
17841764
from,
@@ -1807,7 +1787,7 @@ export default class Runtime {
18071787

18081788
let modulePath;
18091789
try {
1810-
modulePath = this._resolveCjsModule(from, moduleName, options);
1790+
modulePath = this._resolveCjsModule(from, moduleName);
18111791
} catch (e) {
18121792
const manualMock = this._resolver.getMockModule(from, moduleName);
18131793
if (manualMock) {
@@ -1848,8 +1828,8 @@ export default class Runtime {
18481828
from: string,
18491829
moduleName: string,
18501830
explicitShouldMock: Map<string, boolean>,
1851-
options: ResolveModuleConfig,
18521831
): Promise<boolean> {
1832+
const options: ResolveModuleConfig = {conditions: this.esmConditions};
18531833
const moduleID = await this._resolver.getModuleIDAsync(
18541834
this._virtualMocks,
18551835
from,
@@ -1878,7 +1858,7 @@ export default class Runtime {
18781858

18791859
let modulePath;
18801860
try {
1881-
modulePath = await this._resolveModule(from, moduleName, options);
1861+
modulePath = await this._resolveModule(from, moduleName);
18821862
} catch (e) {
18831863
const manualMock = await this._resolver.getMockModuleAsync(
18841864
from,

0 commit comments

Comments
 (0)
Please sign in to comment.