@@ -324,6 +324,55 @@ def test_commit_when_nothing_to_commit(config, mocker: MockFixture):
324324    assert  "No files added to staging!"  in  str (excinfo .value )
325325
326326
327+ @pytest .mark .usefixtures ("staging_is_clean" ) 
328+ def  test_commit_with_allow_empty (config , mocker : MockFixture ):
329+     prompt_mock  =  mocker .patch ("questionary.prompt" )
330+     prompt_mock .return_value  =  {
331+         "prefix" : "feat" ,
332+         "subject" : "user created" ,
333+         "scope" : "" ,
334+         "is_breaking_change" : False ,
335+         "body" : "closes #21" ,
336+         "footer" : "" ,
337+     }
338+ 
339+     commit_mock  =  mocker .patch ("commitizen.git.commit" )
340+     commit_mock .return_value  =  cmd .Command ("success" , "" , b"" , b"" , 0 )
341+     success_mock  =  mocker .patch ("commitizen.out.success" )
342+ 
343+     commands .Commit (config , {"extra_cli_args" : "--allow-empty" })()
344+ 
345+     commit_mock .assert_called_with (
346+         "feat: user created\n \n closes #21" , args = "--allow-empty" 
347+     )
348+     success_mock .assert_called_once ()
349+ 
350+ 
351+ @pytest .mark .usefixtures ("staging_is_clean" ) 
352+ def  test_commit_with_signoff_and_allow_empty (config , mocker : MockFixture ):
353+     prompt_mock  =  mocker .patch ("questionary.prompt" )
354+     prompt_mock .return_value  =  {
355+         "prefix" : "feat" ,
356+         "subject" : "user created" ,
357+         "scope" : "" ,
358+         "is_breaking_change" : False ,
359+         "body" : "closes #21" ,
360+         "footer" : "" ,
361+     }
362+ 
363+     commit_mock  =  mocker .patch ("commitizen.git.commit" )
364+     commit_mock .return_value  =  cmd .Command ("success" , "" , b"" , b"" , 0 )
365+     success_mock  =  mocker .patch ("commitizen.out.success" )
366+ 
367+     config .settings ["always_signoff" ] =  True 
368+     commands .Commit (config , {"extra_cli_args" : "--allow-empty" })()
369+ 
370+     commit_mock .assert_called_with (
371+         "feat: user created\n \n closes #21" , args = "--allow-empty -s" 
372+     )
373+     success_mock .assert_called_once ()
374+ 
375+ 
327376@pytest .mark .usefixtures ("staging_is_clean" ) 
328377def  test_commit_when_customized_expected_raised (config , mocker : MockFixture , capsys ):
329378    _err  =  ValueError ()
0 commit comments