@@ -69,5 +69,75 @@ describe("bin", () => {
6969 `Failed to find expected output (stdout: ${ stdout } stderr: ${ stderr } )` ,
7070 ) ;
7171 } ) ;
72+
73+ it ( "skips dependencies that cannot be resolved by default" , ( context ) => {
74+ const targetBuildDir = setupTempDirectory ( context , { } ) ;
75+ const appDir = setupTempDirectory ( context , {
76+ "package.json" : JSON . stringify ( {
77+ name : "test-app" ,
78+ dependencies : { "broken-package" : "1.0.0" } ,
79+ } ) ,
80+ "node_modules/broken-package/package.json" : JSON . stringify ( {
81+ name : "broken-package" ,
82+ exports : "./missing.js" ,
83+ } ) ,
84+ } ) ;
85+
86+ const { status, stdout, stderr } = cp . spawnSync (
87+ process . execPath ,
88+ [ BIN_PATH , "link" , appDir , "--android" ] ,
89+ {
90+ cwd : PACKAGE_ROOT ,
91+ encoding : "utf8" ,
92+ env : {
93+ ...process . env ,
94+ TARGET_BUILD_DIR : targetBuildDir ,
95+ } ,
96+ } ,
97+ ) ;
98+
99+ assert . equal (
100+ status ,
101+ 0 ,
102+ `Expected success (got ${ status } ): ${ stdout } ${ stderr } ` ,
103+ ) ;
104+ assert . match ( stderr , / C a n n o t f i n d p a c k a g e r o o t .* f o r b r o k e n - p a c k a g e / ) ;
105+ } ) ;
106+
107+ it ( "reports dependency resolution errors with --fail-on-error" , ( context ) => {
108+ const targetBuildDir = setupTempDirectory ( context , { } ) ;
109+ const appDir = setupTempDirectory ( context , {
110+ "package.json" : JSON . stringify ( {
111+ name : "test-app" ,
112+ dependencies : { "broken-package" : "1.0.0" } ,
113+ } ) ,
114+ "node_modules/broken-package/package.json" : JSON . stringify ( {
115+ name : "broken-package" ,
116+ exports : "./missing.js" ,
117+ } ) ,
118+ } ) ;
119+
120+ const { status, stdout, stderr } = cp . spawnSync (
121+ process . execPath ,
122+ [ BIN_PATH , "link" , appDir , "--android" , "--fail-on-error" ] ,
123+ {
124+ cwd : PACKAGE_ROOT ,
125+ encoding : "utf8" ,
126+ env : {
127+ ...process . env ,
128+ TARGET_BUILD_DIR : targetBuildDir ,
129+ } ,
130+ } ,
131+ ) ;
132+
133+ assert . equal (
134+ status ,
135+ 1 ,
136+ `Expected failure (got ${ status } ): ${ stdout } ${ stderr } ` ,
137+ ) ;
138+ assert . match ( stderr , / b r o k e n - p a c k a g e / ) ;
139+ assert . match ( stderr , / m i s s i n g \. j s / ) ;
140+ assert . doesNotMatch ( stderr , / u n k n o w n o p t i o n / ) ;
141+ } ) ;
72142 } ) ;
73143} ) ;
0 commit comments