Skip to content

Commit 3553463

Browse files
committed
Add feature spec when generating generator
The before hook help us to redo the test and clean the files
1 parent 2ae4d21 commit 3553463

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
Feature: Generator spec
2+
3+
RSpec spec are normally generated alongside other application components.
4+
For instance, `rails generate model` will also generate an RSpec spec file
5+
for the model but you can also use your own generator. See
6+
[customizing your workflow](https://guides.rubyonrails.org/generators.html#customizing-your-workflow)
7+
8+
@remove-generator-files
9+
Scenario: Use custom generator without '--generator-specs' arg
10+
When I run `bundle exec rails generate generator my_generator`
11+
Then the features should pass
12+
Then the output should contain:
13+
"""
14+
create lib/generators/my_generator
15+
create lib/generators/my_generator/my_generator_generator.rb
16+
create lib/generators/my_generator/USAGE
17+
create lib/generators/my_generator/templates
18+
invoke rspec
19+
"""
20+
21+
@remove-generator-files
22+
Scenario: Use custom generator with '--generator-specs' arg
23+
When I run `bundle exec rails generate generator my_generator --generator-specs`
24+
Then the features should pass
25+
Then the output should contain:
26+
"""
27+
create lib/generators/my_generator
28+
create lib/generators/my_generator/my_generator_generator.rb
29+
create lib/generators/my_generator/USAGE
30+
create lib/generators/my_generator/templates
31+
invoke rspec
32+
create spec/generator/my_generators_generator_spec.rb
33+
"""

features/support/hooks.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Before('@remove-generator-files') do
2+
command = <<-COMMAND
3+
rm -f \
4+
tmp/example_app/lib/generators/my_generator \
5+
tmp/example_app/lib/generators/my_generator/my_generator_generator.rb \
6+
tmp/example_app/lib/generators/my_generator/USAGE \
7+
tmp/example_app/lib/generators/my_generator/templates \
8+
tmp/example_app/spec/generator/my_generator_spec.rb
9+
COMMAND
10+
system(command)
11+
end

0 commit comments

Comments
 (0)