5
5
* LICENSE file in the root directory of this source tree.
6
6
*/
7
7
8
+ import Resolver = require( 'jest-resolve' ) ;
8
9
import { tmpdir } from 'os' ;
9
10
import * as path from 'path' ;
10
11
import { Config } from '@jest/types' ;
@@ -15,6 +16,7 @@ import DependencyResolver from '../index';
15
16
16
17
const maxWorkers = 1 ;
17
18
let dependencyResolver : DependencyResolver ;
19
+ let runtimeContextResolver : Resolver ;
18
20
let Runtime ;
19
21
let config : Config . ProjectConfig ;
20
22
const cases : Record < string , jest . Mock > = {
@@ -29,11 +31,13 @@ beforeEach(() => {
29
31
config = makeProjectConfig ( {
30
32
cacheDirectory : path . resolve ( tmpdir ( ) , 'jest-resolve-dependencies-test' ) ,
31
33
moduleDirectories : [ 'node_modules' ] ,
34
+ moduleNameMapper : [ [ '^\\$asdf/(.*)$' , '<rootDir>/$1' ] ] ,
32
35
rootDir : '.' ,
33
36
roots : [ './packages/jest-resolve-dependencies' ] ,
34
37
} ) ;
35
38
return Runtime . createContext ( config , { maxWorkers, watchman : false } ) . then (
36
39
( runtimeContext : any ) => {
40
+ runtimeContextResolver = runtimeContext . resolver ;
37
41
dependencyResolver = new DependencyResolver (
38
42
runtimeContext . resolver ,
39
43
runtimeContext . hasteFS ,
@@ -106,3 +110,18 @@ test('resolves inverse dependencies from available snapshot', () => {
106
110
] ) ,
107
111
) ;
108
112
} ) ;
113
+
114
+ test ( 'resolves dependencies correctly when dependency resolution fails' , ( ) => {
115
+ jest . spyOn ( runtimeContextResolver , 'resolveModule' ) . mockImplementation ( ( ) => {
116
+ throw new Error ( 'resolveModule has failed' ) ;
117
+ } ) ;
118
+ jest . spyOn ( runtimeContextResolver , 'getMockModule' ) . mockImplementation ( ( ) => {
119
+ throw new Error ( 'getMockModule has failed' ) ;
120
+ } ) ;
121
+
122
+ const resolved = dependencyResolver . resolve (
123
+ path . resolve ( __dirname , '__fixtures__' , 'file.test.js' ) ,
124
+ ) ;
125
+
126
+ expect ( resolved ) . toEqual ( [ ] ) ;
127
+ } ) ;
0 commit comments