From 3553463e2be9fedc7a4ee4dc583de48c1e57fb0a Mon Sep 17 00:00:00 2001 From: Benoit Tigeot Date: Mon, 20 Jan 2020 15:42:32 +0100 Subject: [PATCH] Add feature spec when generating generator The before hook help us to redo the test and clean the files --- .../generator_specs/generator_specs.feature | 33 +++++++++++++++++++ features/support/hooks.rb | 11 +++++++ 2 files changed, 44 insertions(+) create mode 100644 features/generator_specs/generator_specs.feature create mode 100644 features/support/hooks.rb diff --git a/features/generator_specs/generator_specs.feature b/features/generator_specs/generator_specs.feature new file mode 100644 index 0000000000..61f9a4dfbd --- /dev/null +++ b/features/generator_specs/generator_specs.feature @@ -0,0 +1,33 @@ +Feature: Generator spec + + RSpec spec are normally generated alongside other application components. + For instance, `rails generate model` will also generate an RSpec spec file + for the model but you can also use your own generator. See + [customizing your workflow](https://guides.rubyonrails.org/generators.html#customizing-your-workflow) + + @remove-generator-files + Scenario: Use custom generator without '--generator-specs' arg + When I run `bundle exec rails generate generator my_generator` + Then the features should pass + Then the output should contain: + """ + create lib/generators/my_generator + create lib/generators/my_generator/my_generator_generator.rb + create lib/generators/my_generator/USAGE + create lib/generators/my_generator/templates + invoke rspec + """ + + @remove-generator-files + Scenario: Use custom generator with '--generator-specs' arg + When I run `bundle exec rails generate generator my_generator --generator-specs` + Then the features should pass + Then the output should contain: + """ + create lib/generators/my_generator + create lib/generators/my_generator/my_generator_generator.rb + create lib/generators/my_generator/USAGE + create lib/generators/my_generator/templates + invoke rspec + create spec/generator/my_generators_generator_spec.rb + """ diff --git a/features/support/hooks.rb b/features/support/hooks.rb new file mode 100644 index 0000000000..546c96bed1 --- /dev/null +++ b/features/support/hooks.rb @@ -0,0 +1,11 @@ +Before('@remove-generator-files') do + command = <<-COMMAND + rm -f \ + tmp/example_app/lib/generators/my_generator \ + tmp/example_app/lib/generators/my_generator/my_generator_generator.rb \ + tmp/example_app/lib/generators/my_generator/USAGE \ + tmp/example_app/lib/generators/my_generator/templates \ + tmp/example_app/spec/generator/my_generator_spec.rb + COMMAND + system(command) +end