Skip to content

Commit ca92599

Browse files
authored
Don't throw an error if mock dependency can't be found (#10779)
1 parent a7ae4f2 commit ca92599

File tree

3 files changed

+24
-4
lines changed

3 files changed

+24
-4
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
### Fixes
66

7+
- `[jest-resolve-dependencies]` Continue dependency resolution if mock dependency can't be found ([#10779](https://github.com/facebook/jest/pull/10779))
8+
79
### Chore & Maintenance
810

911
### Performance

packages/jest-resolve-dependencies/src/__tests__/dependency_resolver.test.ts

+14
Original file line numberDiff line numberDiff line change
@@ -149,3 +149,17 @@ test('resolves dependencies correctly when dependency resolution fails', () => {
149149

150150
expect(resolved).toEqual([]);
151151
});
152+
153+
test('resolves dependencies correctly when mock dependency resolution fails', () => {
154+
jest.spyOn(runtimeContextResolver, 'getMockModule').mockImplementation(() => {
155+
throw new Error('getMockModule has failed');
156+
});
157+
158+
const resolved = dependencyResolver.resolve(
159+
path.resolve(__dirname, '__fixtures__', 'file.test.js'),
160+
);
161+
162+
expect(resolved).toEqual([
163+
expect.stringContaining(path.join('__tests__', '__fixtures__', 'file.js')),
164+
]);
165+
});

packages/jest-resolve-dependencies/src/index.ts

+8-4
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,14 @@ class DependencyResolver {
7575

7676
// If we resolve a dependency, then look for a mock dependency
7777
// of the same name in that dependency's directory.
78-
resolvedMockDependency = this._resolver.getMockModule(
79-
resolvedDependency,
80-
path.basename(dependency),
81-
);
78+
try {
79+
resolvedMockDependency = this._resolver.getMockModule(
80+
resolvedDependency,
81+
path.basename(dependency),
82+
);
83+
} catch {
84+
// leave resolvedMockDependency as undefined if nothing can be found
85+
}
8286

8387
if (resolvedMockDependency) {
8488
const dependencyMockDir = path.resolve(

0 commit comments

Comments
 (0)