ruby_raider 3.0.0 → 3.1.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 (193) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/e2e_tests.yml +0 -17
  3. data/.github/workflows/system_tests.yml +0 -22
  4. data/README.md +8 -62
  5. data/lib/commands/scaffolding_commands.rb +22 -188
  6. data/lib/commands/utility_commands.rb +10 -44
  7. data/lib/generators/automation/templates/login.tt +1 -9
  8. data/lib/generators/automation/templates/page.tt +1 -7
  9. data/lib/generators/automation/templates/partials/initialize_selector.tt +1 -3
  10. data/lib/generators/automation/templates/partials/visit_method.tt +2 -6
  11. data/lib/generators/common_generator.rb +0 -6
  12. data/lib/generators/cucumber/cucumber_generator.rb +0 -24
  13. data/lib/generators/cucumber/templates/accessibility_steps.tt +2 -6
  14. data/lib/generators/cucumber/templates/cucumber.tt +0 -7
  15. data/lib/generators/cucumber/templates/env.tt +1 -3
  16. data/lib/generators/cucumber/templates/partials/appium_env.tt +1 -6
  17. data/lib/generators/cucumber/templates/partials/selenium_env.tt +0 -5
  18. data/lib/generators/cucumber/templates/partials/watir_env.tt +0 -5
  19. data/lib/generators/cucumber/templates/partials/web_steps.tt +4 -4
  20. data/lib/generators/cucumber/templates/world.tt +1 -3
  21. data/lib/generators/generator.rb +2 -46
  22. data/lib/generators/helper_generator.rb +4 -42
  23. data/lib/generators/infrastructure/templates/github.tt +2 -2
  24. data/lib/generators/infrastructure/templates/github_appium.tt +2 -6
  25. data/lib/generators/invoke_generators.rb +4 -25
  26. data/lib/generators/menu_generator.rb +10 -100
  27. data/lib/generators/rspec/rspec_generator.rb +0 -11
  28. data/lib/generators/rspec/templates/accessibility_spec.tt +2 -6
  29. data/lib/generators/rspec/templates/spec.tt +6 -8
  30. data/lib/generators/templates/common/gemfile.tt +0 -26
  31. data/lib/generators/templates/common/git_ignore.tt +0 -2
  32. data/lib/generators/templates/common/partials/mobile_config.tt +0 -4
  33. data/lib/generators/templates/common/partials/web_config.tt +0 -4
  34. data/lib/generators/templates/common/rakefile.tt +0 -9
  35. data/lib/generators/templates/common/read_me.tt +4 -10
  36. data/lib/generators/templates/helpers/allure_helper.tt +0 -10
  37. data/lib/generators/templates/helpers/browser_helper.tt +1 -1
  38. data/lib/generators/templates/helpers/partials/debug_diagnostics.tt +1 -3
  39. data/lib/generators/templates/helpers/partials/debug_start.tt +1 -3
  40. data/lib/generators/templates/helpers/partials/quit_driver.tt +1 -3
  41. data/lib/generators/templates/helpers/partials/screenshot.tt +1 -3
  42. data/lib/generators/templates/helpers/partials/selenium_driver.tt +1 -1
  43. data/lib/generators/templates/helpers/spec_helper.tt +2 -39
  44. data/lib/ruby_raider.rb +2 -50
  45. data/lib/scaffolding/project_detector.rb +30 -13
  46. data/lib/scaffolding/scaffolding.rb +0 -109
  47. data/lib/scaffolding/templates/component.tt +1 -4
  48. data/lib/scaffolding/templates/page_object.tt +0 -10
  49. data/lib/scaffolding/templates/spec.tt +2 -6
  50. data/lib/scaffolding/templates/steps.tt +0 -2
  51. data/lib/utilities/utilities.rb +26 -24
  52. data/lib/version +1 -1
  53. data/sig/commands/scaffolding_commands.rbs +0 -12
  54. data/sig/commands/utility_commands.rbs +0 -6
  55. data/sig/generators/cucumber/cucumber_generator.rbs +0 -4
  56. data/sig/generators/generator.rbs +0 -11
  57. data/sig/generators/helper_generator.rbs +1 -5
  58. data/sig/generators/invoke_generators.rbs +1 -2
  59. data/sig/generators/menu_generator.rbs +2 -6
  60. data/sig/generators/rspec/rspec_generator.rbs +0 -2
  61. data/sig/ruby_raider.rbs +1 -3
  62. data/sig/scaffolding/project_detector.rbs +0 -1
  63. data/sig/scaffolding/scaffolding.rbs +0 -23
  64. data/sig/utilities/utilities.rbs +0 -4
  65. data/spec/commands/raider_commands_spec.rb +0 -61
  66. data/spec/commands/scaffolding_commands_spec.rb +22 -0
  67. data/spec/integration/commands/browser_update_after_creation_spec.rb +123 -0
  68. data/spec/integration/commands/scaffolding_commands_spec.rb +0 -20
  69. data/spec/integration/commands/utility_commands_spec.rb +9 -9
  70. data/spec/integration/content/ci_content_spec.rb +6 -61
  71. data/spec/integration/content/common_content_spec.rb +0 -64
  72. data/spec/integration/content/config_content_spec.rb +1 -51
  73. data/spec/integration/content/content_helper.rb +2 -2
  74. data/spec/integration/content/gemfile_content_spec.rb +0 -71
  75. data/spec/integration/content/helper_content_spec.rb +4 -240
  76. data/spec/integration/content/page_content_spec.rb +0 -89
  77. data/spec/integration/content/syntax_validation_spec.rb +2 -2
  78. data/spec/integration/content/test_content_spec.rb +0 -119
  79. data/spec/integration/end_to_end_features_spec.rb +13 -411
  80. data/spec/integration/end_to_end_spec.rb +0 -96
  81. data/spec/integration/generators/axe_addon_spec.rb +2 -52
  82. data/spec/integration/generators/common_generator_spec.rb +1 -13
  83. data/spec/integration/generators/config_features_spec.rb +3 -81
  84. data/spec/integration/generators/debug_helper_spec.rb +0 -20
  85. data/spec/integration/generators/github_generator_spec.rb +5 -15
  86. data/spec/integration/generators/helpers_generator_spec.rb +0 -37
  87. data/spec/integration/scaffolding_e2e_spec.rb +540 -0
  88. data/spec/integration/settings_helper.rb +1 -3
  89. data/spec/integration/spec_helper.rb +6 -11
  90. data/spec/menus/menu_generator_spec.rb +4 -107
  91. data/spec/scaffolding/scaffold_project_detector_spec.rb +42 -26
  92. data/spec/scaffolding/scaffolding_features_spec.rb +0 -183
  93. data/spec/system/selenium_spec.rb +1 -4
  94. data/spec/system/support/system_test_helper.rb +0 -1
  95. data/spec/system/watir_spec.rb +1 -4
  96. data/spec/utilities/headless_config_spec.rb +82 -0
  97. data/spec/utilities/utilities_spec.rb +105 -0
  98. metadata +7 -97
  99. data/lib/adopter/adopt_menu.rb +0 -146
  100. data/lib/adopter/converters/base_converter.rb +0 -84
  101. data/lib/adopter/converters/identity_converter.rb +0 -53
  102. data/lib/adopter/migration_plan.rb +0 -74
  103. data/lib/adopter/migrator.rb +0 -96
  104. data/lib/adopter/plan_builder.rb +0 -275
  105. data/lib/adopter/project_analyzer.rb +0 -252
  106. data/lib/adopter/project_detector.rb +0 -157
  107. data/lib/generators/cucumber/templates/partials/capybara_env.tt +0 -38
  108. data/lib/generators/cucumber/templates/partials/capybara_world.tt +0 -6
  109. data/lib/generators/cucumber/templates/performance_feature.tt +0 -5
  110. data/lib/generators/cucumber/templates/performance_steps.tt +0 -17
  111. data/lib/generators/cucumber/templates/visual_feature.tt +0 -5
  112. data/lib/generators/cucumber/templates/visual_steps.tt +0 -19
  113. data/lib/generators/infrastructure/gitlab_generator.rb +0 -11
  114. data/lib/generators/infrastructure/templates/gitlab.tt +0 -46
  115. data/lib/generators/minitest/minitest_generator.rb +0 -35
  116. data/lib/generators/minitest/templates/accessibility_test.tt +0 -26
  117. data/lib/generators/minitest/templates/performance_test.tt +0 -18
  118. data/lib/generators/minitest/templates/test.tt +0 -64
  119. data/lib/generators/minitest/templates/visual_test.tt +0 -23
  120. data/lib/generators/rspec/templates/performance_spec.tt +0 -18
  121. data/lib/generators/rspec/templates/visual_spec.tt +0 -20
  122. data/lib/generators/templates/helpers/capybara_helper.tt +0 -32
  123. data/lib/generators/templates/helpers/performance_helper.tt +0 -57
  124. data/lib/generators/templates/helpers/visual_helper.tt +0 -58
  125. data/lib/llm/client.rb +0 -79
  126. data/lib/llm/config.rb +0 -57
  127. data/lib/llm/prompts.rb +0 -84
  128. data/lib/llm/provider.rb +0 -27
  129. data/lib/llm/providers/anthropic_provider.rb +0 -43
  130. data/lib/llm/providers/ollama_provider.rb +0 -56
  131. data/lib/llm/providers/openai_provider.rb +0 -42
  132. data/lib/llm/response_parser.rb +0 -67
  133. data/lib/plugin/plugin.rb +0 -111
  134. data/lib/plugin/plugin_exposer.rb +0 -55
  135. data/lib/scaffolding/crud_generator.rb +0 -94
  136. data/lib/scaffolding/dry_run_presenter.rb +0 -16
  137. data/lib/scaffolding/page_introspector.rb +0 -45
  138. data/lib/scaffolding/scaffold_menu.rb +0 -103
  139. data/lib/scaffolding/templates/page_from_url.tt +0 -75
  140. data/lib/scaffolding/templates/spec_from_page.tt +0 -31
  141. data/lib/scaffolding/templates/spec_from_url.tt +0 -46
  142. data/lib/scaffolding/url_analyzer.rb +0 -179
  143. data/sig/adopter/adopt_menu.rbs +0 -25
  144. data/sig/adopter/converters/base_converter.rbs +0 -23
  145. data/sig/adopter/converters/identity_converter.rbs +0 -16
  146. data/sig/adopter/migration_plan.rbs +0 -34
  147. data/sig/adopter/migrator.rbs +0 -21
  148. data/sig/adopter/plan_builder.rbs +0 -38
  149. data/sig/adopter/project_analyzer.rbs +0 -39
  150. data/sig/adopter/project_detector.rbs +0 -26
  151. data/sig/generators/infrastructure/gitlab_generator.rbs +0 -4
  152. data/sig/generators/minitest/minitest_generator.rbs +0 -8
  153. data/sig/llm/client.rbs +0 -15
  154. data/sig/llm/config.rbs +0 -20
  155. data/sig/llm/prompts.rbs +0 -8
  156. data/sig/llm/provider.rbs +0 -12
  157. data/sig/llm/providers/anthropic_provider.rbs +0 -16
  158. data/sig/llm/providers/ollama_provider.rbs +0 -18
  159. data/sig/llm/providers/openai_provider.rbs +0 -16
  160. data/sig/llm/response_parser.rbs +0 -13
  161. data/sig/plugin/plugin.rbs +0 -24
  162. data/sig/plugin/plugin_exposer.rbs +0 -20
  163. data/sig/scaffolding/crud_generator.rbs +0 -16
  164. data/sig/scaffolding/dry_run_presenter.rbs +0 -4
  165. data/sig/scaffolding/page_introspector.rbs +0 -14
  166. data/sig/scaffolding/scaffold_menu.rbs +0 -18
  167. data/sig/scaffolding/url_analyzer.rbs +0 -28
  168. data/spec/adopter/adopt_menu_spec.rb +0 -176
  169. data/spec/adopter/converters/identity_converter_spec.rb +0 -145
  170. data/spec/adopter/migration_plan_spec.rb +0 -113
  171. data/spec/adopter/migrator_spec.rb +0 -277
  172. data/spec/adopter/plan_builder_spec.rb +0 -298
  173. data/spec/adopter/project_analyzer_spec.rb +0 -337
  174. data/spec/adopter/project_detector_spec.rb +0 -295
  175. data/spec/generators/generator_spec.rb +0 -23
  176. data/spec/integration/content/reporter_content_spec.rb +0 -236
  177. data/spec/integration/content/skip_flags_content_spec.rb +0 -206
  178. data/spec/integration/generators/gitlab_generator_spec.rb +0 -38
  179. data/spec/integration/generators/lighthouse_addon_spec.rb +0 -132
  180. data/spec/integration/generators/minitest_generator_spec.rb +0 -64
  181. data/spec/integration/generators/reporter_spec.rb +0 -159
  182. data/spec/integration/generators/skip_flags_spec.rb +0 -134
  183. data/spec/integration/generators/visual_addon_spec.rb +0 -148
  184. data/spec/llm/client_spec.rb +0 -79
  185. data/spec/llm/config_spec.rb +0 -92
  186. data/spec/llm/prompts_spec.rb +0 -49
  187. data/spec/llm/response_parser_spec.rb +0 -92
  188. data/spec/menus/adopter_adopt_menu_spec.rb +0 -97
  189. data/spec/scaffolding/page_introspector_spec.rb +0 -82
  190. data/spec/scaffolding/url_analyzer_spec.rb +0 -110
  191. data/spec/system/adopt_matrix_spec.rb +0 -537
  192. data/spec/system/adopt_spec.rb +0 -225
  193. data/spec/system/capybara_spec.rb +0 -42
@@ -79,44 +79,6 @@ describe 'Helper file content' do
79
79
  end
80
80
  end
81
81
 
82
- # --- Capybara helper ---
83
-
84
- shared_examples 'valid capybara helper' do |project_name|
85
- subject(:helper) { read_generated(project_name, 'helpers/capybara_helper.rb') }
86
-
87
- it 'has frozen_string_literal' do
88
- expect(helper).to have_frozen_string_literal
89
- end
90
-
91
- it 'has valid Ruby syntax' do
92
- expect(helper).to have_valid_ruby_syntax
93
- end
94
-
95
- it 'defines CapybaraHelper module' do
96
- expect(helper).to match(/module CapybaraHelper/)
97
- end
98
-
99
- it 'requires capybara' do
100
- expect(helper).to include("require 'capybara'")
101
- end
102
-
103
- it 'configures Capybara' do
104
- expect(helper).to include('Capybara.configure')
105
- end
106
-
107
- it 'registers Selenium driver' do
108
- expect(helper).to include('Capybara.register_driver')
109
- end
110
-
111
- it 'reads from config.yml' do
112
- expect(helper).to include("YAML.load_file('config/config.yml')")
113
- end
114
-
115
- it 'does not require watir' do
116
- expect(helper).not_to include("require 'watir'")
117
- end
118
- end
119
-
120
82
  # --- Spec helper ---
121
83
 
122
84
  shared_examples 'valid spec helper' do |project_name|
@@ -179,142 +141,6 @@ describe 'Helper file content' do
179
141
  end
180
142
  end
181
143
 
182
- shared_examples 'capybara spec helper' do |project_name|
183
- subject(:helper) { read_generated(project_name, 'helpers/spec_helper.rb') }
184
-
185
- it 'includes Capybara::DSL' do
186
- expect(helper).to include('include(Capybara::DSL)')
187
- end
188
-
189
- it 'requires capybara_helper' do
190
- expect(helper).to include("require_relative 'capybara_helper'")
191
- end
192
-
193
- it 'calls CapybaraHelper.configure' do
194
- expect(helper).to include('CapybaraHelper.configure')
195
- end
196
- end
197
-
198
- # --- Test helper (Minitest) ---
199
-
200
- shared_examples 'valid test helper' do |project_name|
201
- subject(:helper) { read_generated(project_name, 'helpers/test_helper.rb') }
202
-
203
- it 'has frozen_string_literal' do
204
- expect(helper).to have_frozen_string_literal
205
- end
206
-
207
- it 'has valid Ruby syntax' do
208
- expect(helper).to have_valid_ruby_syntax
209
- end
210
-
211
- it 'requires minitest/autorun' do
212
- expect(helper).to include("require 'minitest/autorun'")
213
- end
214
-
215
- it 'defines TestHelper module' do
216
- expect(helper).to match(/module TestHelper/)
217
- end
218
-
219
- it 'includes TestHelper into Minitest::Test' do
220
- expect(helper).to include('Minitest::Test.include(TestHelper)')
221
- end
222
- end
223
-
224
- shared_examples 'selenium test helper' do |project_name|
225
- subject(:helper) { read_generated(project_name, 'helpers/test_helper.rb') }
226
-
227
- it 'includes DriverHelper' do
228
- expect(helper).to include('include DriverHelper')
229
- end
230
-
231
- it 'requires driver_helper' do
232
- expect(helper).to include("require_relative 'driver_helper'")
233
- end
234
- end
235
-
236
- shared_examples 'watir test helper' do |project_name|
237
- subject(:helper) { read_generated(project_name, 'helpers/test_helper.rb') }
238
-
239
- it 'includes BrowserHelper' do
240
- expect(helper).to include('include BrowserHelper')
241
- end
242
-
243
- it 'requires browser_helper' do
244
- expect(helper).to include("require_relative 'browser_helper'")
245
- end
246
- end
247
-
248
- shared_examples 'capybara test helper' do |project_name|
249
- subject(:helper) { read_generated(project_name, 'helpers/test_helper.rb') }
250
-
251
- it 'includes Capybara::DSL' do
252
- expect(helper).to include('include Capybara::DSL')
253
- end
254
-
255
- it 'requires capybara_helper' do
256
- expect(helper).to include("require_relative 'capybara_helper'")
257
- end
258
-
259
- it 'calls CapybaraHelper.configure' do
260
- expect(helper).to include('CapybaraHelper.configure')
261
- end
262
- end
263
-
264
- # --- Video helper ---
265
-
266
- shared_examples 'valid video helper' do |project_name|
267
- subject(:helper) { read_generated(project_name, 'helpers/video_helper.rb') }
268
-
269
- it 'has frozen_string_literal' do
270
- expect(helper).to have_frozen_string_literal
271
- end
272
-
273
- it 'has valid Ruby syntax' do
274
- expect(helper).to have_valid_ruby_syntax
275
- end
276
-
277
- it 'defines VideoHelper module' do
278
- expect(helper).to match(/module VideoHelper/)
279
- end
280
-
281
- it 'defines recorder_for method' do
282
- expect(helper).to include('def recorder_for')
283
- end
284
-
285
- it 'defines CdpRecorder class' do
286
- expect(helper).to include('class CdpRecorder')
287
- end
288
-
289
- it 'defines ScreenCaptureRecorder class' do
290
- expect(helper).to include('class ScreenCaptureRecorder')
291
- end
292
-
293
- it 'defines NullRecorder class' do
294
- expect(helper).to include('class NullRecorder')
295
- end
296
-
297
- it 'reads config from YAML' do
298
- expect(helper).to include('YAML.load_file')
299
- end
300
- end
301
-
302
- shared_examples 'mobile video helper' do |project_name|
303
- subject(:helper) { read_generated(project_name, 'helpers/video_helper.rb') }
304
-
305
- it 'defines AppiumRecorder class' do
306
- expect(helper).to include('class AppiumRecorder')
307
- end
308
- end
309
-
310
- shared_examples 'web-only video helper' do |project_name|
311
- subject(:helper) { read_generated(project_name, 'helpers/video_helper.rb') }
312
-
313
- it 'does not include AppiumRecorder' do
314
- expect(helper).not_to include('class AppiumRecorder')
315
- end
316
- end
317
-
318
144
  # --- Allure helper ---
319
145
 
320
146
  shared_examples 'valid allure helper' do |project_name|
@@ -376,8 +202,7 @@ describe 'Helper file content' do
376
202
  it_behaves_like 'valid spec helper', name
377
203
  it_behaves_like 'selenium spec helper', name
378
204
  it_behaves_like 'valid allure helper', name
379
- it_behaves_like 'valid video helper', name
380
- it_behaves_like 'web-only video helper', name
205
+
381
206
  it_behaves_like 'valid debug helper', name
382
207
  end
383
208
 
@@ -387,55 +212,7 @@ describe 'Helper file content' do
387
212
  it_behaves_like 'valid spec helper', name
388
213
  it_behaves_like 'watir spec helper', name
389
214
  it_behaves_like 'valid allure helper', name
390
- it_behaves_like 'valid video helper', name
391
- it_behaves_like 'web-only video helper', name
392
- it_behaves_like 'valid debug helper', name
393
- end
394
-
395
- context 'with rspec and capybara' do
396
- name = "#{FrameworkIndex::RSPEC}_#{AutomationIndex::CAPYBARA}"
397
- it_behaves_like 'valid capybara helper', name
398
- it_behaves_like 'valid spec helper', name
399
- it_behaves_like 'capybara spec helper', name
400
- it_behaves_like 'valid allure helper', name
401
- it_behaves_like 'valid video helper', name
402
- it_behaves_like 'web-only video helper', name
403
- it_behaves_like 'valid debug helper', name
404
- end
405
-
406
- # --- Minitest + automation contexts ---
407
-
408
- context 'with minitest and selenium' do
409
- name = "#{FrameworkIndex::MINITEST}_#{AutomationIndex::SELENIUM}"
410
- it_behaves_like 'valid driver helper', name
411
- it_behaves_like 'selenium driver helper', name
412
- it_behaves_like 'valid test helper', name
413
- it_behaves_like 'selenium test helper', name
414
- it_behaves_like 'valid allure helper', name
415
- it_behaves_like 'valid video helper', name
416
- it_behaves_like 'web-only video helper', name
417
- it_behaves_like 'valid debug helper', name
418
- end
419
215
 
420
- context 'with minitest and watir' do
421
- name = "#{FrameworkIndex::MINITEST}_#{AutomationIndex::WATIR}"
422
- it_behaves_like 'valid browser helper', name
423
- it_behaves_like 'valid test helper', name
424
- it_behaves_like 'watir test helper', name
425
- it_behaves_like 'valid allure helper', name
426
- it_behaves_like 'valid video helper', name
427
- it_behaves_like 'web-only video helper', name
428
- it_behaves_like 'valid debug helper', name
429
- end
430
-
431
- context 'with minitest and capybara' do
432
- name = "#{FrameworkIndex::MINITEST}_#{AutomationIndex::CAPYBARA}"
433
- it_behaves_like 'valid capybara helper', name
434
- it_behaves_like 'valid test helper', name
435
- it_behaves_like 'capybara test helper', name
436
- it_behaves_like 'valid allure helper', name
437
- it_behaves_like 'valid video helper', name
438
- it_behaves_like 'web-only video helper', name
439
216
  it_behaves_like 'valid debug helper', name
440
217
  end
441
218
 
@@ -446,8 +223,7 @@ describe 'Helper file content' do
446
223
  it_behaves_like 'valid driver helper', name
447
224
  it_behaves_like 'selenium driver helper', name
448
225
  it_behaves_like 'valid allure helper', name
449
- it_behaves_like 'valid video helper', name
450
- it_behaves_like 'web-only video helper', name
226
+
451
227
  it_behaves_like 'valid debug helper', name
452
228
  end
453
229
 
@@ -455,17 +231,7 @@ describe 'Helper file content' do
455
231
  name = "#{FrameworkIndex::CUCUMBER}_#{AutomationIndex::WATIR}"
456
232
  it_behaves_like 'valid browser helper', name
457
233
  it_behaves_like 'valid allure helper', name
458
- it_behaves_like 'valid video helper', name
459
- it_behaves_like 'web-only video helper', name
460
- it_behaves_like 'valid debug helper', name
461
- end
462
234
 
463
- context 'with cucumber and capybara' do
464
- name = "#{FrameworkIndex::CUCUMBER}_#{AutomationIndex::CAPYBARA}"
465
- it_behaves_like 'valid capybara helper', name
466
- it_behaves_like 'valid allure helper', name
467
- it_behaves_like 'valid video helper', name
468
- it_behaves_like 'web-only video helper', name
469
235
  it_behaves_like 'valid debug helper', name
470
236
  end
471
237
 
@@ -473,13 +239,11 @@ describe 'Helper file content' do
473
239
 
474
240
  context 'with cucumber and appium android' do
475
241
  name = "#{FrameworkIndex::CUCUMBER}_#{AutomationIndex::ANDROID}"
476
- it_behaves_like 'valid video helper', name
477
- it_behaves_like 'mobile video helper', name
242
+
478
243
  end
479
244
 
480
245
  context 'with rspec and appium ios' do
481
246
  name = "#{FrameworkIndex::RSPEC}_#{AutomationIndex::IOS}"
482
- it_behaves_like 'valid video helper', name
483
- it_behaves_like 'mobile video helper', name
247
+
484
248
  end
485
249
  end
@@ -79,32 +79,6 @@ describe 'Page object content' do
79
79
  end
80
80
  end
81
81
 
82
- shared_examples 'capybara login page' do |project_name|
83
- subject(:login) { read_generated(project_name, 'page_objects/pages/login.rb') }
84
-
85
- it 'uses fill_in for input' do
86
- expect(login).to include('fill_in')
87
- end
88
-
89
- it 'uses click_button' do
90
- expect(login).to include('click_button')
91
- end
92
-
93
- it 'has no private element methods' do
94
- expect(login).not_to include('private')
95
- expect(login).not_to match(/def username_field/)
96
- end
97
-
98
- it 'does not include Selenium methods' do
99
- expect(login).not_to include('find_element')
100
- expect(login).not_to include('send_keys')
101
- end
102
-
103
- it 'does not include Watir methods' do
104
- expect(login).not_to include('browser.text_field')
105
- end
106
- end
107
-
108
82
  # --- Abstract page ---
109
83
 
110
84
  shared_examples 'valid abstract page' do |project_name|
@@ -159,30 +133,6 @@ describe 'Page object content' do
159
133
  end
160
134
  end
161
135
 
162
- shared_examples 'capybara abstract page' do |project_name|
163
- subject(:page) { read_generated(project_name, 'page_objects/abstract/page.rb') }
164
-
165
- it 'includes Capybara::DSL' do
166
- expect(page).to include('include Capybara::DSL')
167
- end
168
-
169
- it 'uses visit_page method' do
170
- expect(page).to match(/def visit_page/)
171
- end
172
-
173
- it 'uses Capybara.visit' do
174
- expect(page).to include('Capybara.visit')
175
- end
176
-
177
- it 'does not have attr_reader :driver' do
178
- expect(page).not_to include('attr_reader :driver')
179
- end
180
-
181
- it 'does not have initialize with driver' do
182
- expect(page).not_to match(/def initialize\(driver\)/)
183
- end
184
- end
185
-
186
136
  # --- Contexts ---
187
137
 
188
138
  context 'with rspec and selenium' do
@@ -201,14 +151,6 @@ describe 'Page object content' do
201
151
  include_examples 'watir abstract page', name
202
152
  end
203
153
 
204
- context 'with rspec and capybara' do
205
- name = "#{FrameworkIndex::RSPEC}_#{AutomationIndex::CAPYBARA}"
206
- include_examples 'valid login page', name
207
- include_examples 'capybara login page', name
208
- include_examples 'valid abstract page', name
209
- include_examples 'capybara abstract page', name
210
- end
211
-
212
154
  context 'with cucumber and selenium' do
213
155
  name = "#{FrameworkIndex::CUCUMBER}_#{AutomationIndex::SELENIUM}"
214
156
  include_examples 'valid login page', name
@@ -225,35 +167,4 @@ describe 'Page object content' do
225
167
  include_examples 'watir abstract page', name
226
168
  end
227
169
 
228
- context 'with cucumber and capybara' do
229
- name = "#{FrameworkIndex::CUCUMBER}_#{AutomationIndex::CAPYBARA}"
230
- include_examples 'valid login page', name
231
- include_examples 'capybara login page', name
232
- include_examples 'valid abstract page', name
233
- include_examples 'capybara abstract page', name
234
- end
235
-
236
- context 'with minitest and selenium' do
237
- name = "#{FrameworkIndex::MINITEST}_#{AutomationIndex::SELENIUM}"
238
- include_examples 'valid login page', name
239
- include_examples 'selenium login page', name
240
- include_examples 'valid abstract page', name
241
- include_examples 'selenium abstract page', name
242
- end
243
-
244
- context 'with minitest and watir' do
245
- name = "#{FrameworkIndex::MINITEST}_#{AutomationIndex::WATIR}"
246
- include_examples 'valid login page', name
247
- include_examples 'watir login page', name
248
- include_examples 'valid abstract page', name
249
- include_examples 'watir abstract page', name
250
- end
251
-
252
- context 'with minitest and capybara' do
253
- name = "#{FrameworkIndex::MINITEST}_#{AutomationIndex::CAPYBARA}"
254
- include_examples 'valid login page', name
255
- include_examples 'capybara login page', name
256
- include_examples 'valid abstract page', name
257
- include_examples 'capybara abstract page', name
258
- end
259
170
  end
@@ -2,8 +2,8 @@
2
2
 
3
3
  require_relative 'content_helper'
4
4
 
5
- SYNTAX_WEB_AUTOMATIONS = %w[selenium watir capybara].freeze
6
- SYNTAX_ALL_FRAMEWORKS = %w[cucumber rspec minitest].freeze
5
+ SYNTAX_WEB_AUTOMATIONS = %w[selenium watir].freeze
6
+ SYNTAX_ALL_FRAMEWORKS = %w[cucumber rspec].freeze
7
7
 
8
8
  describe 'Ruby syntax validation' do
9
9
  SYNTAX_ALL_FRAMEWORKS.each do |framework|
@@ -68,92 +68,6 @@ describe 'Test file content' do
68
68
  end
69
69
  end
70
70
 
71
- shared_examples 'capybara rspec spec' do |project_name|
72
- subject(:spec) { read_generated(project_name, 'spec/login_page_spec.rb') }
73
-
74
- it 'instantiates Login without arguments' do
75
- expect(spec).to include('Login.new')
76
- expect(spec).not_to match(/Login\.new\((?:driver|browser)\)/)
77
- end
78
-
79
- it 'uses visit_page method' do
80
- expect(spec).to include('.visit_page')
81
- end
82
- end
83
-
84
- # --- Minitest tests ---
85
-
86
- shared_examples 'valid minitest test' do |project_name|
87
- subject(:test) { read_generated(project_name, 'test/test_login_page.rb') }
88
-
89
- it 'has frozen_string_literal' do
90
- expect(test).to have_frozen_string_literal
91
- end
92
-
93
- it 'has valid Ruby syntax' do
94
- expect(test).to have_valid_ruby_syntax
95
- end
96
-
97
- it 'defines class inheriting from Minitest::Test' do
98
- expect(test).to match(/class TestLogin < Minitest::Test/)
99
- end
100
-
101
- it 'requires test_helper' do
102
- expect(test).to include("require_relative '../helpers/test_helper'")
103
- end
104
-
105
- it 'has setup method' do
106
- expect(test).to match(/def setup/)
107
- end
108
-
109
- it 'has teardown method' do
110
- expect(test).to match(/def teardown/)
111
- end
112
-
113
- it 'has test methods' do
114
- expect(test).to match(/def test_login_with_right_credentials/)
115
- expect(test).to match(/def test_login_with_wrong_credentials/)
116
- end
117
-
118
- it 'uses assert_equal' do
119
- expect(test).to include('assert_equal')
120
- end
121
- end
122
-
123
- shared_examples 'selenium minitest test' do |project_name|
124
- subject(:test) { read_generated(project_name, 'test/test_login_page.rb') }
125
-
126
- it 'instantiates Login with driver' do
127
- expect(test).to include('Login.new(driver)')
128
- end
129
-
130
- it 'uses visit method' do
131
- expect(test).to include('.visit')
132
- expect(test).not_to include('.visit_page')
133
- end
134
- end
135
-
136
- shared_examples 'watir minitest test' do |project_name|
137
- subject(:test) { read_generated(project_name, 'test/test_login_page.rb') }
138
-
139
- it 'instantiates Login with browser' do
140
- expect(test).to include('Login.new(browser)')
141
- end
142
- end
143
-
144
- shared_examples 'capybara minitest test' do |project_name|
145
- subject(:test) { read_generated(project_name, 'test/test_login_page.rb') }
146
-
147
- it 'instantiates Login without arguments' do
148
- expect(test).to include('Login.new')
149
- expect(test).not_to match(/Login\.new\((?:driver|browser)\)/)
150
- end
151
-
152
- it 'uses visit_page method' do
153
- expect(test).to include('.visit_page')
154
- end
155
- end
156
-
157
71
  # --- Cucumber features and steps ---
158
72
 
159
73
  shared_examples 'valid cucumber feature' do |project_name|
@@ -212,32 +126,6 @@ describe 'Test file content' do
212
126
  include_examples 'watir rspec spec', name
213
127
  end
214
128
 
215
- context 'with rspec and capybara' do
216
- name = "#{FrameworkIndex::RSPEC}_#{AutomationIndex::CAPYBARA}"
217
- include_examples 'valid rspec spec', name
218
- include_examples 'capybara rspec spec', name
219
- end
220
-
221
- # --- Minitest contexts ---
222
-
223
- context 'with minitest and selenium' do
224
- name = "#{FrameworkIndex::MINITEST}_#{AutomationIndex::SELENIUM}"
225
- include_examples 'valid minitest test', name
226
- include_examples 'selenium minitest test', name
227
- end
228
-
229
- context 'with minitest and watir' do
230
- name = "#{FrameworkIndex::MINITEST}_#{AutomationIndex::WATIR}"
231
- include_examples 'valid minitest test', name
232
- include_examples 'watir minitest test', name
233
- end
234
-
235
- context 'with minitest and capybara' do
236
- name = "#{FrameworkIndex::MINITEST}_#{AutomationIndex::CAPYBARA}"
237
- include_examples 'valid minitest test', name
238
- include_examples 'capybara minitest test', name
239
- end
240
-
241
129
  # --- Cucumber contexts ---
242
130
 
243
131
  context 'with cucumber and selenium' do
@@ -256,11 +144,4 @@ describe 'Test file content' do
256
144
  include_examples 'valid cucumber config', name
257
145
  end
258
146
 
259
- context 'with cucumber and capybara' do
260
- name = "#{FrameworkIndex::CUCUMBER}_#{AutomationIndex::CAPYBARA}"
261
- include_examples 'valid cucumber feature', name
262
- include_examples 'valid cucumber env', name
263
- include_examples 'valid cucumber world', name
264
- include_examples 'valid cucumber config', name
265
- end
266
147
  end