@@ -420,13 +420,16 @@ describe("Project Service Tests", () => {
420
420
} ) ;
421
421
422
422
describe ( "isValidNativeScriptProject" , ( ) => {
423
- const getTestInjector = ( ) : IInjector => {
423
+ const getTestInjector = ( projectData ?: any ) : IInjector => {
424
424
const testInjector = new yok . Yok ( ) ;
425
425
testInjector . register ( "npm" , { } ) ;
426
426
testInjector . register ( "errors" , { } ) ;
427
427
testInjector . register ( "fs" , { } ) ;
428
428
testInjector . register ( "logger" , { } ) ;
429
- testInjector . register ( "projectDataService" , { } ) ;
429
+ testInjector . register ( "projectDataService" , {
430
+ getProjectData : ( projectDir ?: string ) : IProjectData => projectData
431
+ } ) ;
432
+ testInjector . register ( "projectData" , { } ) ;
430
433
testInjector . register ( "projectNameService" , { } ) ;
431
434
testInjector . register ( "projectTemplatesService" , { } ) ;
432
435
testInjector . register ( "staticConfig" , { } ) ;
@@ -437,44 +440,66 @@ describe("Project Service Tests", () => {
437
440
return testInjector ;
438
441
} ;
439
442
440
- it ( "returns true when initialize project data does not throw, projectDir and projectId are valid" , ( ) => {
441
- const testInjector = getTestInjector ( ) ;
442
- testInjector . register ( "projectData" , {
443
+ it ( "returns true when getProjectData does not throw, projectDir and projectId are valid" , ( ) => {
444
+ const testInjector = getTestInjector ( {
443
445
projectDir : "projectDir" ,
444
- projectId : "projectId" ,
445
- initializeProjectData : ( ) : void => undefined
446
+ projectId : "projectId"
446
447
} ) ;
447
448
448
449
const projectService : IProjectService = testInjector . resolve ( ProjectServiceLib . ProjectService ) ;
449
450
assert . isTrue ( projectService . isValidNativeScriptProject ( "some-dir" ) ) ;
450
451
} ) ;
451
452
452
- it ( "returns false when initialize project data throws " , ( ) => {
453
+ it ( "returns correct data when multiple calls are executed " , ( ) => {
453
454
const testInjector = getTestInjector ( ) ;
454
- testInjector . register ( "projectData" , {
455
- initializeProjectData : ( ) : void => { throw new Error ( "err" ) ; }
455
+ const projectDataService = testInjector . resolve < IProjectDataService > ( "projectDataService" ) ;
456
+ const projectData : any = {
457
+ projectDir : "projectDir" ,
458
+ projectId : "projectId"
459
+ } ;
460
+
461
+ let returnedProjectData : any = null ;
462
+ projectDataService . getProjectData = ( projectDir ?: string ) : IProjectData => {
463
+ projectData . projectDir = projectDir ;
464
+ returnedProjectData = projectData ;
465
+ return returnedProjectData ;
466
+ } ;
467
+
468
+ const projectService : IProjectService = testInjector . resolve ( ProjectServiceLib . ProjectService ) ;
469
+ assert . isTrue ( projectService . isValidNativeScriptProject ( "some-dir" ) ) ;
470
+ assert . equal ( returnedProjectData . projectDir , "some-dir" ) ;
471
+ assert . isTrue ( projectService . isValidNativeScriptProject ( "some-dir-2" ) ) ;
472
+ assert . equal ( returnedProjectData . projectDir , "some-dir-2" ) ;
473
+
474
+ projectDataService . getProjectData = ( projectDir ?: string ) : IProjectData => {
475
+ throw new Error ( "Err" ) ;
476
+ } ;
477
+
478
+ assert . isFalse ( projectService . isValidNativeScriptProject ( "some-dir-2" ) ) ;
479
+ } ) ;
480
+
481
+ it ( "returns false when getProjectData throws" , ( ) => {
482
+ const testInjector = getTestInjector ( null ) ;
483
+ testInjector . register ( "projectDataService" , {
484
+ getProjectData : ( ) : void => { throw new Error ( "err" ) ; }
456
485
} ) ;
457
486
458
487
const projectService : IProjectService = testInjector . resolve ( ProjectServiceLib . ProjectService ) ;
459
488
assert . isFalse ( projectService . isValidNativeScriptProject ( "some-dir" ) ) ;
460
489
} ) ;
461
490
462
- it ( "returns false when initializeProjectData does not throw, but there's no projectDir set" , ( ) => {
463
- const testInjector = getTestInjector ( ) ;
464
- testInjector . register ( "projectData" , {
465
- projectId : "projectId" ,
466
- initializeProjectData : ( ) : void => undefined
491
+ it ( "returns false when getProjectData does not throw, but there's no projectDir set" , ( ) => {
492
+ const testInjector = getTestInjector ( {
493
+ projectId : "projectId"
467
494
} ) ;
468
495
469
496
const projectService : IProjectService = testInjector . resolve ( ProjectServiceLib . ProjectService ) ;
470
497
assert . isFalse ( projectService . isValidNativeScriptProject ( "some-dir" ) ) ;
471
498
} ) ;
472
499
473
- it ( "returns false when initializeProjectData does not throw, but there's no projectId set" , ( ) => {
474
- const testInjector = getTestInjector ( ) ;
475
- testInjector . register ( "projectData" , {
476
- projectDir : "projectDir" ,
477
- initializeProjectData : ( ) : void => undefined
500
+ it ( "returns false when getProjectData does not throw, but there's no projectId set" , ( ) => {
501
+ const testInjector = getTestInjector ( {
502
+ projectDir : "projectDir"
478
503
} ) ;
479
504
480
505
const projectService : IProjectService = testInjector . resolve ( ProjectServiceLib . ProjectService ) ;
0 commit comments