test/tc_command.rb in gli-2.6.2 vs test/tc_command.rb in gli-2.7.0

- old
+ new

@@ -204,9 +204,51 @@ assert exit_code != 0 assert_contained(@fake_stderr,/#{@error_message}/) assert_contained(@fake_stdout,/SYNOPSIS/) end + def test_error_handler_prints_that_its_skipping_when_gli_debug_is_set + ENV["GLI_DEBUG"] = 'true' + @app.on_error do + false + end + @app.command :blah do |c| + c.action do |*| + raise 'wtf' + end + end + + assert_raises(RuntimeError) { + @app.run(['blah']) + } + assert_contained(@fake_stderr,/Custom error handler exited false, skipping normal error handling/) + end + + def test_error_handler_should_be_called_on_help_now + @app.command :blah do |c| + c.action do |*| + help_now! + end + end + @app.run(["blah"]) + assert @error_called + end + + def test_error_handler_shouldnt_be_called_on_help_from_command_line + @app.command :blah do |c| + c.action do |*| + end + end + [ + ["--help", "blah"], + ["blah", "--help"], + ].each do |args| + args_copy = args.clone + @app.run(args) + assert !@error_called, "for args #{args_copy.inspect}" + end + end + def test_command_skips_pre @app.skips_pre @app.skips_post skips_pre_called = false