ruby_raider 0.6.0 → 0.6.1

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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/.github/auto_assign-issues.yml +8 -0
  3. data/.github/workflows/rspec.yml +2 -0
  4. data/.reek.yml +5 -1
  5. data/Rakefile +6 -0
  6. data/lib/commands/open_ai_commands.rb +9 -7
  7. data/lib/commands/scaffolding_commands.rb +35 -24
  8. data/lib/commands/utility_commands.rb +19 -7
  9. data/lib/desktop/components/base_component.rb +18 -0
  10. data/lib/desktop/components/runner_components.rb +185 -0
  11. data/lib/desktop/screens/runner_screen.rb +20 -0
  12. data/lib/generators/automation/automation_examples_generator.rb +14 -11
  13. data/lib/generators/automation/automation_generator.rb +4 -4
  14. data/lib/generators/automation/templates/partials/selenium_login.tt +5 -5
  15. data/lib/generators/automation/templates/partials/url_methods.tt +1 -0
  16. data/lib/generators/automation/templates/partials/watir_login.tt +1 -1
  17. data/lib/generators/common_generator.rb +11 -3
  18. data/lib/generators/generator.rb +21 -1
  19. data/lib/generators/helper_generator.rb +21 -18
  20. data/lib/generators/invoke_generators.rb +5 -2
  21. data/lib/generators/menu_generator.rb +38 -19
  22. data/lib/generators/rspec/rspec_examples_generator.rb +14 -2
  23. data/lib/generators/rspec/templates/base_spec.tt +3 -1
  24. data/lib/generators/rspec/templates/data.tt +4 -0
  25. data/lib/generators/rspec/templates/factory.tt +10 -0
  26. data/lib/generators/rspec/templates/spec.tt +11 -7
  27. data/lib/generators/templates/common/gemfile.tt +5 -0
  28. data/lib/generators/templates/common/reek.tt +9 -0
  29. data/lib/generators/templates/common/rubocop.tt +92 -0
  30. data/lib/generators/templates/helpers/driver_helper.tt +2 -2
  31. data/lib/generators/templates/helpers/partials/driver_and_options.tt +3 -1
  32. data/lib/generators/templates/helpers/raider_helper.tt +0 -1
  33. data/lib/open_ai/open_ai.rb +13 -7
  34. data/lib/ruby_raider.rb +9 -0
  35. data/lib/utilities/utilities.rb +6 -18
  36. data/ruby_raider.gemspec +1 -1
  37. data/spec/common_generator_spec.rb +11 -5
  38. data/spec/open_ai_commands_spec.rb +5 -4
  39. data/spec/rspec_generator_spec.rb +12 -0
  40. data/spec/ruby_raider_spec.rb +31 -0
  41. data/spec/spec_helper.rb +4 -12
  42. metadata +11 -4
  43. data/lib/generators/templates/helpers/partials/require_automation.tt +0 -3
  44. data/lib/generators/templates/helpers/selenium_helper.tt +0 -36
@@ -0,0 +1,31 @@
1
+ require 'fileutils'
2
+ require_relative 'spec_helper'
3
+ require_relative '../lib/ruby_raider'
4
+
5
+ describe RubyRaider do
6
+ shared_examples 'execute framework' do |name|
7
+ it 'runs the tests' do
8
+ Bundler.with_unbundled_env do
9
+ Dir.chdir(name) do
10
+ `bundle exec raider u browser_options headless | raider u raid`
11
+ end
12
+ end
13
+ end
14
+ end
15
+
16
+ context 'with a Rspec and Selenium project' do
17
+ include_examples 'execute framework', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[2]}"
18
+ end
19
+
20
+ context 'with a Rspec and Watir project' do
21
+ include_examples 'execute framework', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[3]}"
22
+ end
23
+
24
+ context 'with a Cucumber and Selenium project' do
25
+ include_examples 'execute framework', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[2]}"
26
+ end
27
+
28
+ context 'with a Cucumber and Watir project' do
29
+ include_examples 'execute framework', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[3]}"
30
+ end
31
+ end
data/spec/spec_helper.rb CHANGED
@@ -3,27 +3,19 @@
3
3
  require 'fileutils'
4
4
  require 'rspec'
5
5
  require_relative '../lib/generators/invoke_generators'
6
+ require_relative 'support/settings_helper'
6
7
 
7
8
  AUTOMATION_TYPES = %w[android ios selenium watir cross_platform].freeze
8
9
  FRAMEWORKS = %w[cucumber rspec].freeze
9
10
 
10
- def create_settings(framework, automation, examples, visual)
11
- {
12
- automation: automation,
13
- examples: examples,
14
- framework: framework,
15
- name: "#{framework}_#{automation}#{'_visual' if visual}#{'_without_examples' unless examples}",
16
- visual: visual
17
- }
18
- end
19
-
20
11
  RSpec.configure do |config|
21
12
  config.include(InvokeGenerators)
13
+ config.include(SettingsHelper)
22
14
  config.before(:all) do
23
15
  FRAMEWORKS.each do |framework|
24
16
  AUTOMATION_TYPES.each do |automation|
25
17
  [true, false].product([true, false]) do |examples, visual|
26
- settings = create_settings(framework, automation, examples, visual)
18
+ settings = create_settings(framework: framework, automation: automation, examples: examples, visual: visual)
27
19
  generate_framework(settings)
28
20
  end
29
21
  end
@@ -34,7 +26,7 @@ RSpec.configure do |config|
34
26
  FRAMEWORKS.each do |framework|
35
27
  AUTOMATION_TYPES.each do |automation|
36
28
  [true, false].product([true, false]) do |examples, visual|
37
- settings = create_settings(framework, automation, examples, visual)
29
+ settings = create_settings(framework: framework, automation: automation, examples: examples, visual: visual)
38
30
  FileUtils.rm_rf(settings[:name])
39
31
  end
40
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_raider
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agustin Pequeno
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-02 00:00:00.000000000 Z
11
+ date: 2023-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -188,6 +188,7 @@ files:
188
188
  - ".github/FUNDING.yml"
189
189
  - ".github/ISSUE_TEMPLATE/bug_report.md"
190
190
  - ".github/ISSUE_TEMPLATE/feature_request.md"
191
+ - ".github/auto_assign-issues.yml"
191
192
  - ".github/workflows/reek.yml"
192
193
  - ".github/workflows/rspec.yml"
193
194
  - ".github/workflows/rubocop.yml"
@@ -204,6 +205,9 @@ files:
204
205
  - lib/commands/open_ai_commands.rb
205
206
  - lib/commands/scaffolding_commands.rb
206
207
  - lib/commands/utility_commands.rb
208
+ - lib/desktop/components/base_component.rb
209
+ - lib/desktop/components/runner_components.rb
210
+ - lib/desktop/screens/runner_screen.rb
207
211
  - lib/generators/automation/automation_examples_generator.rb
208
212
  - lib/generators/automation/automation_generator.rb
209
213
  - lib/generators/automation/templates/abstract_component.tt
@@ -249,6 +253,8 @@ files:
249
253
  - lib/generators/rspec/rspec_examples_generator.rb
250
254
  - lib/generators/rspec/rspec_generator.rb
251
255
  - lib/generators/rspec/templates/base_spec.tt
256
+ - lib/generators/rspec/templates/data.tt
257
+ - lib/generators/rspec/templates/factory.tt
252
258
  - lib/generators/rspec/templates/spec.tt
253
259
  - lib/generators/templates/common/config.tt
254
260
  - lib/generators/templates/common/gemfile.tt
@@ -257,6 +263,8 @@ files:
257
263
  - lib/generators/templates/common/partials/web_config.tt
258
264
  - lib/generators/templates/common/rakefile.tt
259
265
  - lib/generators/templates/common/read_me.tt
266
+ - lib/generators/templates/common/reek.tt
267
+ - lib/generators/templates/common/rubocop.tt
260
268
  - lib/generators/templates/helpers/allure_helper.tt
261
269
  - lib/generators/templates/helpers/appium_helper.tt
262
270
  - lib/generators/templates/helpers/browser_helper.tt
@@ -265,11 +273,9 @@ files:
265
273
  - lib/generators/templates/helpers/partials/allure_requirements.tt
266
274
  - lib/generators/templates/helpers/partials/driver_and_options.tt
267
275
  - lib/generators/templates/helpers/partials/quit_driver.tt
268
- - lib/generators/templates/helpers/partials/require_automation.tt
269
276
  - lib/generators/templates/helpers/partials/screenshot.tt
270
277
  - lib/generators/templates/helpers/partials/select_driver.tt
271
278
  - lib/generators/templates/helpers/raider_helper.tt
272
- - lib/generators/templates/helpers/selenium_helper.tt
273
279
  - lib/generators/templates/helpers/spec_helper.tt
274
280
  - lib/generators/templates/helpers/visual_helper.tt
275
281
  - lib/generators/templates/helpers/visual_spec_helper.tt
@@ -288,6 +294,7 @@ files:
288
294
  - spec/helpers_generator_spec.rb
289
295
  - spec/open_ai_commands_spec.rb
290
296
  - spec/rspec_generator_spec.rb
297
+ - spec/ruby_raider_spec.rb
291
298
  - spec/scaffolding_commands_spec.rb
292
299
  - spec/spec_helper.rb
293
300
  - spec/utility_commands_spec.rb
@@ -1,3 +0,0 @@
1
- <% if automation == 'selenium' %>
2
- require_relative 'selenium_helper'
3
- <% end %>
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'selenium-webdriver'
4
- require_relative 'driver_helper'
5
-
6
- module Raider
7
- module SeleniumHelper
8
- def click_when_present
9
- # This is an example of an implicit wait in selenium
10
- wait = Selenium::WebDriver::Wait.new(timeout: 15)
11
- wait.until { displayed? }
12
- click
13
- end
14
-
15
- def select_by(key, value)
16
- # Creates new Select object to use the select by method
17
- dropdown = Selenium::WebDriver::Support::Select.new self
18
- dropdown.select_by(key, value)
19
- end
20
-
21
- def hover
22
- # Using actions to move the mouse over an element
23
- DriverHelper.driver.action.move_to(self).perform
24
- end
25
-
26
- # How to perform right click through the context click method
27
- def right_click
28
- DriverHelper.driver.action.context_click(self).perform
29
- end
30
- end
31
-
32
- # Here we are opening the selenium class and adding our custom method
33
- class Selenium::WebDriver::Element
34
- include SeleniumHelper
35
- end
36
- end