diff --git a/lib/generator/command_line/generator_optparser.rb b/lib/generator/command_line/generator_optparser.rb index d52496c177..1fc9571024 100644 --- a/lib/generator/command_line/generator_optparser.rb +++ b/lib/generator/command_line/generator_optparser.rb @@ -83,7 +83,9 @@ def validate_exercise def validate_cases return true if available_generators.include?(options[:slug]) - $stderr.puts "A generator does not currently exist for #{options[:slug]}!" + warning = "A generator does not currently exist for #{options[:slug]}!" + expected_location = "Expecting it to be at: #{Files::GeneratorCases.source_filepath(@paths.track, options[:slug])}" + $stderr.puts [warning, expected_location].join("\n") false end end diff --git a/test/generator/command_line/generator_optparser_test.rb b/test/generator/command_line/generator_optparser_test.rb index 4b84bdcc2a..fc7785df69 100644 --- a/test/generator/command_line/generator_optparser_test.rb +++ b/test/generator/command_line/generator_optparser_test.rb @@ -111,9 +111,18 @@ def test_validate_slug end def test_validate_missing_generator - args = %w(nonexistent) + args = %w(non-existent) Files::GeneratorCases.stub :available, [] do - assert_output(nil, /A generator does not currently exist fo/) do + assert_output(nil, /A generator does not currently exist for non-existent/) do + refute GeneratorOptparser.new(args, FixturePaths).options_valid? + end + end + end + + def test_missing_generator_tells_you_where_it_looked + args = %w(non-existent) + Files::GeneratorCases.stub :available, [] do + assert_output(nil, %r{exercises/non-existent/\.meta/generator/non_existent_case\.rb}) do refute GeneratorOptparser.new(args, FixturePaths).options_valid? end end