@@ -311,6 +311,73 @@ ${(os.platform === 'win32') ? '' : ' '}
311
311
done ( ) ;
312
312
} ) ;
313
313
} ) ;
314
+
315
+ it ( 'should throw error if staging area is empty' , function ( done ) {
316
+
317
+ this . timeout ( config . maxTimeout ) ; // this could take a while
318
+
319
+ // SETUP
320
+
321
+ let dummyCommitMessage = `one does not simply ignore the tests` ;
322
+
323
+ // Describe a repo and some files to add and commit
324
+ let repoConfig = {
325
+ path : config . paths . endUserRepo ,
326
+ files : {
327
+ dummyfile : {
328
+ contents : `duck-duck-gray-duck` ,
329
+ filename : `mydummiestfile.txt` ,
330
+ } ,
331
+ gitignore : {
332
+ contents : `node_modules/` ,
333
+ filename : `.gitignore` ,
334
+ }
335
+ }
336
+ } ;
337
+
338
+ // Describe an adapter
339
+ let adapterConfig = {
340
+ path : path . join ( repoConfig . path , '/node_modules/cz-jira-smart-commit' ) ,
341
+ npmName : 'cz-jira-smart-commit'
342
+ } ;
343
+
344
+ // Quick setup the repos, adapter, and grab a simple prompter
345
+ let prompter = quickPrompterSetup ( repoConfig , adapterConfig , dummyCommitMessage ) ;
346
+ // TEST
347
+
348
+ // Make an initial commit
349
+ commitizenCommit ( inquirer , repoConfig . path , prompter , { disableAppendPaths : true , quiet : true , emitData : true } , function ( error ) {
350
+ // Should pass, as the files are added to the staging area
351
+ expect ( error ) . to . be . null ;
352
+
353
+ log ( repoConfig . path , function ( logOutput ) {
354
+ expect ( logOutput ) . to . have . string ( dummyCommitMessage ) ;
355
+ } ) ;
356
+ whatChanged ( repoConfig . path , function ( whatChangedOutput ) {
357
+ expect ( whatChangedOutput ) . to . have . string ( 'A\t' + repoConfig . files . dummyfile . filename ) ;
358
+
359
+ // Make changes and don't add them to the staging area
360
+ writeFilesToPath ( {
361
+ dummymodified : {
362
+ contents : repoConfig . files . dummyfile . contents + '-modified' ,
363
+ filename : repoConfig . files . dummyfile . filename ,
364
+ add : false ,
365
+ }
366
+ } , repoConfig . path ) ;
367
+ // Define a dummy prompter
368
+ let prompter = function ( cz , commit ) {
369
+ commit ( `${ dummyCommitMessage } #2` , { } ) ;
370
+ } ;
371
+
372
+ commitizenCommit ( inquirer , repoConfig . path , prompter , { disableAppendPaths : true , quiet : true , emitData : true } , function ( error ) {
373
+ // Should fail, as staging are is empty
374
+ expect ( error ) . to . be . instanceOf ( Error ) ;
375
+ done ( ) ;
376
+ } ) ;
377
+ } ) ;
378
+ } ) ;
379
+
380
+ } ) ;
314
381
} ) ;
315
382
316
383
afterEach ( function ( ) {
0 commit comments