@@ -212,4 +212,40 @@ describe("Node > Package", () => {
212212 ) ;
213213 equal ( pkgDir , undefined ) ;
214214 } ) ;
215+
216+ it ( "findPackageDependencyDir() does not search beyond stopAt" , ( ) => {
217+ const rootDir = path . join ( testTempDir , "repo" ) ;
218+ const workspaceDir = path . join ( rootDir , "packages" , "app" ) ;
219+ const externalDir = path . join ( testTempDir , "node_modules" , "external" ) ;
220+ const localDir = path . join (
221+ rootDir ,
222+ "packages" ,
223+ "node_modules" ,
224+ "local"
225+ ) ;
226+ const blockedLocalDir = path . join ( rootDir , "node_modules" , "blocked" ) ;
227+
228+ fs . mkdirSync ( workspaceDir , { recursive : true } ) ;
229+ fs . mkdirSync ( externalDir , { recursive : true } ) ;
230+ fs . mkdirSync ( localDir , { recursive : true } ) ;
231+ fs . mkdirSync ( blockedLocalDir , { recursive : true } ) ;
232+
233+ const blockedPkgDir = findPackageDependencyDir ( "external" , {
234+ startDir : workspaceDir ,
235+ stopAt : rootDir ,
236+ } ) ;
237+ equal ( blockedPkgDir , undefined ) ;
238+
239+ const localPkgDir = findPackageDependencyDir ( "local" , {
240+ startDir : workspaceDir ,
241+ stopAt : rootDir ,
242+ } ) ;
243+ equal ( localPkgDir , localDir ) ;
244+
245+ const blockedLocalPkgDir = findPackageDependencyDir ( "blocked" , {
246+ startDir : workspaceDir ,
247+ stopAt : rootDir ,
248+ } ) ;
249+ equal ( blockedLocalPkgDir , undefined ) ;
250+ } ) ;
215251} ) ;
0 commit comments