howitzer 1.1.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +32 -0
- data/.travis.yml +1 -4
- data/.yardopts +1 -2
- data/CHANGELOG.md +28 -1
- data/Gemfile +6 -0
- data/LICENSE +1 -1
- data/README.md +55 -85
- data/Rakefile +7 -7
- data/bin/howitzer +56 -31
- data/features/cli_new.feature +162 -79
- data/features/cli_update.feature +114 -21
- data/features/step_definitions/common_steps.rb +29 -9
- data/features/support/env.rb +1 -1
- data/features/support/transformers.rb +2 -2
- data/generators/base_generator.rb +121 -49
- data/generators/config/config_generator.rb +8 -5
- data/generators/config/templates/boot.rb +14 -0
- data/generators/config/templates/capybara.rb +156 -0
- data/generators/config/templates/custom.yml +2 -3
- data/generators/config/templates/default.yml +50 -82
- data/generators/cucumber/cucumber_generator.rb +9 -9
- data/generators/cucumber/templates/common_steps.rb +4 -4
- data/generators/cucumber/templates/cucumber.rake +63 -54
- data/generators/cucumber/templates/env.rb +24 -23
- data/generators/cucumber/templates/transformers.rb +23 -15
- data/generators/emails/emails_generator.rb +4 -2
- data/generators/emails/templates/example_email.rb +4 -4
- data/generators/prerequisites/prerequisites_generator.rb +24 -0
- data/generators/prerequisites/templates/base.rb +22 -0
- data/generators/prerequisites/templates/factory_girl.rb +30 -0
- data/generators/prerequisites/templates/user.rb +7 -0
- data/generators/prerequisites/templates/users.rb +12 -0
- data/generators/root/root_generator.rb +11 -7
- data/generators/root/templates/.rubocop.yml +32 -0
- data/generators/root/templates/Gemfile.erb +27 -0
- data/generators/root/templates/Rakefile +6 -8
- data/generators/rspec/rspec_generator.rb +7 -7
- data/generators/rspec/templates/example_spec.rb +1 -1
- data/generators/rspec/templates/rspec.rake +48 -29
- data/generators/rspec/templates/spec_helper.rb +33 -32
- data/generators/tasks/tasks_generator.rb +4 -2
- data/generators/tasks/templates/common.rake +1 -16
- data/generators/turnip/templates/.rspec +1 -0
- data/generators/turnip/templates/common_steps.rb +25 -0
- data/generators/turnip/templates/example.feature +8 -0
- data/generators/turnip/templates/spec_helper.rb +56 -0
- data/generators/turnip/templates/turnip.rake +61 -0
- data/generators/turnip/templates/turnip_helper.rb +6 -0
- data/generators/turnip/turnip_generator.rb +26 -0
- data/generators/web/templates/example_page.rb +15 -0
- data/generators/web/templates/menu_section.rb +13 -0
- data/generators/web/web_generator.rb +22 -0
- data/howitzer.gemspec +14 -21
- data/lib/howitzer.rb +47 -7
- data/lib/howitzer/cache.rb +70 -0
- data/lib/howitzer/capybara_helpers.rb +194 -0
- data/lib/howitzer/email.rb +96 -104
- data/lib/howitzer/exceptions.rb +10 -6
- data/lib/howitzer/log.rb +120 -0
- data/lib/howitzer/mail_adapters.rb +7 -0
- data/lib/howitzer/mail_adapters/abstract.rb +84 -0
- data/lib/howitzer/mail_adapters/mailgun.rb +115 -0
- data/lib/howitzer/mailgun_api.rb +9 -0
- data/lib/howitzer/mailgun_api/client.rb +79 -0
- data/lib/howitzer/mailgun_api/connector.rb +37 -0
- data/lib/howitzer/mailgun_api/response.rb +28 -0
- data/lib/howitzer/tasks/framework.rake +2 -2
- data/lib/howitzer/utils.rb +7 -1
- data/lib/howitzer/utils/string_extensions.rb +66 -0
- data/lib/howitzer/version.rb +2 -1
- data/lib/howitzer/web.rb +11 -0
- data/lib/howitzer/web/base_section.rb +27 -0
- data/lib/howitzer/web/blank_page.rb +12 -0
- data/lib/howitzer/web/capybara_methods_proxy.rb +29 -0
- data/lib/howitzer/web/element_dsl.rb +109 -0
- data/lib/howitzer/web/iframe_dsl.rb +93 -0
- data/lib/howitzer/web/page.rb +173 -0
- data/lib/howitzer/web/page_dsl.rb +64 -0
- data/lib/howitzer/web/page_validator.rb +118 -0
- data/lib/howitzer/web/section.rb +27 -0
- data/lib/howitzer/web/section_dsl.rb +154 -0
- data/spec/config/custom.yml +10 -1
- data/spec/spec_helper.rb +37 -19
- data/spec/support/generator_helper.rb +12 -11
- data/spec/support/logger_helper.rb +10 -9
- data/spec/support/mailgun_unit_client.rb +52 -44
- data/spec/support/shared_examples/capybara_context_holder.rb +33 -0
- data/spec/support/shared_examples/capybara_methods_proxy.rb +94 -0
- data/spec/support/shared_examples/dynamic_section_methods.rb +35 -0
- data/spec/support/shared_examples/element_dsl.rb +119 -0
- data/spec/unit/generators/base_generator_spec.rb +64 -33
- data/spec/unit/generators/config_generator_spec.rb +11 -7
- data/spec/unit/generators/cucumber_generator_spec.rb +26 -17
- data/spec/unit/generators/emails_generator_spec.rb +10 -6
- data/spec/unit/generators/prerequisites_generator_spec.rb +53 -0
- data/spec/unit/generators/root_generator_spec.rb +50 -13
- data/spec/unit/generators/rspec_generator_spec.rb +9 -9
- data/spec/unit/generators/tasks_generator_spec.rb +6 -6
- data/spec/unit/generators/turnip_generator_spec.rb +52 -0
- data/spec/unit/generators/web_generator_spec.rb +52 -0
- data/spec/unit/lib/cache_spec.rb +85 -0
- data/spec/unit/lib/capybara_helpers_spec.rb +696 -0
- data/spec/unit/lib/email_spec.rb +104 -91
- data/spec/unit/lib/howitzer.rb +31 -0
- data/spec/unit/lib/init_spec.rb +0 -1
- data/spec/unit/lib/log_spec.rb +122 -0
- data/spec/unit/lib/mail_adapters/abstract_spec.rb +62 -0
- data/spec/unit/lib/mail_adapters/mailgun_spec.rb +163 -0
- data/spec/unit/lib/mailgun_api/client_spec.rb +58 -0
- data/spec/unit/lib/mailgun_api/connector_spec.rb +54 -0
- data/spec/unit/lib/mailgun_api/response_spec.rb +28 -0
- data/spec/unit/lib/utils/string_extensions_spec.rb +77 -0
- data/spec/unit/lib/web/base_section_spec.rb +41 -0
- data/spec/unit/lib/web/element_dsl_spec.rb +17 -0
- data/spec/unit/lib/web/iframe_dsl_spec.rb +99 -0
- data/spec/unit/lib/web/page_dsl_spec.rb +52 -0
- data/spec/unit/lib/web/page_spec.rb +304 -0
- data/spec/unit/lib/web/page_validator_spec.rb +218 -0
- data/spec/unit/lib/web/section_dsl_spec.rb +165 -0
- data/spec/unit/lib/web/section_spec.rb +61 -0
- data/spec/unit/version_spec.rb +1 -1
- metadata +116 -203
- data/GETTING_STARTED.md +0 -774
- data/generators/cucumber/templates/cucumber.yml +0 -10
- data/generators/pages/pages_generator.rb +0 -21
- data/generators/pages/templates/example_menu.rb +0 -15
- data/generators/pages/templates/example_page.rb +0 -15
- data/generators/root/templates/Gemfile +0 -7
- data/generators/root/templates/boot.rb +0 -10
- data/lib/howitzer/blank_page.rb +0 -6
- data/lib/howitzer/capybara/dsl_ex.rb +0 -15
- data/lib/howitzer/capybara/settings.rb +0 -343
- data/lib/howitzer/helpers.rb +0 -230
- data/lib/howitzer/init.rb +0 -1
- data/lib/howitzer/mailgun/client.rb +0 -65
- data/lib/howitzer/mailgun/connector.rb +0 -34
- data/lib/howitzer/mailgun/response.rb +0 -28
- data/lib/howitzer/patches/rawler_patched.rb +0 -86
- data/lib/howitzer/settings.rb +0 -27
- data/lib/howitzer/utils/data_generator/data_storage.rb +0 -88
- data/lib/howitzer/utils/data_generator/gen.rb +0 -135
- data/lib/howitzer/utils/locator_store.rb +0 -217
- data/lib/howitzer/utils/log.rb +0 -139
- data/lib/howitzer/utils/page_validator.rb +0 -133
- data/lib/howitzer/vendor/firebug-1.12.1-fx.xpi +0 -0
- data/lib/howitzer/vendor/firepath-0.9.7-fx.xpi +0 -0
- data/lib/howitzer/web_page.rb +0 -253
- data/spec/active_resource.rb +0 -0
- data/spec/config/default.yml +0 -26
- data/spec/support/boot_helper.rb +0 -15
- data/spec/unit/generators/pages_generator_spec.rb +0 -33
- data/spec/unit/lib/capybara/dsl_ex_spec.rb +0 -60
- data/spec/unit/lib/capybara/settings_spec.rb +0 -441
- data/spec/unit/lib/helpers_spec.rb +0 -1129
- data/spec/unit/lib/mailgun/client_spec.rb +0 -36
- data/spec/unit/lib/mailgun/connector_spec.rb +0 -70
- data/spec/unit/lib/mailgun/response_spec.rb +0 -28
- data/spec/unit/lib/settings_spec.rb +0 -17
- data/spec/unit/lib/utils/data_generator/data_storage_spec.rb +0 -80
- data/spec/unit/lib/utils/data_generator/gen_spec.rb +0 -90
- data/spec/unit/lib/utils/locator_store_spec.rb +0 -157
- data/spec/unit/lib/utils/log_spec.rb +0 -107
- data/spec/unit/lib/utils/page_validator_spec.rb +0 -265
- data/spec/unit/lib/web_page_spec.rb +0 -346
data/features/cli_new.feature
CHANGED
|
@@ -13,7 +13,7 @@ Feature: Howitzer CLI New Project Creation
|
|
|
13
13
|
When I run `howitzer new test_automation`
|
|
14
14
|
Then the output should contain exactly:
|
|
15
15
|
"""
|
|
16
|
-
error: Provide --cucumber
|
|
16
|
+
error: Provide --cucumber, --rspec or --turnip option
|
|
17
17
|
|
|
18
18
|
"""
|
|
19
19
|
And the exit status should be 64
|
|
@@ -40,6 +40,7 @@ Feature: Howitzer CLI New Project Creation
|
|
|
40
40
|
COMMAND OPTIONS
|
|
41
41
|
-c, --cucumber - Integrate Cucumber
|
|
42
42
|
-r, --rspec - Integrate Rspec
|
|
43
|
+
-t, --turnip - Integrate Turnip
|
|
43
44
|
|
|
44
45
|
"""
|
|
45
46
|
And the exit status should be 0
|
|
@@ -55,20 +56,27 @@ Feature: Howitzer CLI New Project Creation
|
|
|
55
56
|
* New project directory creation ...
|
|
56
57
|
Created new './test_automation' folder
|
|
57
58
|
* Config files generation ...
|
|
59
|
+
Added 'config/boot.rb' file
|
|
58
60
|
Added 'config/custom.yml' file
|
|
61
|
+
Added 'config/capybara.rb' file
|
|
59
62
|
Added 'config/default.yml' file
|
|
60
63
|
* PageOriented pattern structure generation ...
|
|
61
|
-
Added 'pages/example_page.rb' file
|
|
62
|
-
Added '
|
|
64
|
+
Added 'web/pages/example_page.rb' file
|
|
65
|
+
Added 'web/sections/menu_section.rb' file
|
|
63
66
|
* Base rake task generation ...
|
|
64
67
|
Added 'tasks/common.rake' file
|
|
65
68
|
* Email example generation ...
|
|
66
69
|
Added '/emails/example_email.rb' file
|
|
67
70
|
* Root files generation ...
|
|
68
71
|
Added '.gitignore' file
|
|
69
|
-
Added '
|
|
72
|
+
Added '.rubocop.yml' file
|
|
70
73
|
Added 'Rakefile' file
|
|
71
|
-
Added '
|
|
74
|
+
Added template 'Gemfile.erb' with params '{:r=>true, :rspec=>true, :c=>false, :cucumber=>false, :t=>false, :turnip=>false}' to destination 'Gemfile'
|
|
75
|
+
* Pre-requisites integration to the framework ...
|
|
76
|
+
Added 'prerequisites/factory_girl.rb' file
|
|
77
|
+
Added 'prerequisites/factories/users.rb' file
|
|
78
|
+
Added 'prerequisites/models/base.rb' file
|
|
79
|
+
Added 'prerequisites/models/user.rb' file
|
|
72
80
|
* RSpec integration to the framework ...
|
|
73
81
|
Added 'spec/spec_helper.rb' file
|
|
74
82
|
Added 'spec/example_spec.rb' file
|
|
@@ -77,19 +85,25 @@ Feature: Howitzer CLI New Project Creation
|
|
|
77
85
|
"""
|
|
78
86
|
Then a directory named "test_automation" should exist
|
|
79
87
|
Then the following files should exist:
|
|
80
|
-
| test_automation/config/
|
|
81
|
-
| test_automation/config/
|
|
82
|
-
| test_automation/
|
|
83
|
-
| test_automation/
|
|
84
|
-
| test_automation/
|
|
85
|
-
| test_automation/
|
|
86
|
-
| test_automation/
|
|
87
|
-
| test_automation/
|
|
88
|
-
| test_automation/
|
|
89
|
-
| test_automation/
|
|
90
|
-
| test_automation/
|
|
91
|
-
| test_automation/
|
|
92
|
-
| test_automation
|
|
88
|
+
| test_automation/config/boot.rb |
|
|
89
|
+
| test_automation/config/custom.yml |
|
|
90
|
+
| test_automation/config/capybara.rb |
|
|
91
|
+
| test_automation/config/default.yml |
|
|
92
|
+
| test_automation/emails/example_email.rb |
|
|
93
|
+
| test_automation/web/sections/menu_section.rb |
|
|
94
|
+
| test_automation/web/pages/example_page.rb |
|
|
95
|
+
| test_automation/prerequisites/factory_girl.rb |
|
|
96
|
+
| test_automation/prerequisites/factories/users.rb |
|
|
97
|
+
| test_automation/prerequisites/models/base.rb |
|
|
98
|
+
| test_automation/prerequisites/models/user.rb |
|
|
99
|
+
| test_automation/spec/example_spec.rb |
|
|
100
|
+
| test_automation/spec/spec_helper.rb |
|
|
101
|
+
| test_automation/tasks/common.rake |
|
|
102
|
+
| test_automation/tasks/rspec.rake |
|
|
103
|
+
| test_automation/Gemfile |
|
|
104
|
+
| test_automation/Rakefile |
|
|
105
|
+
| test_automation/.gitignore |
|
|
106
|
+
| test_automation/.rubocop.yml |
|
|
93
107
|
And the exit status should be 0
|
|
94
108
|
Examples:
|
|
95
109
|
| option |
|
|
@@ -103,117 +117,173 @@ Feature: Howitzer CLI New Project Creation
|
|
|
103
117
|
* New project directory creation ...
|
|
104
118
|
Created new './test_automation' folder
|
|
105
119
|
* Config files generation ...
|
|
120
|
+
Added 'config/boot.rb' file
|
|
106
121
|
Added 'config/custom.yml' file
|
|
122
|
+
Added 'config/capybara.rb' file
|
|
107
123
|
Added 'config/default.yml' file
|
|
108
124
|
* PageOriented pattern structure generation ...
|
|
109
|
-
Added 'pages/example_page.rb' file
|
|
110
|
-
Added '
|
|
125
|
+
Added 'web/pages/example_page.rb' file
|
|
126
|
+
Added 'web/sections/menu_section.rb' file
|
|
111
127
|
* Base rake task generation ...
|
|
112
128
|
Added 'tasks/common.rake' file
|
|
113
129
|
* Email example generation ...
|
|
114
130
|
Added '/emails/example_email.rb' file
|
|
115
131
|
* Root files generation ...
|
|
116
132
|
Added '.gitignore' file
|
|
117
|
-
Added '
|
|
133
|
+
Added '.rubocop.yml' file
|
|
118
134
|
Added 'Rakefile' file
|
|
119
|
-
Added '
|
|
135
|
+
Added template 'Gemfile.erb' with params '{:c=>true, :cucumber=>true, :r=>false, :rspec=>false, :t=>false, :turnip=>false}' to destination 'Gemfile'
|
|
136
|
+
* Pre-requisites integration to the framework ...
|
|
137
|
+
Added 'prerequisites/factory_girl.rb' file
|
|
138
|
+
Added 'prerequisites/factories/users.rb' file
|
|
139
|
+
Added 'prerequisites/models/base.rb' file
|
|
140
|
+
Added 'prerequisites/models/user.rb' file
|
|
120
141
|
* Cucumber integration to the framework ...
|
|
121
142
|
Added 'features/step_definitions/common_steps.rb' file
|
|
122
143
|
Added 'features/support/env.rb' file
|
|
123
144
|
Added 'features/support/transformers.rb' file
|
|
124
145
|
Added 'features/example.feature' file
|
|
125
146
|
Added 'tasks/cucumber.rake' file
|
|
126
|
-
Added 'config/cucumber.yml' file
|
|
127
147
|
|
|
128
148
|
"""
|
|
129
149
|
Then a directory named "test_automation" should exist
|
|
130
150
|
Then the following files should exist:
|
|
131
|
-
| test_automation/config/
|
|
151
|
+
| test_automation/config/boot.rb |
|
|
132
152
|
| test_automation/config/custom.yml |
|
|
153
|
+
| test_automation/config/capybara.rb |
|
|
133
154
|
| test_automation/config/default.yml |
|
|
134
155
|
| test_automation/emails/example_email.rb |
|
|
135
156
|
| test_automation/features/step_definitions/common_steps.rb |
|
|
136
157
|
| test_automation/features/support/env.rb |
|
|
137
158
|
| test_automation/features/support/transformers.rb |
|
|
138
159
|
| test_automation/features/example.feature |
|
|
139
|
-
| test_automation/
|
|
140
|
-
| test_automation/pages/example_page.rb
|
|
160
|
+
| test_automation/web/sections/menu_section.rb |
|
|
161
|
+
| test_automation/web/pages/example_page.rb |
|
|
162
|
+
| test_automation/prerequisites/factory_girl.rb |
|
|
163
|
+
| test_automation/prerequisites/factories/users.rb |
|
|
164
|
+
| test_automation/prerequisites/models/base.rb |
|
|
165
|
+
| test_automation/prerequisites/models/user.rb |
|
|
141
166
|
| test_automation/tasks/common.rake |
|
|
142
167
|
| test_automation/tasks/cucumber.rake |
|
|
143
|
-
| test_automation/boot.rb |
|
|
144
168
|
| test_automation/Gemfile |
|
|
145
169
|
| test_automation/Rakefile |
|
|
146
170
|
| test_automation/.gitignore |
|
|
171
|
+
| test_automation/.rubocop.yml |
|
|
147
172
|
And the exit status should be 0
|
|
148
173
|
Examples:
|
|
149
174
|
| option |
|
|
150
175
|
| --cucumber |
|
|
151
176
|
| -c |
|
|
152
177
|
|
|
153
|
-
Scenario Outline: Run with new command with argument and with
|
|
154
|
-
When I run `howitzer new test_automation <
|
|
178
|
+
Scenario Outline: Run with new command with argument and with turnip option
|
|
179
|
+
When I run `howitzer new test_automation <option>`
|
|
155
180
|
Then the output should contain exactly:
|
|
156
181
|
"""
|
|
157
182
|
* New project directory creation ...
|
|
158
183
|
Created new './test_automation' folder
|
|
159
184
|
* Config files generation ...
|
|
185
|
+
Added 'config/boot.rb' file
|
|
160
186
|
Added 'config/custom.yml' file
|
|
187
|
+
Added 'config/capybara.rb' file
|
|
161
188
|
Added 'config/default.yml' file
|
|
162
189
|
* PageOriented pattern structure generation ...
|
|
163
|
-
Added 'pages/example_page.rb' file
|
|
164
|
-
Added '
|
|
190
|
+
Added 'web/pages/example_page.rb' file
|
|
191
|
+
Added 'web/sections/menu_section.rb' file
|
|
165
192
|
* Base rake task generation ...
|
|
166
193
|
Added 'tasks/common.rake' file
|
|
167
194
|
* Email example generation ...
|
|
168
195
|
Added '/emails/example_email.rb' file
|
|
169
196
|
* Root files generation ...
|
|
170
197
|
Added '.gitignore' file
|
|
171
|
-
Added '
|
|
198
|
+
Added '.rubocop.yml' file
|
|
172
199
|
Added 'Rakefile' file
|
|
173
|
-
Added '
|
|
174
|
-
*
|
|
175
|
-
Added '
|
|
176
|
-
Added '
|
|
177
|
-
Added '
|
|
178
|
-
Added '
|
|
179
|
-
|
|
180
|
-
Added '
|
|
181
|
-
* RSpec integration to the framework ...
|
|
200
|
+
Added template 'Gemfile.erb' with params '{:t=>true, :turnip=>true, :c=>false, :cucumber=>false, :r=>false, :rspec=>false}' to destination 'Gemfile'
|
|
201
|
+
* Pre-requisites integration to the framework ...
|
|
202
|
+
Added 'prerequisites/factory_girl.rb' file
|
|
203
|
+
Added 'prerequisites/factories/users.rb' file
|
|
204
|
+
Added 'prerequisites/models/base.rb' file
|
|
205
|
+
Added 'prerequisites/models/user.rb' file
|
|
206
|
+
* Turnip integration to the framework ...
|
|
207
|
+
Added '.rspec' file
|
|
182
208
|
Added 'spec/spec_helper.rb' file
|
|
183
|
-
Added 'spec/
|
|
184
|
-
Added '
|
|
209
|
+
Added 'spec/turnip_helper.rb' file
|
|
210
|
+
Added 'spec/acceptance/example.feature' file
|
|
211
|
+
Added 'spec/steps/common_steps.rb' file
|
|
212
|
+
Added 'tasks/turnip.rake' file
|
|
185
213
|
|
|
186
214
|
"""
|
|
187
215
|
Then a directory named "test_automation" should exist
|
|
188
216
|
Then the following files should exist:
|
|
189
|
-
| test_automation/config/
|
|
217
|
+
| test_automation/config/boot.rb |
|
|
190
218
|
| test_automation/config/custom.yml |
|
|
219
|
+
| test_automation/config/capybara.rb |
|
|
191
220
|
| test_automation/config/default.yml |
|
|
192
221
|
| test_automation/emails/example_email.rb |
|
|
193
|
-
| test_automation/
|
|
194
|
-
| test_automation/
|
|
195
|
-
| test_automation/features/support/transformers.rb |
|
|
196
|
-
| test_automation/features/example.feature |
|
|
197
|
-
| test_automation/pages/example_menu.rb |
|
|
198
|
-
| test_automation/pages/example_page.rb |
|
|
199
|
-
| test_automation/spec/spec_helper.rb |
|
|
200
|
-
| test_automation/spec/example_spec.rb |
|
|
222
|
+
| test_automation/web/sections/menu_section.rb |
|
|
223
|
+
| test_automation/web/pages/example_page.rb |
|
|
201
224
|
| test_automation/tasks/common.rake |
|
|
202
|
-
| test_automation/tasks/
|
|
203
|
-
| test_automation/
|
|
204
|
-
| test_automation/
|
|
225
|
+
| test_automation/tasks/turnip.rake |
|
|
226
|
+
| test_automation/spec/spec_helper.rb |
|
|
227
|
+
| test_automation/spec/turnip_helper.rb |
|
|
228
|
+
| test_automation/spec/acceptance/example.feature |
|
|
229
|
+
| test_automation/spec/steps/common_steps.rb |
|
|
230
|
+
| test_automation/.rspec |
|
|
205
231
|
| test_automation/Gemfile |
|
|
206
232
|
| test_automation/Rakefile |
|
|
207
233
|
| test_automation/.gitignore |
|
|
234
|
+
| test_automation/.rubocop.yml |
|
|
208
235
|
And the exit status should be 0
|
|
236
|
+
Examples:
|
|
237
|
+
| option |
|
|
238
|
+
| --turnip |
|
|
239
|
+
| -t |
|
|
240
|
+
|
|
241
|
+
Scenario Outline: Run with new command with argument and option
|
|
242
|
+
When I run `howitzer new test_automation <options>`
|
|
243
|
+
Then the output should contain exactly:
|
|
244
|
+
"""
|
|
245
|
+
error: Provide --cucumber, --rspec or --turnip option
|
|
246
|
+
|
|
247
|
+
"""
|
|
248
|
+
And the exit status should be 64
|
|
209
249
|
Examples:
|
|
210
|
-
| options
|
|
211
|
-
| --cucumber --rspec
|
|
212
|
-
| --rspec --cucumber
|
|
213
|
-
|
|
|
214
|
-
|
|
|
215
|
-
|
|
|
216
|
-
|
|
|
250
|
+
| options |
|
|
251
|
+
| --cucumber --rspec |
|
|
252
|
+
| --rspec --cucumber |
|
|
253
|
+
| --cucumber --turnip |
|
|
254
|
+
| --turnip --cucumber |
|
|
255
|
+
| --rspec --turnip |
|
|
256
|
+
| --turnip --rspec |
|
|
257
|
+
| -c -t |
|
|
258
|
+
| -t -c |
|
|
259
|
+
| -c -r |
|
|
260
|
+
| -r -c |
|
|
261
|
+
| -r -t |
|
|
262
|
+
| -t -r |
|
|
263
|
+
| -cr |
|
|
264
|
+
| -rc |
|
|
265
|
+
| -ct |
|
|
266
|
+
| -tc |
|
|
267
|
+
| -rt |
|
|
268
|
+
| -tr |
|
|
269
|
+
| --cucumber --rspec --turnip |
|
|
270
|
+
| --cucumber --turnip --rspec |
|
|
271
|
+
| --rspec --cucumber --turnip |
|
|
272
|
+
| --rspec --turnip --cucumber |
|
|
273
|
+
| --turnip --cucumber --rspec |
|
|
274
|
+
| --turnip --rspec --cucumber |
|
|
275
|
+
| -c -r -t |
|
|
276
|
+
| -c -t -r |
|
|
277
|
+
| -r -c -t |
|
|
278
|
+
| -r -t -c |
|
|
279
|
+
| -t -c -r |
|
|
280
|
+
| -t -r -c |
|
|
281
|
+
| -crt |
|
|
282
|
+
| -ctr |
|
|
283
|
+
| -rct |
|
|
284
|
+
| -rtc |
|
|
285
|
+
| -tcr |
|
|
286
|
+
| -trc |
|
|
217
287
|
|
|
218
288
|
Scenario Outline: Run with new command with options and with rspec argument
|
|
219
289
|
When I run `howitzer new <option> test_automation`
|
|
@@ -222,20 +292,27 @@ Feature: Howitzer CLI New Project Creation
|
|
|
222
292
|
* New project directory creation ...
|
|
223
293
|
Created new './test_automation' folder
|
|
224
294
|
* Config files generation ...
|
|
295
|
+
Added 'config/boot.rb' file
|
|
225
296
|
Added 'config/custom.yml' file
|
|
297
|
+
Added 'config/capybara.rb' file
|
|
226
298
|
Added 'config/default.yml' file
|
|
227
299
|
* PageOriented pattern structure generation ...
|
|
228
|
-
Added 'pages/example_page.rb' file
|
|
229
|
-
Added '
|
|
300
|
+
Added 'web/pages/example_page.rb' file
|
|
301
|
+
Added 'web/sections/menu_section.rb' file
|
|
230
302
|
* Base rake task generation ...
|
|
231
303
|
Added 'tasks/common.rake' file
|
|
232
304
|
* Email example generation ...
|
|
233
305
|
Added '/emails/example_email.rb' file
|
|
234
306
|
* Root files generation ...
|
|
235
307
|
Added '.gitignore' file
|
|
236
|
-
Added '
|
|
308
|
+
Added '.rubocop.yml' file
|
|
237
309
|
Added 'Rakefile' file
|
|
238
|
-
Added '
|
|
310
|
+
Added template 'Gemfile.erb' with params '{:r=>true, :rspec=>true, :c=>false, :cucumber=>false, :t=>false, :turnip=>false}' to destination 'Gemfile'
|
|
311
|
+
* Pre-requisites integration to the framework ...
|
|
312
|
+
Added 'prerequisites/factory_girl.rb' file
|
|
313
|
+
Added 'prerequisites/factories/users.rb' file
|
|
314
|
+
Added 'prerequisites/models/base.rb' file
|
|
315
|
+
Added 'prerequisites/models/user.rb' file
|
|
239
316
|
* RSpec integration to the framework ...
|
|
240
317
|
Added 'spec/spec_helper.rb' file
|
|
241
318
|
Added 'spec/example_spec.rb' file
|
|
@@ -244,19 +321,25 @@ Feature: Howitzer CLI New Project Creation
|
|
|
244
321
|
"""
|
|
245
322
|
Then a directory named "test_automation" should exist
|
|
246
323
|
Then the following files should exist:
|
|
247
|
-
| test_automation/config/
|
|
248
|
-
| test_automation/config/
|
|
249
|
-
| test_automation/
|
|
250
|
-
| test_automation/
|
|
251
|
-
| test_automation/
|
|
252
|
-
| test_automation/
|
|
253
|
-
| test_automation/
|
|
254
|
-
| test_automation/
|
|
255
|
-
| test_automation/
|
|
256
|
-
| test_automation/
|
|
257
|
-
| test_automation/
|
|
258
|
-
| test_automation/
|
|
259
|
-
| test_automation
|
|
324
|
+
| test_automation/config/boot.rb |
|
|
325
|
+
| test_automation/config/custom.yml |
|
|
326
|
+
| test_automation/config/capybara.rb |
|
|
327
|
+
| test_automation/config/default.yml |
|
|
328
|
+
| test_automation/emails/example_email.rb |
|
|
329
|
+
| test_automation/web/sections/menu_section.rb |
|
|
330
|
+
| test_automation/web/pages/example_page.rb |
|
|
331
|
+
| test_automation/prerequisites/factory_girl.rb |
|
|
332
|
+
| test_automation/prerequisites/factories/users.rb |
|
|
333
|
+
| test_automation/prerequisites/models/base.rb |
|
|
334
|
+
| test_automation/prerequisites/models/user.rb |
|
|
335
|
+
| test_automation/spec/example_spec.rb |
|
|
336
|
+
| test_automation/spec/spec_helper.rb |
|
|
337
|
+
| test_automation/tasks/common.rake |
|
|
338
|
+
| test_automation/tasks/rspec.rake |
|
|
339
|
+
| test_automation/Gemfile |
|
|
340
|
+
| test_automation/Rakefile |
|
|
341
|
+
| test_automation/.gitignore |
|
|
342
|
+
| test_automation/.rubocop.yml |
|
|
260
343
|
And the exit status should be 0
|
|
261
344
|
Examples:
|
|
262
345
|
| option |
|
data/features/cli_update.feature
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Feature: Howitzer CLI Update Existing Project
|
|
2
2
|
|
|
3
|
-
Scenario: Run with update command when project present
|
|
4
|
-
Given created old howitzer project
|
|
3
|
+
Scenario: Run with update command when rspec based project present
|
|
4
|
+
Given created old howitzer project based on rspec
|
|
5
5
|
When I run `howitzer update` interactively
|
|
6
6
|
And I type "y"
|
|
7
7
|
And I type "n"
|
|
@@ -9,22 +9,29 @@ Feature: Howitzer CLI Update Existing Project
|
|
|
9
9
|
Then the output should contain:
|
|
10
10
|
"""
|
|
11
11
|
* Config files generation ...
|
|
12
|
+
Identical 'config/boot.rb' file
|
|
12
13
|
Identical 'config/custom.yml' file
|
|
14
|
+
Identical 'config/capybara.rb' file
|
|
13
15
|
Added 'config/default.yml' file
|
|
16
|
+
* PageOriented pattern structure generation ...
|
|
17
|
+
Identical 'web/pages/example_page.rb' file
|
|
18
|
+
Identical 'web/sections/menu_section.rb' file
|
|
19
|
+
* Base rake task generation ...
|
|
20
|
+
Identical 'tasks/common.rake' file
|
|
21
|
+
* Email example generation ...
|
|
22
|
+
Identical '/emails/example_email.rb' file
|
|
23
|
+
* Pre-requisites integration to the framework ...
|
|
24
|
+
Identical 'prerequisites/factory_girl.rb' file
|
|
25
|
+
Identical 'prerequisites/factories/users.rb' file
|
|
26
|
+
Identical 'prerequisites/models/base.rb' file
|
|
27
|
+
Identical 'prerequisites/models/user.rb' file
|
|
14
28
|
* Root files generation ...
|
|
15
29
|
Added '.gitignore' file
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
Conflict with '
|
|
20
|
-
Overwrite '
|
|
21
|
-
* Cucumber integration to the framework ...
|
|
22
|
-
Identical 'features/step_definitions/common_steps.rb' file
|
|
23
|
-
Identical 'features/support/env.rb' file
|
|
24
|
-
Identical 'features/support/transformers.rb' file
|
|
25
|
-
Identical 'features/example.feature' file
|
|
26
|
-
Identical 'tasks/cucumber.rake' file
|
|
27
|
-
Identical 'config/cucumber.yml' file
|
|
30
|
+
Added '.rubocop.yml' file
|
|
31
|
+
Conflict with 'Rakefile' file
|
|
32
|
+
Overwrite 'Rakefile' file? [Yn]: Forced 'Rakefile' file
|
|
33
|
+
Conflict with 'Gemfile' template
|
|
34
|
+
Overwrite 'Gemfile' template? [Yn]: Skipped 'Gemfile' template
|
|
28
35
|
* RSpec integration to the framework ...
|
|
29
36
|
Identical 'spec/spec_helper.rb' file
|
|
30
37
|
Identical 'spec/example_spec.rb' file
|
|
@@ -36,25 +43,111 @@ Feature: Howitzer CLI Update Existing Project
|
|
|
36
43
|
Then the output should contain:
|
|
37
44
|
"""
|
|
38
45
|
* Config files generation ...
|
|
46
|
+
Identical 'config/boot.rb' file
|
|
39
47
|
Identical 'config/custom.yml' file
|
|
48
|
+
Identical 'config/capybara.rb' file
|
|
40
49
|
Identical 'config/default.yml' file
|
|
50
|
+
* PageOriented pattern structure generation ...
|
|
51
|
+
Identical 'web/pages/example_page.rb' file
|
|
52
|
+
Identical 'web/sections/menu_section.rb' file
|
|
53
|
+
* Base rake task generation ...
|
|
54
|
+
Identical 'tasks/common.rake' file
|
|
55
|
+
* Email example generation ...
|
|
56
|
+
Identical '/emails/example_email.rb' file
|
|
57
|
+
* Pre-requisites integration to the framework ...
|
|
58
|
+
Identical 'prerequisites/factory_girl.rb' file
|
|
59
|
+
Identical 'prerequisites/factories/users.rb' file
|
|
60
|
+
Identical 'prerequisites/models/base.rb' file
|
|
61
|
+
Identical 'prerequisites/models/user.rb' file
|
|
41
62
|
* Root files generation ...
|
|
42
63
|
Identical '.gitignore' file
|
|
43
|
-
Identical '
|
|
64
|
+
Identical '.rubocop.yml' file
|
|
44
65
|
Identical 'Rakefile' file
|
|
45
|
-
Conflict with '
|
|
46
|
-
Overwrite '
|
|
66
|
+
Conflict with 'Gemfile' template
|
|
67
|
+
Overwrite 'Gemfile' template? [Yn]: Forced 'Gemfile' template
|
|
68
|
+
* RSpec integration to the framework ...
|
|
69
|
+
Identical 'spec/spec_helper.rb' file
|
|
70
|
+
Identical 'spec/example_spec.rb' file
|
|
71
|
+
Identical 'tasks/rspec.rake' file
|
|
72
|
+
"""
|
|
73
|
+
And the exit status should be 0
|
|
74
|
+
|
|
75
|
+
Scenario: Run with update command when cucumber based project present
|
|
76
|
+
Given created old howitzer project based on cucumber
|
|
77
|
+
When I run `howitzer update` interactively
|
|
78
|
+
And I type "y"
|
|
79
|
+
And I type "n"
|
|
80
|
+
And I type "i"
|
|
81
|
+
Then the output should contain:
|
|
82
|
+
"""
|
|
83
|
+
* Config files generation ...
|
|
84
|
+
Identical 'config/boot.rb' file
|
|
85
|
+
Identical 'config/custom.yml' file
|
|
86
|
+
Identical 'config/capybara.rb' file
|
|
87
|
+
Added 'config/default.yml' file
|
|
88
|
+
* PageOriented pattern structure generation ...
|
|
89
|
+
Identical 'web/pages/example_page.rb' file
|
|
90
|
+
Identical 'web/sections/menu_section.rb' file
|
|
91
|
+
* Base rake task generation ...
|
|
92
|
+
Identical 'tasks/common.rake' file
|
|
93
|
+
* Email example generation ...
|
|
94
|
+
Identical '/emails/example_email.rb' file
|
|
95
|
+
* Pre-requisites integration to the framework ...
|
|
96
|
+
Identical 'prerequisites/factory_girl.rb' file
|
|
97
|
+
Identical 'prerequisites/factories/users.rb' file
|
|
98
|
+
Identical 'prerequisites/models/base.rb' file
|
|
99
|
+
Identical 'prerequisites/models/user.rb' file
|
|
100
|
+
* Root files generation ...
|
|
101
|
+
Added '.gitignore' file
|
|
102
|
+
Added '.rubocop.yml' file
|
|
103
|
+
Conflict with 'Rakefile' file
|
|
104
|
+
Overwrite 'Rakefile' file? [Yn]: Forced 'Rakefile' file
|
|
105
|
+
Conflict with 'Gemfile' template
|
|
106
|
+
Overwrite 'Gemfile' template? [Yn]: Skipped 'Gemfile' template
|
|
47
107
|
* Cucumber integration to the framework ...
|
|
48
108
|
Identical 'features/step_definitions/common_steps.rb' file
|
|
49
109
|
Identical 'features/support/env.rb' file
|
|
50
110
|
Identical 'features/support/transformers.rb' file
|
|
51
111
|
Identical 'features/example.feature' file
|
|
52
112
|
Identical 'tasks/cucumber.rake' file
|
|
53
|
-
|
|
54
|
-
|
|
113
|
+
"""
|
|
114
|
+
And the exit status should be 0
|
|
115
|
+
|
|
116
|
+
Scenario: Run with update command when turnip based project present
|
|
117
|
+
Given created old howitzer project based on turnip
|
|
118
|
+
When I run `howitzer update` interactively
|
|
119
|
+
And I type "y"
|
|
120
|
+
Then the output should contain:
|
|
121
|
+
"""
|
|
122
|
+
* Config files generation ...
|
|
123
|
+
Identical 'config/boot.rb' file
|
|
124
|
+
Identical 'config/custom.yml' file
|
|
125
|
+
Identical 'config/capybara.rb' file
|
|
126
|
+
Identical 'config/default.yml' file
|
|
127
|
+
* PageOriented pattern structure generation ...
|
|
128
|
+
Identical 'web/pages/example_page.rb' file
|
|
129
|
+
Identical 'web/sections/menu_section.rb' file
|
|
130
|
+
* Base rake task generation ...
|
|
131
|
+
Identical 'tasks/common.rake' file
|
|
132
|
+
* Email example generation ...
|
|
133
|
+
Identical '/emails/example_email.rb' file
|
|
134
|
+
* Pre-requisites integration to the framework ...
|
|
135
|
+
Identical 'prerequisites/factory_girl.rb' file
|
|
136
|
+
Identical 'prerequisites/factories/users.rb' file
|
|
137
|
+
Identical 'prerequisites/models/base.rb' file
|
|
138
|
+
Identical 'prerequisites/models/user.rb' file
|
|
139
|
+
* Root files generation ...
|
|
140
|
+
Added '.gitignore' file
|
|
141
|
+
Added '.rubocop.yml' file
|
|
142
|
+
Identical 'Rakefile' file
|
|
143
|
+
Conflict with 'Gemfile' template
|
|
144
|
+
Overwrite 'Gemfile' template? [Yn]: Forced 'Gemfile' template
|
|
145
|
+
* Turnip integration to the framework ...
|
|
146
|
+
Added '.rspec' file
|
|
55
147
|
Identical 'spec/spec_helper.rb' file
|
|
56
|
-
Identical 'spec/
|
|
57
|
-
Identical '
|
|
148
|
+
Identical 'spec/turnip_helper.rb' file
|
|
149
|
+
Identical 'spec/acceptance/example.feature' file
|
|
150
|
+
Identical 'spec/steps/common_steps.rb' file
|
|
58
151
|
"""
|
|
59
152
|
And the exit status should be 0
|
|
60
153
|
|