howitzer 2.1.1 → 2.4.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.
Files changed (129) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +44 -1
  3. data/LICENSE +1 -1
  4. data/README.md +19 -17
  5. data/generators/base_generator.rb +5 -7
  6. data/generators/config/config_generator.rb +3 -4
  7. data/generators/config/templates/boot.rb +2 -2
  8. data/generators/config/templates/capybara.rb +4 -5
  9. data/generators/config/templates/default.yml +21 -11
  10. data/generators/config/templates/drivers/browserstack.rb +31 -4
  11. data/generators/config/templates/drivers/crossbrowsertesting.rb +9 -11
  12. data/generators/config/templates/drivers/headless_chrome.rb +1 -1
  13. data/generators/config/templates/drivers/headless_firefox.rb +23 -0
  14. data/generators/config/templates/drivers/lambdatest.rb +30 -0
  15. data/generators/config/templates/drivers/sauce.rb +30 -2
  16. data/generators/config/templates/drivers/selenium.rb +1 -1
  17. data/generators/config/templates/drivers/selenium_grid.rb +3 -3
  18. data/generators/config/templates/drivers/testingbot.rb +29 -2
  19. data/generators/cucumber/templates/cuke_sniffer.rake +2 -2
  20. data/generators/cucumber/templates/env.rb +8 -0
  21. data/generators/cucumber/templates/hooks.rb +9 -3
  22. data/generators/cucumber/templates/transformers.rb +1 -1
  23. data/generators/prerequisites/templates/factory_bot.rb +2 -1
  24. data/generators/root/root_generator.rb +1 -1
  25. data/generators/root/templates/Gemfile.erb +4 -10
  26. data/generators/rspec/templates/spec_helper.rb +6 -5
  27. data/generators/turnip/templates/spec_helper.rb +6 -5
  28. data/generators/web/templates/example_page.rb +1 -1
  29. data/lib/howitzer/cache.rb +20 -19
  30. data/lib/howitzer/capybara_helpers.rb +59 -14
  31. data/lib/howitzer/email.rb +3 -2
  32. data/lib/howitzer/exceptions.rb +21 -21
  33. data/lib/howitzer/gmail_api/client.rb +13 -4
  34. data/lib/howitzer/log.rb +6 -6
  35. data/lib/howitzer/mail_adapters/gmail.rb +3 -0
  36. data/lib/howitzer/mail_adapters/mailgun.rb +3 -1
  37. data/lib/howitzer/mail_adapters/mailtrap.rb +3 -0
  38. data/lib/howitzer/mailgun_api/client.rb +3 -2
  39. data/lib/howitzer/mailgun_api/connector.rb +1 -0
  40. data/lib/howitzer/mailgun_api/response.rb +1 -2
  41. data/lib/howitzer/mailtrap_api/client.rb +1 -1
  42. data/lib/howitzer/meta/actions.rb +35 -0
  43. data/lib/howitzer/meta/element.rb +40 -0
  44. data/lib/howitzer/meta/entry.rb +62 -0
  45. data/lib/howitzer/meta/iframe.rb +41 -0
  46. data/lib/howitzer/meta/section.rb +30 -0
  47. data/lib/howitzer/meta.rb +11 -0
  48. data/lib/howitzer/utils/string_extensions.rb +6 -2
  49. data/lib/howitzer/version.rb +1 -1
  50. data/lib/howitzer/web/base_section.rb +1 -1
  51. data/lib/howitzer/web/capybara_context_holder.rb +1 -0
  52. data/lib/howitzer/web/capybara_methods_proxy.rb +15 -6
  53. data/lib/howitzer/web/element_dsl.rb +104 -44
  54. data/lib/howitzer/web/iframe_dsl.rb +4 -2
  55. data/lib/howitzer/web/page.rb +14 -14
  56. data/lib/howitzer/web/page_dsl.rb +18 -6
  57. data/lib/howitzer/web/page_validator.rb +27 -26
  58. data/lib/howitzer/web/section.rb +13 -2
  59. data/lib/howitzer/web/section_dsl.rb +65 -30
  60. data/lib/howitzer.rb +40 -0
  61. metadata +31 -157
  62. data/.coveralls.yml +0 -1
  63. data/.gitignore +0 -14
  64. data/.rspec +0 -3
  65. data/.rubocop.yml +0 -51
  66. data/.ruby-gemset +0 -1
  67. data/.travis.yml +0 -7
  68. data/Gemfile +0 -14
  69. data/ISSUE_TEMPLATE.md +0 -16
  70. data/MAINTENANCE.md +0 -32
  71. data/Rakefile +0 -38
  72. data/features/cli_help.feature +0 -31
  73. data/features/cli_new.feature +0 -389
  74. data/features/cli_unknown.feature +0 -17
  75. data/features/cli_update.feature +0 -218
  76. data/features/cli_version.feature +0 -14
  77. data/features/step_definitions/common_steps.rb +0 -34
  78. data/features/support/env.rb +0 -1
  79. data/generators/config/templates/drivers/phantomjs.rb +0 -19
  80. data/generators/config/templates/drivers/poltergeist.rb +0 -11
  81. data/generators/config/templates/drivers/webkit.rb +0 -6
  82. data/generators/root/templates/.gitignore +0 -21
  83. data/generators/root/templates/.rubocop.yml +0 -35
  84. data/generators/turnip/templates/.rspec +0 -1
  85. data/howitzer.gemspec +0 -39
  86. data/lib/howitzer/mail_adapters/debugmail.rb +0 -0
  87. data/spec/config/custom.yml +0 -9
  88. data/spec/spec_helper.rb +0 -73
  89. data/spec/support/generator_helper.rb +0 -21
  90. data/spec/support/logger_helper.rb +0 -13
  91. data/spec/support/shared_examples/capybara_context_holder.rb +0 -33
  92. data/spec/support/shared_examples/capybara_methods_proxy.rb +0 -94
  93. data/spec/support/shared_examples/dynamic_section_methods.rb +0 -35
  94. data/spec/support/shared_examples/element_dsl.rb +0 -242
  95. data/spec/unit/generators/base_generator_spec.rb +0 -283
  96. data/spec/unit/generators/config_generator_spec.rb +0 -59
  97. data/spec/unit/generators/cucumber_generator_spec.rb +0 -62
  98. data/spec/unit/generators/emails_generator_spec.rb +0 -35
  99. data/spec/unit/generators/prerequisites_generator_spec.rb +0 -53
  100. data/spec/unit/generators/root_generator_spec.rb +0 -75
  101. data/spec/unit/generators/rspec_generator_spec.rb +0 -36
  102. data/spec/unit/generators/tasks_generator_spec.rb +0 -31
  103. data/spec/unit/generators/turnip_generator_spec.rb +0 -52
  104. data/spec/unit/generators/web_generator_spec.rb +0 -52
  105. data/spec/unit/lib/cache_spec.rb +0 -85
  106. data/spec/unit/lib/capybara_helpers_spec.rb +0 -697
  107. data/spec/unit/lib/email_spec.rb +0 -186
  108. data/spec/unit/lib/gmail_api/client_spec.rb +0 -26
  109. data/spec/unit/lib/howitzer_spec.rb +0 -69
  110. data/spec/unit/lib/init_spec.rb +0 -2
  111. data/spec/unit/lib/log_spec.rb +0 -122
  112. data/spec/unit/lib/mail_adapters/abstract_spec.rb +0 -62
  113. data/spec/unit/lib/mail_adapters/gmail_spec.rb +0 -128
  114. data/spec/unit/lib/mail_adapters/mailgun_spec.rb +0 -158
  115. data/spec/unit/lib/mail_adapters/mailtrap_spec.rb +0 -130
  116. data/spec/unit/lib/mailgun_api/client_spec.rb +0 -80
  117. data/spec/unit/lib/mailgun_api/connector_spec.rb +0 -54
  118. data/spec/unit/lib/mailgun_api/response_spec.rb +0 -28
  119. data/spec/unit/lib/mailtrap_api/client_spec.rb +0 -67
  120. data/spec/unit/lib/utils/string_extensions_spec.rb +0 -77
  121. data/spec/unit/lib/web/base_section_spec.rb +0 -43
  122. data/spec/unit/lib/web/element_dsl_spec.rb +0 -22
  123. data/spec/unit/lib/web/iframe_dsl_spec.rb +0 -203
  124. data/spec/unit/lib/web/page_dsl_spec.rb +0 -74
  125. data/spec/unit/lib/web/page_spec.rb +0 -378
  126. data/spec/unit/lib/web/page_validator_spec.rb +0 -276
  127. data/spec/unit/lib/web/section_dsl_spec.rb +0 -165
  128. data/spec/unit/lib/web/section_spec.rb +0 -63
  129. data/spec/unit/version_spec.rb +0 -8
@@ -1,389 +0,0 @@
1
- Feature: Howitzer CLI New Project Creation
2
-
3
- Scenario: Run with new command without argument and options
4
- When I run `howitzer new`
5
- Then the output should contain exactly:
6
- """
7
- error: Please specify <PROJECT NAME>
8
-
9
- """
10
- And the exit status should be 64
11
-
12
- Scenario: Run with new command with argument and without options
13
- When I run `howitzer new test_automation`
14
- Then the output should contain exactly:
15
- """
16
- error: Provide --cucumber, --rspec or --turnip option
17
-
18
- """
19
- And the exit status should be 64
20
-
21
- Scenario: Run with new command with argument and unknown option
22
- When I run `howitzer new test_automation --unknown`
23
- Then the output should contain:
24
- """
25
- error: Unknown option --unknown
26
-
27
- """
28
- And the exit status should be 64
29
-
30
- Scenario Outline: Run with new command with help option
31
- When I run `howitzer new <option>`
32
- Then the output should contain exactly:
33
- """
34
- NAME
35
- new - Generate new project
36
-
37
- SYNOPSIS
38
- howitzer [global options] new [command options] <PROJECT NAME>
39
-
40
- COMMAND OPTIONS
41
- -c, --cucumber - Integrate Cucumber
42
- -r, --rspec - Integrate Rspec
43
- -t, --turnip - Integrate Turnip
44
-
45
- """
46
- And the exit status should be 0
47
- Examples:
48
- | option |
49
- | --help |
50
- | -h |
51
-
52
- Scenario Outline: Run with new command with argument and with rspec option
53
- When I run `howitzer new test_automation <option>`
54
- Then the output should contain exactly:
55
- """
56
- * New project directory creation ...
57
- Created './test_automation' folder
58
- * Config files generation ...
59
- Added 'config/boot.rb' file
60
- Added 'config/custom.yml' file
61
- Added 'config/capybara.rb' file
62
- Added 'config/default.yml' file
63
- Added 'config/drivers/browserstack.rb' file
64
- Added 'config/drivers/crossbrowsertesting.rb' file
65
- Added 'config/drivers/headless_chrome.rb' file
66
- Added 'config/drivers/phantomjs.rb' file
67
- Added 'config/drivers/poltergeist.rb' file
68
- Added 'config/drivers/sauce.rb' file
69
- Added 'config/drivers/selenium.rb' file
70
- Added 'config/drivers/selenium_grid.rb' file
71
- Added 'config/drivers/testingbot.rb' file
72
- Added 'config/drivers/webkit.rb' file
73
- * PageOriented pattern structure generation ...
74
- Added 'web/pages/example_page.rb' file
75
- Added 'web/sections/menu_section.rb' file
76
- * Base rake task generation ...
77
- Added 'tasks/common.rake' file
78
- * Email example generation ...
79
- Added '/emails/example_email.rb' file
80
- * Root files generation ...
81
- Added '.gitignore' file
82
- Added '.rubocop.yml' file
83
- Added 'Rakefile' file
84
- Added template 'Gemfile.erb' with params '{:r=>true, :rspec=>true, :c=>false, :cucumber=>false, :t=>false, :turnip=>false}' to destination 'Gemfile'
85
- * Pre-requisites integration to the framework ...
86
- Added 'prerequisites/factory_bot.rb' file
87
- Added 'prerequisites/factories/users.rb' file
88
- Added 'prerequisites/models/base.rb' file
89
- Added 'prerequisites/models/user.rb' file
90
- * RSpec integration to the framework ...
91
- Added 'spec/spec_helper.rb' file
92
- Added 'spec/example_spec.rb' file
93
- Added 'tasks/rspec.rake' file
94
-
95
- """
96
- Then a directory named "test_automation" should exist
97
- Then the following files should exist:
98
- | test_automation/config/boot.rb |
99
- | test_automation/config/custom.yml |
100
- | test_automation/config/capybara.rb |
101
- | test_automation/config/default.yml |
102
- | test_automation/emails/example_email.rb |
103
- | test_automation/web/sections/menu_section.rb |
104
- | test_automation/web/pages/example_page.rb |
105
- | test_automation/prerequisites/factory_bot.rb |
106
- | test_automation/prerequisites/factories/users.rb |
107
- | test_automation/prerequisites/models/base.rb |
108
- | test_automation/prerequisites/models/user.rb |
109
- | test_automation/spec/example_spec.rb |
110
- | test_automation/spec/spec_helper.rb |
111
- | test_automation/tasks/common.rake |
112
- | test_automation/tasks/rspec.rake |
113
- | test_automation/Gemfile |
114
- | test_automation/Rakefile |
115
- | test_automation/.gitignore |
116
- | test_automation/.rubocop.yml |
117
- And the exit status should be 0
118
- Examples:
119
- | option |
120
- | --rspec |
121
- | -r |
122
-
123
- Scenario Outline: Run with new command with argument and with cucumber option
124
- When I run `howitzer new test_automation <option>`
125
- Then the output should contain exactly:
126
- """
127
- * New project directory creation ...
128
- Created './test_automation' folder
129
- * Config files generation ...
130
- Added 'config/boot.rb' file
131
- Added 'config/custom.yml' file
132
- Added 'config/capybara.rb' file
133
- Added 'config/default.yml' file
134
- Added 'config/drivers/browserstack.rb' file
135
- Added 'config/drivers/crossbrowsertesting.rb' file
136
- Added 'config/drivers/headless_chrome.rb' file
137
- Added 'config/drivers/phantomjs.rb' file
138
- Added 'config/drivers/poltergeist.rb' file
139
- Added 'config/drivers/sauce.rb' file
140
- Added 'config/drivers/selenium.rb' file
141
- Added 'config/drivers/selenium_grid.rb' file
142
- Added 'config/drivers/testingbot.rb' file
143
- Added 'config/drivers/webkit.rb' file
144
- * PageOriented pattern structure generation ...
145
- Added 'web/pages/example_page.rb' file
146
- Added 'web/sections/menu_section.rb' file
147
- * Base rake task generation ...
148
- Added 'tasks/common.rake' file
149
- * Email example generation ...
150
- Added '/emails/example_email.rb' file
151
- * Root files generation ...
152
- Added '.gitignore' file
153
- Added '.rubocop.yml' file
154
- Added 'Rakefile' file
155
- Added template 'Gemfile.erb' with params '{:c=>true, :cucumber=>true, :r=>false, :rspec=>false, :t=>false, :turnip=>false}' to destination 'Gemfile'
156
- * Pre-requisites integration to the framework ...
157
- Added 'prerequisites/factory_bot.rb' file
158
- Added 'prerequisites/factories/users.rb' file
159
- Added 'prerequisites/models/base.rb' file
160
- Added 'prerequisites/models/user.rb' file
161
- * Cucumber integration to the framework ...
162
- Added 'features/step_definitions/common_steps.rb' file
163
- Added 'features/support/env.rb' file
164
- Added 'features/support/hooks.rb' file
165
- Added 'features/support/transformers.rb' file
166
- Added 'features/example.feature' file
167
- Added 'tasks/cucumber.rake' file
168
- Added 'tasks/cuke_sniffer.rake' file
169
-
170
- """
171
- Then a directory named "test_automation" should exist
172
- Then the following files should exist:
173
- | test_automation/config/boot.rb |
174
- | test_automation/config/custom.yml |
175
- | test_automation/config/capybara.rb |
176
- | test_automation/config/default.yml |
177
- | test_automation/emails/example_email.rb |
178
- | test_automation/features/step_definitions/common_steps.rb |
179
- | test_automation/features/support/env.rb |
180
- | test_automation/features/support/transformers.rb |
181
- | test_automation/features/example.feature |
182
- | test_automation/web/sections/menu_section.rb |
183
- | test_automation/web/pages/example_page.rb |
184
- | test_automation/prerequisites/factory_bot.rb |
185
- | test_automation/prerequisites/factories/users.rb |
186
- | test_automation/prerequisites/models/base.rb |
187
- | test_automation/prerequisites/models/user.rb |
188
- | test_automation/tasks/common.rake |
189
- | test_automation/tasks/cucumber.rake |
190
- | test_automation/tasks/cuke_sniffer.rake |
191
- | test_automation/Gemfile |
192
- | test_automation/Rakefile |
193
- | test_automation/.gitignore |
194
- | test_automation/.rubocop.yml |
195
- And the exit status should be 0
196
- Examples:
197
- | option |
198
- | --cucumber |
199
- | -c |
200
-
201
- Scenario Outline: Run with new command with argument and with turnip option
202
- When I run `howitzer new test_automation <option>`
203
- Then the output should contain exactly:
204
- """
205
- * New project directory creation ...
206
- Created './test_automation' folder
207
- * Config files generation ...
208
- Added 'config/boot.rb' file
209
- Added 'config/custom.yml' file
210
- Added 'config/capybara.rb' file
211
- Added 'config/default.yml' file
212
- Added 'config/drivers/browserstack.rb' file
213
- Added 'config/drivers/crossbrowsertesting.rb' file
214
- Added 'config/drivers/headless_chrome.rb' file
215
- Added 'config/drivers/phantomjs.rb' file
216
- Added 'config/drivers/poltergeist.rb' file
217
- Added 'config/drivers/sauce.rb' file
218
- Added 'config/drivers/selenium.rb' file
219
- Added 'config/drivers/selenium_grid.rb' file
220
- Added 'config/drivers/testingbot.rb' file
221
- Added 'config/drivers/webkit.rb' file
222
- * PageOriented pattern structure generation ...
223
- Added 'web/pages/example_page.rb' file
224
- Added 'web/sections/menu_section.rb' file
225
- * Base rake task generation ...
226
- Added 'tasks/common.rake' file
227
- * Email example generation ...
228
- Added '/emails/example_email.rb' file
229
- * Root files generation ...
230
- Added '.gitignore' file
231
- Added '.rubocop.yml' file
232
- Added 'Rakefile' file
233
- Added template 'Gemfile.erb' with params '{:t=>true, :turnip=>true, :c=>false, :cucumber=>false, :r=>false, :rspec=>false}' to destination 'Gemfile'
234
- * Pre-requisites integration to the framework ...
235
- Added 'prerequisites/factory_bot.rb' file
236
- Added 'prerequisites/factories/users.rb' file
237
- Added 'prerequisites/models/base.rb' file
238
- Added 'prerequisites/models/user.rb' file
239
- * Turnip integration to the framework ...
240
- Added '.rspec' file
241
- Added 'spec/spec_helper.rb' file
242
- Added 'spec/turnip_helper.rb' file
243
- Added 'spec/acceptance/example.feature' file
244
- Added 'spec/steps/common_steps.rb' file
245
- Added 'tasks/turnip.rake' file
246
-
247
- """
248
- Then a directory named "test_automation" should exist
249
- Then the following files should exist:
250
- | test_automation/config/boot.rb |
251
- | test_automation/config/custom.yml |
252
- | test_automation/config/capybara.rb |
253
- | test_automation/config/default.yml |
254
- | test_automation/emails/example_email.rb |
255
- | test_automation/web/sections/menu_section.rb |
256
- | test_automation/web/pages/example_page.rb |
257
- | test_automation/tasks/common.rake |
258
- | test_automation/tasks/turnip.rake |
259
- | test_automation/spec/spec_helper.rb |
260
- | test_automation/spec/turnip_helper.rb |
261
- | test_automation/spec/acceptance/example.feature |
262
- | test_automation/spec/steps/common_steps.rb |
263
- | test_automation/.rspec |
264
- | test_automation/Gemfile |
265
- | test_automation/Rakefile |
266
- | test_automation/.gitignore |
267
- | test_automation/.rubocop.yml |
268
- And the exit status should be 0
269
- Examples:
270
- | option |
271
- | --turnip |
272
- | -t |
273
-
274
- Scenario Outline: Run with new command with argument and option
275
- When I run `howitzer new test_automation <options>`
276
- Then the output should contain exactly:
277
- """
278
- error: Provide --cucumber, --rspec or --turnip option
279
-
280
- """
281
- And the exit status should be 64
282
- Examples:
283
- | options |
284
- | --cucumber --rspec |
285
- | --rspec --cucumber |
286
- | --cucumber --turnip |
287
- | --turnip --cucumber |
288
- | --rspec --turnip |
289
- | --turnip --rspec |
290
- | -c -t |
291
- | -t -c |
292
- | -c -r |
293
- | -r -c |
294
- | -r -t |
295
- | -t -r |
296
- | -cr |
297
- | -rc |
298
- | -ct |
299
- | -tc |
300
- | -rt |
301
- | -tr |
302
- | --cucumber --rspec --turnip |
303
- | --cucumber --turnip --rspec |
304
- | --rspec --cucumber --turnip |
305
- | --rspec --turnip --cucumber |
306
- | --turnip --cucumber --rspec |
307
- | --turnip --rspec --cucumber |
308
- | -c -r -t |
309
- | -c -t -r |
310
- | -r -c -t |
311
- | -r -t -c |
312
- | -t -c -r |
313
- | -t -r -c |
314
- | -crt |
315
- | -ctr |
316
- | -rct |
317
- | -rtc |
318
- | -tcr |
319
- | -trc |
320
-
321
- Scenario Outline: Run with new command with options and with rspec argument
322
- When I run `howitzer new <option> test_automation`
323
- Then the output should contain exactly:
324
- """
325
- * New project directory creation ...
326
- Created './test_automation' folder
327
- * Config files generation ...
328
- Added 'config/boot.rb' file
329
- Added 'config/custom.yml' file
330
- Added 'config/capybara.rb' file
331
- Added 'config/default.yml' file
332
- Added 'config/drivers/browserstack.rb' file
333
- Added 'config/drivers/crossbrowsertesting.rb' file
334
- Added 'config/drivers/headless_chrome.rb' file
335
- Added 'config/drivers/phantomjs.rb' file
336
- Added 'config/drivers/poltergeist.rb' file
337
- Added 'config/drivers/sauce.rb' file
338
- Added 'config/drivers/selenium.rb' file
339
- Added 'config/drivers/selenium_grid.rb' file
340
- Added 'config/drivers/testingbot.rb' file
341
- Added 'config/drivers/webkit.rb' file
342
- * PageOriented pattern structure generation ...
343
- Added 'web/pages/example_page.rb' file
344
- Added 'web/sections/menu_section.rb' file
345
- * Base rake task generation ...
346
- Added 'tasks/common.rake' file
347
- * Email example generation ...
348
- Added '/emails/example_email.rb' file
349
- * Root files generation ...
350
- Added '.gitignore' file
351
- Added '.rubocop.yml' file
352
- Added 'Rakefile' file
353
- Added template 'Gemfile.erb' with params '{:r=>true, :rspec=>true, :c=>false, :cucumber=>false, :t=>false, :turnip=>false}' to destination 'Gemfile'
354
- * Pre-requisites integration to the framework ...
355
- Added 'prerequisites/factory_bot.rb' file
356
- Added 'prerequisites/factories/users.rb' file
357
- Added 'prerequisites/models/base.rb' file
358
- Added 'prerequisites/models/user.rb' file
359
- * RSpec integration to the framework ...
360
- Added 'spec/spec_helper.rb' file
361
- Added 'spec/example_spec.rb' file
362
- Added 'tasks/rspec.rake' file
363
-
364
- """
365
- Then a directory named "test_automation" should exist
366
- Then the following files should exist:
367
- | test_automation/config/boot.rb |
368
- | test_automation/config/custom.yml |
369
- | test_automation/config/capybara.rb |
370
- | test_automation/config/default.yml |
371
- | test_automation/emails/example_email.rb |
372
- | test_automation/web/sections/menu_section.rb |
373
- | test_automation/web/pages/example_page.rb |
374
- | test_automation/prerequisites/factory_bot.rb |
375
- | test_automation/prerequisites/factories/users.rb |
376
- | test_automation/prerequisites/models/base.rb |
377
- | test_automation/prerequisites/models/user.rb |
378
- | test_automation/spec/example_spec.rb |
379
- | test_automation/spec/spec_helper.rb |
380
- | test_automation/tasks/common.rake |
381
- | test_automation/tasks/rspec.rake |
382
- | test_automation/Gemfile |
383
- | test_automation/Rakefile |
384
- | test_automation/.gitignore |
385
- | test_automation/.rubocop.yml |
386
- And the exit status should be 0
387
- Examples:
388
- | option |
389
- | --rspec |
@@ -1,17 +0,0 @@
1
- Feature: Howitzer CLI Unknown command
2
-
3
- Scenario: Run with --unknown global option
4
- When I run `howitzer --unknown`
5
- Then the output should contain:
6
- """
7
- error: Unknown option --unknown
8
- """
9
- And the exit status should be 64
10
-
11
- Scenario: Run with unknown command
12
- When I run `howitzer unknown`
13
- Then the output should contain:
14
- """
15
- error: Unknown command 'unknown'
16
- """
17
- And the exit status should be 64
@@ -1,218 +0,0 @@
1
- Feature: Howitzer CLI Update Existing Project
2
-
3
- Scenario: Run with update command when rspec based project present
4
- Given created old howitzer project based on rspec
5
- When I run `howitzer update` interactively
6
- And I type "y"
7
- And I type "n"
8
- And I type "i"
9
- Then the output should contain:
10
- """
11
- * Config files generation ...
12
- Identical 'config/boot.rb' file
13
- Identical 'config/custom.yml' file
14
- Identical 'config/capybara.rb' file
15
- Added 'config/default.yml' file
16
- Identical 'config/drivers/browserstack.rb' file
17
- Identical 'config/drivers/crossbrowsertesting.rb' file
18
- Identical 'config/drivers/headless_chrome.rb' file
19
- Identical 'config/drivers/phantomjs.rb' file
20
- Identical 'config/drivers/poltergeist.rb' file
21
- Identical 'config/drivers/sauce.rb' file
22
- Identical 'config/drivers/selenium.rb' file
23
- Identical 'config/drivers/selenium_grid.rb' file
24
- Identical 'config/drivers/testingbot.rb' file
25
- Identical 'config/drivers/webkit.rb' file
26
- * PageOriented pattern structure generation ...
27
- Identical 'web/pages/example_page.rb' file
28
- Identical 'web/sections/menu_section.rb' file
29
- * Base rake task generation ...
30
- Identical 'tasks/common.rake' file
31
- * Email example generation ...
32
- Identical '/emails/example_email.rb' file
33
- * Pre-requisites integration to the framework ...
34
- Identical 'prerequisites/factory_bot.rb' file
35
- Identical 'prerequisites/factories/users.rb' file
36
- Identical 'prerequisites/models/base.rb' file
37
- Identical 'prerequisites/models/user.rb' file
38
- * Root files generation ...
39
- Added '.gitignore' file
40
- Added '.rubocop.yml' file
41
- Conflict with 'Rakefile' file
42
- Overwrite 'Rakefile' file? [Yn]: Forced 'Rakefile' file
43
- Conflict with 'Gemfile' template
44
- Overwrite 'Gemfile' template? [Yn]: Skipped 'Gemfile' template
45
- * RSpec integration to the framework ...
46
- Identical 'spec/spec_helper.rb' file
47
- Identical 'spec/example_spec.rb' file
48
- Identical 'tasks/rspec.rake' file
49
- """
50
- And the exit status should be 0
51
- When I run `howitzer update` interactively
52
- And I type "y"
53
- Then the output should contain:
54
- """
55
- * Config files generation ...
56
- Identical 'config/boot.rb' file
57
- Identical 'config/custom.yml' file
58
- Identical 'config/capybara.rb' file
59
- Identical 'config/default.yml' file
60
- Identical 'config/drivers/browserstack.rb' file
61
- Identical 'config/drivers/crossbrowsertesting.rb' file
62
- Identical 'config/drivers/headless_chrome.rb' file
63
- Identical 'config/drivers/phantomjs.rb' file
64
- Identical 'config/drivers/poltergeist.rb' file
65
- Identical 'config/drivers/sauce.rb' file
66
- Identical 'config/drivers/selenium.rb' file
67
- Identical 'config/drivers/selenium_grid.rb' file
68
- Identical 'config/drivers/testingbot.rb' file
69
- Identical 'config/drivers/webkit.rb' file
70
- * PageOriented pattern structure generation ...
71
- Identical 'web/pages/example_page.rb' file
72
- Identical 'web/sections/menu_section.rb' file
73
- * Base rake task generation ...
74
- Identical 'tasks/common.rake' file
75
- * Email example generation ...
76
- Identical '/emails/example_email.rb' file
77
- * Pre-requisites integration to the framework ...
78
- Identical 'prerequisites/factory_bot.rb' file
79
- Identical 'prerequisites/factories/users.rb' file
80
- Identical 'prerequisites/models/base.rb' file
81
- Identical 'prerequisites/models/user.rb' file
82
- * Root files generation ...
83
- Identical '.gitignore' file
84
- Identical '.rubocop.yml' file
85
- Identical 'Rakefile' file
86
- Conflict with 'Gemfile' template
87
- Overwrite 'Gemfile' template? [Yn]: Forced 'Gemfile' template
88
- * RSpec integration to the framework ...
89
- Identical 'spec/spec_helper.rb' file
90
- Identical 'spec/example_spec.rb' file
91
- Identical 'tasks/rspec.rake' file
92
- """
93
- And the exit status should be 0
94
-
95
- Scenario: Run with update command when cucumber based project present
96
- Given created old howitzer project based on cucumber
97
- When I run `howitzer update` interactively
98
- And I type "y"
99
- And I type "n"
100
- And I type "i"
101
- Then the output should contain:
102
- """
103
- * Config files generation ...
104
- Identical 'config/boot.rb' file
105
- Identical 'config/custom.yml' file
106
- Identical 'config/capybara.rb' file
107
- Added 'config/default.yml' file
108
- Identical 'config/drivers/browserstack.rb' file
109
- Identical 'config/drivers/crossbrowsertesting.rb' file
110
- Identical 'config/drivers/headless_chrome.rb' file
111
- Identical 'config/drivers/phantomjs.rb' file
112
- Identical 'config/drivers/poltergeist.rb' file
113
- Identical 'config/drivers/sauce.rb' file
114
- Identical 'config/drivers/selenium.rb' file
115
- Identical 'config/drivers/selenium_grid.rb' file
116
- Identical 'config/drivers/testingbot.rb' file
117
- Identical 'config/drivers/webkit.rb' file
118
- * PageOriented pattern structure generation ...
119
- Identical 'web/pages/example_page.rb' file
120
- Identical 'web/sections/menu_section.rb' file
121
- * Base rake task generation ...
122
- Identical 'tasks/common.rake' file
123
- * Email example generation ...
124
- Identical '/emails/example_email.rb' file
125
- * Pre-requisites integration to the framework ...
126
- Identical 'prerequisites/factory_bot.rb' file
127
- Identical 'prerequisites/factories/users.rb' file
128
- Identical 'prerequisites/models/base.rb' file
129
- Identical 'prerequisites/models/user.rb' file
130
- * Root files generation ...
131
- Added '.gitignore' file
132
- Added '.rubocop.yml' file
133
- Conflict with 'Rakefile' file
134
- Overwrite 'Rakefile' file? [Yn]: Forced 'Rakefile' file
135
- Conflict with 'Gemfile' template
136
- Overwrite 'Gemfile' template? [Yn]: Skipped 'Gemfile' template
137
- * Cucumber integration to the framework ...
138
- Identical 'features/step_definitions/common_steps.rb' file
139
- Identical 'features/support/env.rb' file
140
- Identical 'features/support/hooks.rb' file
141
- Identical 'features/support/transformers.rb' file
142
- Identical 'features/example.feature' file
143
- Identical 'tasks/cucumber.rake' file
144
- """
145
- And the exit status should be 0
146
-
147
- Scenario: Run with update command when turnip based project present
148
- Given created old howitzer project based on turnip
149
- When I run `howitzer update` interactively
150
- And I type "y"
151
- Then the output should contain:
152
- """
153
- * Config files generation ...
154
- Identical 'config/boot.rb' file
155
- Identical 'config/custom.yml' file
156
- Identical 'config/capybara.rb' file
157
- Identical 'config/default.yml' file
158
- Identical 'config/drivers/browserstack.rb' file
159
- Identical 'config/drivers/crossbrowsertesting.rb' file
160
- Identical 'config/drivers/headless_chrome.rb' file
161
- Identical 'config/drivers/phantomjs.rb' file
162
- Identical 'config/drivers/poltergeist.rb' file
163
- Identical 'config/drivers/sauce.rb' file
164
- Identical 'config/drivers/selenium.rb' file
165
- Identical 'config/drivers/selenium_grid.rb' file
166
- Identical 'config/drivers/testingbot.rb' file
167
- Identical 'config/drivers/webkit.rb' file
168
- * PageOriented pattern structure generation ...
169
- Identical 'web/pages/example_page.rb' file
170
- Identical 'web/sections/menu_section.rb' file
171
- * Base rake task generation ...
172
- Identical 'tasks/common.rake' file
173
- * Email example generation ...
174
- Identical '/emails/example_email.rb' file
175
- * Pre-requisites integration to the framework ...
176
- Identical 'prerequisites/factory_bot.rb' file
177
- Identical 'prerequisites/factories/users.rb' file
178
- Identical 'prerequisites/models/base.rb' file
179
- Identical 'prerequisites/models/user.rb' file
180
- * Root files generation ...
181
- Added '.gitignore' file
182
- Added '.rubocop.yml' file
183
- Identical 'Rakefile' file
184
- Conflict with 'Gemfile' template
185
- Overwrite 'Gemfile' template? [Yn]: Forced 'Gemfile' template
186
- * Turnip integration to the framework ...
187
- Added '.rspec' file
188
- Identical 'spec/spec_helper.rb' file
189
- Identical 'spec/turnip_helper.rb' file
190
- Identical 'spec/acceptance/example.feature' file
191
- Identical 'spec/steps/common_steps.rb' file
192
- """
193
- And the exit status should be 0
194
-
195
- Scenario: Run with update command when project missing
196
- When I run `howitzer update`
197
- Then the output should contain:
198
- """
199
- error: Current directory is not Howitzer project
200
- """
201
- And the exit status should be 126
202
-
203
- Scenario Outline: Run with update command with help option
204
- When I run `howitzer update <option>`
205
- Then the output should contain exactly:
206
- """
207
- NAME
208
- update - Upgrade existing project
209
-
210
- SYNOPSIS
211
- howitzer [global options] update
212
-
213
- """
214
- And the exit status should be 0
215
- Examples:
216
- | option |
217
- | --help |
218
- | -h |
@@ -1,14 +0,0 @@
1
- Feature: Howitzer CLI Version
2
-
3
- Scenario Outline: Run with version global option
4
- When I run `howitzer <option>`
5
- Then the output should be exactly:
6
- """
7
- howitzer version <HOWITZER_VERSION>
8
-
9
- """
10
- And the exit status should be 0
11
- Examples:
12
- | option |
13
- | --version |
14
- | -v |
@@ -1,34 +0,0 @@
1
- Given /^created old howitzer project based on rspec$/ do
2
- run_simple 'howitzer new test_automation --rspec'
3
- all_commands.shift
4
-
5
- FileUtils.move(Dir.glob("#{expand_path('.')}/test_automation/*"), expand_path('.'))
6
- FileUtils.remove_dir File.join(expand_path('.'), 'test_automation'), true
7
- overwrite_file('Rakefile', "Dir.chdir(File.join(__dir__, '.'))")
8
- overwrite_file('Gemfile', 'Hello')
9
- remove 'config/default.yml'
10
- end
11
-
12
- Given /^created old howitzer project based on cucumber$/ do
13
- run_simple 'howitzer new test_automation --cucumber'
14
- all_commands.shift
15
-
16
- FileUtils.move(Dir.glob("#{expand_path('.')}/test_automation/*"), expand_path('.'))
17
- FileUtils.remove_dir File.join(expand_path('.'), 'test_automation'), true
18
- overwrite_file('Rakefile', "Dir.chdir(File.join(__dir__, '.'))")
19
- overwrite_file('Gemfile', 'Hello')
20
- remove 'config/default.yml'
21
- end
22
-
23
- Given /^created old howitzer project based on turnip$/ do
24
- run_simple 'howitzer new test_automation --turnip'
25
- all_commands.shift
26
-
27
- FileUtils.move(Dir.glob("#{expand_path('.')}/test_automation/*"), expand_path('.'))
28
- FileUtils.remove_dir File.join(expand_path('.'), 'test_automation'), true
29
- end
30
-
31
- Then 'the output should be exactly:' do |text|
32
- text.gsub!('<HOWITZER_VERSION>', Howitzer::VERSION)
33
- step 'the output should contain exactly:', text
34
- end