@@ -365,49 +365,93 @@ describe('Unit: Instance', function () {
365
365
} ) ;
366
366
367
367
describe ( 'template' , function ( ) {
368
- it ( 'resolves with false if the choice is to skip' , function ( ) {
369
- let promptStub = sandbox . stub ( ) . resolves ( { choice : 'skip' } ) ;
370
- let testInstance = new Instance ( { prompt : promptStub , allowPrompt : true } , { } , '' ) ;
368
+ it ( 'immediately calls _generateTemplate if ui.allowPrompt is false' , function ( ) {
369
+ let promptStub = sandbox . stub ( ) . resolves ( ) ;
370
+ let testInstance = new Instance ( {
371
+ prompt : promptStub ,
372
+ allowPrompt : false ,
373
+ verbose : true
374
+ } , { } , '' ) ;
375
+ let generateStub = sandbox . stub ( testInstance , '_generateTemplate' ) . resolves ( true ) ;
371
376
372
377
return testInstance . template ( 'some contents' , 'a file' , 'file.txt' , '/some/dir' ) . then ( ( result ) => {
373
- expect ( promptStub . calledOnce ) . to . be . true ;
374
- expect ( result ) . to . be . false ;
378
+ expect ( result ) . to . be . true ;
379
+ expect ( promptStub . called ) . to . be . false ;
380
+ expect ( generateStub . calledOnce ) . to . be . true ;
381
+ expect ( generateStub . args [ 0 ] [ 0 ] ) . to . equal ( 'some contents' ) ;
375
382
} ) ;
376
383
} ) ;
377
384
378
- it ( 'generates template if the choice is to proceeed' , function ( ) {
379
- let promptStub = sandbox . stub ( ) . resolves ( { choice : 'write' } ) ;
380
- let testInstance = new Instance ( { prompt : promptStub , allowPrompt : true } , { } , '' ) ;
385
+ it ( 'immediately calls _generateTemplate if ui.verbose is false' , function ( ) {
386
+ let promptStub = sandbox . stub ( ) . resolves ( ) ;
387
+ let testInstance = new Instance ( {
388
+ prompt : promptStub ,
389
+ allowPrompt : true ,
390
+ verbose : false
391
+ } , { } , '' ) ;
392
+ let generateStub = sandbox . stub ( testInstance , '_generateTemplate' ) . resolves ( true ) ;
393
+
394
+ return testInstance . template ( 'some contents' , 'a file' , 'file.txt' , '/some/dir' ) . then ( ( result ) => {
395
+ expect ( result ) . to . be . true ;
396
+ expect ( promptStub . called ) . to . be . false ;
397
+ expect ( generateStub . calledOnce ) . to . be . true ;
398
+ expect ( generateStub . args [ 0 ] [ 0 ] ) . to . equal ( 'some contents' ) ;
399
+ } ) ;
400
+ } ) ;
401
+
402
+ it ( 'immediately calls _generateTemplate if ui.allowPrompt and ui.verbose is false' , function ( ) {
403
+ let promptStub = sandbox . stub ( ) . resolves ( ) ;
404
+ let testInstance = new Instance ( {
405
+ prompt : promptStub ,
406
+ allowPrompt : true ,
407
+ verbose : false
408
+ } , { } , '' ) ;
409
+ let generateStub = sandbox . stub ( testInstance , '_generateTemplate' ) . resolves ( true ) ;
410
+
411
+ return testInstance . template ( 'some contents' , 'a file' , 'file.txt' , '/some/dir' ) . then ( ( result ) => {
412
+ expect ( result ) . to . be . true ;
413
+ expect ( promptStub . called ) . to . be . false ;
414
+ expect ( generateStub . calledOnce ) . to . be . true ;
415
+ expect ( generateStub . args [ 0 ] [ 0 ] ) . to . equal ( 'some contents' ) ;
416
+ } ) ;
417
+ } ) ;
418
+
419
+ it ( 'generates template if the choice is to continue (with --verbose)' , function ( ) {
420
+ let promptStub = sandbox . stub ( ) . resolves ( { choice : 'continue' } ) ;
421
+ let testInstance = new Instance ( { prompt : promptStub , allowPrompt : true , verbose : true } , { } , '' ) ;
381
422
let generateStub = sandbox . stub ( testInstance , '_generateTemplate' ) . resolves ( true ) ;
382
423
383
424
return testInstance . template ( 'some contents' , 'a file' , 'file.txt' , '/some/dir' ) . then ( ( result ) => {
384
425
expect ( result ) . to . be . true ;
385
426
expect ( generateStub . calledOnce ) . to . be . true ;
386
427
expect ( promptStub . calledOnce ) . to . be . true ;
387
- expect ( generateStub . args [ 0 ] ) . to . deep . equal ( [ 'some contents' , 'file.txt' , '/some/dir' ] ) ;
428
+ expect ( generateStub . args [ 0 ] ) . to . deep . equal ( [ 'some contents' , 'a file' , ' file.txt', '/some/dir' ] ) ;
388
429
} ) ;
389
430
} ) ;
390
431
391
- it ( 'logs and calls template method again if choice is view' , function ( ) {
432
+ it ( 'logs and calls template method again if choice is view (with --verbose) ' , function ( ) {
392
433
let promptStub = sandbox . stub ( ) ;
393
434
promptStub . onCall ( 0 ) . resolves ( { choice : 'view' } ) ;
394
- promptStub . onCall ( 1 ) . resolves ( { choice : 'skip ' } ) ;
435
+ promptStub . onCall ( 1 ) . resolves ( { choice : 'continue ' } ) ;
395
436
let logStub = sandbox . stub ( ) ;
396
- let testInstance = new Instance ( { log : logStub , prompt : promptStub , allowPrompt : true } , { } , '' ) ;
437
+ let testInstance = new Instance ( { log : logStub , prompt : promptStub , allowPrompt : true , verbose : true } , { } , '' ) ;
438
+ let generateStub = sandbox . stub ( testInstance , '_generateTemplate' ) . resolves ( true ) ;
397
439
398
440
return testInstance . template ( 'some contents' , 'a file' , 'file.txt' , '/some/dir' ) . then ( ( result ) => {
399
- expect ( result ) . to . be . false ;
441
+ expect ( result ) . to . be . true ;
400
442
expect ( promptStub . calledTwice ) . to . be . true ;
401
443
expect ( logStub . calledOnce ) . to . be . true ;
402
444
expect ( logStub . args [ 0 ] [ 0 ] ) . to . equal ( 'some contents' ) ;
445
+ expect ( generateStub . calledOnce ) . to . be . true ;
446
+ expect ( generateStub . args [ 0 ] ) . to . deep . equal ( [ 'some contents' , 'a file' , 'file.txt' , '/some/dir' ] ) ;
403
447
} ) ;
404
448
} ) ;
405
449
406
- it ( 'opens editor and generates template with contents if choice is edit' , function ( ) {
450
+ it ( 'opens editor and generates template with contents if choice is edit (with --verbose) ' , function ( ) {
407
451
let promptStub = sandbox . stub ( ) ;
408
452
promptStub . onCall ( 0 ) . resolves ( { choice : 'edit' } ) ;
409
453
promptStub . onCall ( 1 ) . resolves ( { contents : 'some edited contents' } ) ;
410
- let testInstance = new Instance ( { prompt : promptStub , allowPrompt : true } , { } , '' ) ;
454
+ let testInstance = new Instance ( { prompt : promptStub , allowPrompt : true , verbose : true } , { } , '' ) ;
411
455
let generateStub = sandbox . stub ( testInstance , '_generateTemplate' ) . resolves ( true ) ;
412
456
413
457
return testInstance . template ( 'some contents' , 'a file' , 'file.txt' , '/some/dir' ) . then ( ( result ) => {
@@ -417,49 +461,38 @@ describe('Unit: Instance', function () {
417
461
expect ( generateStub . args [ 0 ] [ 0 ] ) . to . equal ( 'some edited contents' ) ;
418
462
} ) ;
419
463
} ) ;
420
-
421
- it ( 'immediately calls _generateTemplate if ui.allowPrompt is false' , function ( ) {
422
- let promptStub = sandbox . stub ( ) . resolves ( ) ;
423
- let testInstance = new Instance ( {
424
- prompt : promptStub ,
425
- allowPrompt : false
426
- } , { } , '' ) ;
427
- let generateStub = sandbox . stub ( testInstance , '_generateTemplate' ) . resolves ( true ) ;
428
-
429
- return testInstance . template ( 'some contents' , 'a file' , 'file.txt' , '/some/dir' ) . then ( ( result ) => {
430
- expect ( result ) . to . be . true ;
431
- expect ( promptStub . called ) . to . be . false ;
432
- expect ( generateStub . calledOnce ) . to . be . true ;
433
- expect ( generateStub . args [ 0 ] [ 0 ] ) . to . equal ( 'some contents' ) ;
434
- } ) ;
435
- } ) ;
436
464
} ) ;
437
465
438
466
describe ( '_generateTemplate' , function ( ) {
439
467
it ( 'writes out template to correct directory but doesn\'t link if no dir is passed' , function ( ) {
440
468
let dir = tmp . dirSync ( { unsafeCleanup : true } ) . name ;
441
- let testInstance = new Instance ( { } , { } , dir ) ;
469
+ let successStub = sandbox . stub ( ) ;
470
+ let testInstance = new Instance ( { success : successStub } , { } , dir ) ;
442
471
443
- return testInstance . _generateTemplate ( 'some contents' , 'file.txt' ) . then ( ( result ) => {
472
+ return testInstance . _generateTemplate ( 'some contents' , 'a file' , ' file.txt') . then ( ( result ) => {
444
473
expect ( result ) . to . be . true ;
445
474
let fpath = path . join ( dir , 'system' , 'files' , 'file.txt' ) ;
446
475
expect ( fs . existsSync ( fpath ) ) . to . be . true ;
447
476
expect ( fs . readFileSync ( fpath , 'utf8' ) ) . to . equal ( 'some contents' ) ;
477
+ expect ( successStub . called ) . to . be . false ;
448
478
} ) ;
449
479
} ) ;
450
480
451
481
it ( 'writes out template and links it correctly if dir is passed' , function ( ) {
452
482
let dir = tmp . dirSync ( { unsafeCleanup : true } ) . name ;
453
483
let sudoStub = sandbox . stub ( ) . resolves ( ) ;
454
- let testInstance = new Instance ( { sudo : sudoStub } , { } , dir ) ;
484
+ let successStub = sandbox . stub ( ) ;
485
+ let testInstance = new Instance ( { sudo : sudoStub , success : successStub } , { } , dir ) ;
455
486
456
- return testInstance . _generateTemplate ( 'some contents' , 'file.txt' , '/another/dir' ) . then ( ( result ) => {
487
+ return testInstance . _generateTemplate ( 'some contents' , 'a file' , ' file.txt', '/another/dir' ) . then ( ( result ) => {
457
488
expect ( result ) . to . be . true ;
458
489
let fpath = path . join ( dir , 'system' , 'files' , 'file.txt' ) ;
459
490
expect ( fs . existsSync ( fpath ) ) . to . be . true ;
460
491
expect ( fs . readFileSync ( fpath , 'utf8' ) ) . to . equal ( 'some contents' ) ;
461
492
expect ( sudoStub . calledOnce ) . to . be . true ;
462
493
expect ( sudoStub . args [ 0 ] [ 0 ] ) . to . equal ( `ln -sf ${ fpath } /another/dir/file.txt` ) ;
494
+ expect ( successStub . calledOnce ) . to . be . true ;
495
+ expect ( successStub . firstCall . args [ 0 ] ) . to . match ( / ^ C r e a t i n g a f i l e f i l e a t / ) ;
463
496
} ) ;
464
497
} ) ;
465
498
} ) ;
0 commit comments