ruby_raider 0.7.1 → 0.7.2
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/README.md +1 -1
- data/lib/generators/automation/automation_examples_generator.rb +6 -1
- data/lib/generators/automation/automation_generator.rb +14 -5
- data/lib/generators/automation/templates/account_page.tt +5 -0
- data/lib/generators/automation/templates/login_page.tt +5 -5
- data/lib/generators/automation/templates/partials/selenium_account.tt +17 -0
- data/lib/generators/automation/templates/partials/watir_account.tt +15 -0
- data/lib/generators/common_generator.rb +3 -3
- data/lib/generators/cucumber/cucumber_generator.rb +1 -1
- data/lib/generators/cucumber/templates/env.tt +7 -7
- data/lib/generators/cucumber/templates/feature.tt +1 -1
- data/lib/generators/cucumber/templates/partials/driver_world.tt +10 -6
- data/lib/generators/cucumber/templates/partials/selenium_env.tt +44 -0
- data/lib/generators/cucumber/templates/partials/watir_env.tt +32 -1
- data/lib/generators/cucumber/templates/partials/watir_world.tt +3 -2
- data/lib/generators/cucumber/templates/partials/web_steps.tt +8 -3
- data/lib/generators/cucumber/templates/steps.tt +3 -3
- data/lib/generators/cucumber/templates/world.tt +5 -5
- data/lib/generators/generator.rb +25 -4
- data/lib/generators/helper_generator.rb +12 -6
- data/lib/generators/menu_generator.rb +2 -2
- data/lib/generators/rspec/rspec_examples_generator.rb +2 -2
- data/lib/generators/rspec/templates/spec.tt +13 -28
- data/lib/generators/templates/common/gemfile.tt +3 -4
- data/lib/generators/templates/common/read_me.tt +1 -1
- data/lib/generators/templates/helpers/allure_helper.tt +5 -4
- data/lib/generators/templates/helpers/driver_helper.tt +4 -4
- data/lib/generators/templates/helpers/partials/driver_and_options.tt +1 -1
- data/lib/generators/templates/helpers/partials/screenshot.tt +3 -6
- data/lib/generators/templates/helpers/raider_helper.tt +0 -2
- data/lib/generators/templates/helpers/spec_helper.tt +2 -2
- data/lib/generators/templates/helpers/visual_spec_helper.tt +5 -9
- data/ruby_raider.gemspec +1 -2
- data/spec/helpers_generator_spec.rb +0 -10
- metadata +7 -18
- data/lib/generators/cucumber/templates/partials/selenium_appium_env.tt +0 -13
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 8710aab0ae8636ca5829f35c5a5d5076002b02caf918284b161816eeda0b6dca
         | 
| 4 | 
            +
              data.tar.gz: b69e53e10c6bfa0a8132e8975b8ce54cd412bfde5b88d465d244d9241005b4c0
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 8bc42e8cc009974f4793e47ed2a9eba9afd651fe1309f91a247d587a63618d3302e3ee68bcaaf71378446edd30f5e6b35582ee38c55407e34973f0a1e8fa5538
         | 
| 7 | 
            +
              data.tar.gz: b189d100a0a4c47dcb6be4d58e7ff17e47ffb91c031a820db0d9f84f0a5368a3974d3cb2f846c0286cc6e6405a5cad851f3e44c79f637b41fbfc6b0bfbbaf993
         | 
    
        data/README.md
    CHANGED
    
    | @@ -54,7 +54,7 @@ Ruby Raider is a generator and scaffolding gem to make UI test automation easier | |
| 54 54 |  | 
| 55 55 | 
             
            * Generating a visual testing framework with Rspec, Applitools and Selenium
         | 
| 56 56 |  | 
| 57 | 
            -
            * Generating a visual testing framework with  | 
| 57 | 
            +
            * Generating a visual testing framework with Cucumber, Applitools and Selenium
         | 
| 58 58 |  | 
| 59 59 | 
             
            ***In order to run the Appium tests, download the example [app](https://github.com/saucelabs/my-demo-app-rn).***
         | 
| 60 60 |  | 
| @@ -4,7 +4,7 @@ require_relative '../generator' | |
| 4 4 |  | 
| 5 5 | 
             
            class AutomationExamplesGenerator < Generator
         | 
| 6 6 | 
             
              def generate_example_files
         | 
| 7 | 
            -
                if  | 
| 7 | 
            +
                if mobile?
         | 
| 8 8 | 
             
                  generate_home_page
         | 
| 9 9 | 
             
                  generate_pdp_page
         | 
| 10 10 | 
             
                else
         | 
| @@ -12,6 +12,7 @@ class AutomationExamplesGenerator < Generator | |
| 12 12 | 
             
                  generate_model_data
         | 
| 13 13 | 
             
                  generate_header_component
         | 
| 14 14 | 
             
                  generate_login_page
         | 
| 15 | 
            +
                  generate_account_page
         | 
| 15 16 | 
             
                end
         | 
| 16 17 | 
             
              end
         | 
| 17 18 |  | 
| @@ -21,6 +22,10 @@ class AutomationExamplesGenerator < Generator | |
| 21 22 | 
             
                template('login_page.tt', "#{name}/page_objects/pages/login_page.rb")
         | 
| 22 23 | 
             
              end
         | 
| 23 24 |  | 
| 25 | 
            +
              def generate_account_page
         | 
| 26 | 
            +
                template('account_page.tt', "#{name}/page_objects/pages/account_page.rb")
         | 
| 27 | 
            +
              end
         | 
| 28 | 
            +
             | 
| 24 29 | 
             
              def generate_home_page
         | 
| 25 30 | 
             
                template('home_page.tt', "#{name}/page_objects/pages/home_page.rb")
         | 
| 26 31 | 
             
              end
         | 
| @@ -3,24 +3,33 @@ | |
| 3 3 | 
             
            require_relative '../generator'
         | 
| 4 4 |  | 
| 5 5 | 
             
            class AutomationGenerator < Generator
         | 
| 6 | 
            +
              def generate_automation_files
         | 
| 7 | 
            +
                if mobile?
         | 
| 8 | 
            +
                  generate_appium_settings
         | 
| 9 | 
            +
                else
         | 
| 10 | 
            +
                  generate_abstract_component
         | 
| 11 | 
            +
                  generate_visual_options
         | 
| 12 | 
            +
                end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                generate_abstract_page
         | 
| 15 | 
            +
              end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
              private
         | 
| 18 | 
            +
             | 
| 6 19 | 
             
              def generate_abstract_page
         | 
| 7 20 | 
             
                template('abstract_page.tt', "#{name}/page_objects/abstract/abstract_page.rb")
         | 
| 8 21 | 
             
              end
         | 
| 9 22 |  | 
| 10 23 | 
             
              def generate_abstract_component
         | 
| 11 | 
            -
                return if mobile_platform?
         | 
| 12 | 
            -
             | 
| 13 24 | 
             
                template('abstract_component.tt', "#{name}/page_objects/abstract/abstract_component.rb")
         | 
| 14 25 | 
             
              end
         | 
| 15 26 |  | 
| 16 27 | 
             
              def generate_appium_settings
         | 
| 17 | 
            -
                return unless mobile_platform?
         | 
| 18 | 
            -
             | 
| 19 28 | 
             
                template('appium_caps.tt', "#{name}/config/capabilities.yml")
         | 
| 20 29 | 
             
              end
         | 
| 21 30 |  | 
| 22 31 | 
             
              def generate_visual_options
         | 
| 23 | 
            -
                return unless  | 
| 32 | 
            +
                return unless visual?
         | 
| 24 33 |  | 
| 25 34 | 
             
                template('visual_options.tt', "#{name}/config/options.yml")
         | 
| 26 35 | 
             
              end
         | 
| @@ -0,0 +1,5 @@ | |
| 1 | 
            +
            <%- if automation == 'selenium' -%>
         | 
| 2 | 
            +
            <%=- ERB.new(File.read(File.expand_path('./partials/selenium_account.tt', __dir__)), trim_mode: '-').result(binding) -%>
         | 
| 3 | 
            +
            <%- elsif automation == 'watir' -%>
         | 
| 4 | 
            +
            <%=- ERB.new(File.read(File.expand_path('./partials/watir_account.tt', __dir__)), trim_mode: '-').result(binding) -%>
         | 
| 5 | 
            +
            <%- end -%>
         | 
| @@ -1,5 +1,5 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 3 | 
            -
             | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 1 | 
            +
            <%- if automation == 'selenium' -%>
         | 
| 2 | 
            +
            <%=- ERB.new(File.read(File.expand_path('./partials/selenium_login.tt', __dir__)), trim_mode: '-').result(binding) -%>
         | 
| 3 | 
            +
            <%- elsif automation == 'watir' -%>
         | 
| 4 | 
            +
            <%=- ERB.new(File.read(File.expand_path('./partials/watir_login.tt', __dir__)), trim_mode: '-').result(binding) -%>
         | 
| 5 | 
            +
            <%- end -%>
         | 
| @@ -0,0 +1,17 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require_relative '../abstract/abstract_page'
         | 
| 4 | 
            +
            require_relative '../components/header_component'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            class AccountPage < AbstractPage
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              def url(_page)
         | 
| 9 | 
            +
                'index.php?rt=account/account'
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              # Components
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              def header
         | 
| 15 | 
            +
                HeaderComponent.new(driver.find_element(class: 'menu_text'))
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
            end
         | 
| @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            require_relative '../abstract/abstract_page'
         | 
| 2 | 
            +
            require_relative '../components/header_component'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            class AccountPage < AbstractPage
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              def url(_page)
         | 
| 7 | 
            +
                'index.php?rt=account/account'
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              # Components
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              def header
         | 
| 13 | 
            +
                HeaderComponent.new(browser.element(class: 'menu_text'))
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
            end
         | 
| @@ -8,7 +8,7 @@ class CommonGenerator < Generator | |
| 8 8 | 
             
              end
         | 
| 9 9 |  | 
| 10 10 | 
             
              def generate_config_file
         | 
| 11 | 
            -
                return if  | 
| 11 | 
            +
                return if mobile?
         | 
| 12 12 |  | 
| 13 13 | 
             
                template('common/config.tt', "#{name}/config/config.yml")
         | 
| 14 14 | 
             
              end
         | 
| @@ -30,10 +30,10 @@ class CommonGenerator < Generator | |
| 30 30 | 
             
              end
         | 
| 31 31 |  | 
| 32 32 | 
             
              def create_allure_folder
         | 
| 33 | 
            -
                empty_directory "#{name}/allure-results" | 
| 33 | 
            +
                empty_directory "#{name}/allure-results"
         | 
| 34 34 | 
             
              end
         | 
| 35 35 |  | 
| 36 36 | 
             
              def create_screenshots_folder
         | 
| 37 | 
            -
                empty_directory "#{name}/allure-results/screenshots" | 
| 37 | 
            +
                empty_directory "#{name}/allure-results/screenshots"
         | 
| 38 38 | 
             
              end
         | 
| 39 39 | 
             
            end
         | 
| @@ -1,8 +1,8 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            <%- case automation
         | 
| 2 2 | 
             
             when 'selenium' -%>
         | 
| 3 | 
            -
             | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 3 | 
            +
            <%=- ERB.new(File.read(File.expand_path('./partials/selenium_env.tt', __dir__)), trim_mode: '-').result(binding) -%>
         | 
| 4 | 
            +
            <%- when 'watir' -%>
         | 
| 5 | 
            +
            <%=- ERB.new(File.read(File.expand_path('./partials/watir_env.tt', __dir__)), trim_mode: '-').result(binding) -%>
         | 
| 6 | 
            +
            <%- else -%>
         | 
| 7 | 
            +
            <%=- ERB.new(File.read(File.expand_path('./partials/appium_env.tt', __dir__)), trim_mode: '-').result(binding) -%>
         | 
| 8 | 
            +
            <%- end -%>
         | 
| @@ -1,7 +1,11 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 1 | 
            +
            require_relative '../../helpers/driver_helper'
         | 
| 2 | 
            +
            <%- if visual_automation -%>
         | 
| 3 | 
            +
            require_relative '../../helpers/visual_helper'
         | 
| 4 | 
            +
            <%- end -%>
         | 
| 5 | 
            +
            <%- if automation == 'selenium' -%>
         | 
| 6 | 
            +
            require_relative '../../models/user_factory'
         | 
| 3 7 |  | 
| 4 | 
            -
            World(DriverHelper | 
| 5 | 
            -
             | 
| 6 | 
            -
            World(DriverHelper)
         | 
| 7 | 
            -
             | 
| 8 | 
            +
            World(Raider::DriverHelper<%- if visual_automation -%>, Raider::VisualHelper<%- end -%>)
         | 
| 9 | 
            +
            <%- else -%>
         | 
| 10 | 
            +
            World(Raider::DriverHelper)
         | 
| 11 | 
            +
            <%- end -%>
         | 
| @@ -0,0 +1,44 @@ | |
| 1 | 
            +
            <%- if visual_automation -%>
         | 
| 2 | 
            +
            # frozen_string_literal: true
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            require_relative '../../helpers/driver_helper'
         | 
| 5 | 
            +
            require_relative '../../helpers/visual_helper'
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            include Raider::DriverHelper
         | 
| 8 | 
            +
            include Raider::VisualHelper
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            Before do
         | 
| 11 | 
            +
              OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
         | 
| 12 | 
            +
              @grid_runner = create_grid_runner
         | 
| 13 | 
            +
              @eyes = create_eyes(@grid_runner)
         | 
| 14 | 
            +
              configure_eyes @eyes
         | 
| 15 | 
            +
              @driver = @eyes.open(driver: new_driver)
         | 
| 16 | 
            +
            end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            After do |scenario|
         | 
| 19 | 
            +
              driver.save_screenshot("allure-results/screenshots/#{scenario.name}.png")
         | 
| 20 | 
            +
              Raider::AllureHelper.add_screenshot(scenario.name)
         | 
| 21 | 
            +
              @eyes.close
         | 
| 22 | 
            +
              @driver.quit
         | 
| 23 | 
            +
              @eyes.abort_async
         | 
| 24 | 
            +
              results = @grid_runner.get_all_test_results
         | 
| 25 | 
            +
              puts results
         | 
| 26 | 
            +
            end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            <%- else -%>
         | 
| 29 | 
            +
            # frozen_string_literal: true
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            require_relative '../../helpers/driver_helper'
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            include Raider::DriverHelper
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            Before do
         | 
| 36 | 
            +
              new_driver
         | 
| 37 | 
            +
            end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            After do |scenario|
         | 
| 40 | 
            +
              driver.save_screenshot("allure-results/screenshots/#{scenario.name}.png")
         | 
| 41 | 
            +
              Raider::AllureHelper.add_screenshot(scenario.name)
         | 
| 42 | 
            +
              driver.quit
         | 
| 43 | 
            +
            end
         | 
| 44 | 
            +
            <%- end -%>
         | 
| @@ -1,3 +1,33 @@ | |
| 1 | 
            +
            <%- if visual_automation -%>
         | 
| 2 | 
            +
            # frozen_string_literal: true
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            require_relative '../../helpers/browser_helper'
         | 
| 5 | 
            +
            require_relative '../../helpers/visual_helper'
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            include Raider::BrowserHelper
         | 
| 8 | 
            +
            include Raider::VisualHelper
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            Before do
         | 
| 11 | 
            +
              OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
         | 
| 12 | 
            +
              @grid_runner = create_grid_runner
         | 
| 13 | 
            +
              @eyes = create_eyes(@grid_runner)
         | 
| 14 | 
            +
              configure_eyes @eyes
         | 
| 15 | 
            +
              @browser = @eyes.open(driver: new_browser.driver)
         | 
| 16 | 
            +
            end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            After do |scenario|
         | 
| 19 | 
            +
              browser.screenshot.save("allure-results/screenshots/#{scenario.name}.png")
         | 
| 20 | 
            +
              Raider::AllureHelper.add_screenshot(scenario.name)
         | 
| 21 | 
            +
              @eyes.close
         | 
| 22 | 
            +
              @browser.quit
         | 
| 23 | 
            +
              @eyes.abort_async
         | 
| 24 | 
            +
              results = @grid_runner.get_all_test_results
         | 
| 25 | 
            +
              puts results
         | 
| 26 | 
            +
            end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            <%- else -%>
         | 
| 29 | 
            +
            # frozen_string_literal: true
         | 
| 30 | 
            +
             | 
| 1 31 | 
             
            require_relative '../../helpers/browser_helper'
         | 
| 2 32 |  | 
| 3 33 | 
             
            include Raider::BrowserHelper
         | 
| @@ -10,4 +40,5 @@ After do |scenario| | |
| 10 40 | 
             
              browser.screenshot.save("allure-results/screenshots/#{scenario.name}.png")
         | 
| 11 41 | 
             
              Raider::AllureHelper.add_screenshot(scenario.name)
         | 
| 12 42 | 
             
              browser.quit
         | 
| 13 | 
            -
            end
         | 
| 43 | 
            +
            end
         | 
| 44 | 
            +
            <%- end -%>
         | 
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 | 
            +
            require_relative '../../page_objects/pages/account_page'
         | 
| 3 4 | 
             
            require_relative '../../page_objects/pages/login_page'
         | 
| 4 | 
            -
            require_relative '../../models/user_factory'
         | 
| 5 5 |  | 
| 6 6 | 
             
            Given("I'm a {user} on the login page") do |user|
         | 
| 7 7 | 
             
              @user = user
         | 
| @@ -13,6 +13,11 @@ When('I login with my credentials') do | |
| 13 13 | 
             
              @login_page.login(@user['username'], @user['password'])
         | 
| 14 14 | 
             
            end
         | 
| 15 15 |  | 
| 16 | 
            -
             | 
| 17 | 
            -
               | 
| 16 | 
            +
            Then("I'm logged in") do
         | 
| 17 | 
            +
              account_page = AccountPage.new(<% if automation == 'watir' %>browser<% else %>driver<% end %>)
         | 
| 18 | 
            +
              <%- if visual_automation == true -%>
         | 
| 19 | 
            +
              check_page account_page
         | 
| 20 | 
            +
              <%- else -%>
         | 
| 21 | 
            +
              expect(account_page.header.customer_name).to eq "Welcome back #{@user['name']}"
         | 
| 22 | 
            +
              <%- end -%>
         | 
| 18 23 | 
             
            end
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            <% if %w[selenium watir].include? automation -%>
         | 
| 2 | 
            -
            <%= ERB.new(File.read(File.expand_path('./partials/web_steps.tt', __dir__))).result(binding).strip! -%>
         | 
| 2 | 
            +
            <%= ERB.new(File.read(File.expand_path('./partials/web_steps.tt', __dir__)), trim_mode: '-').result(binding).strip! -%>
         | 
| 3 3 | 
             
            <% else -%>
         | 
| 4 | 
            -
            <%= ERB.new(File.read(File.expand_path('./partials/mobile_steps.tt', __dir__))).result(binding).strip! -%>
         | 
| 5 | 
            -
            <% end -%>
         | 
| 4 | 
            +
            <%= ERB.new(File.read(File.expand_path('./partials/mobile_steps.tt', __dir__)), trim_mode: '-').result(binding).strip! -%>
         | 
| 5 | 
            +
            <% end -%>
         | 
| @@ -1,5 +1,5 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 3 | 
            -
             | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 1 | 
            +
            <%- if automation == 'watir' -%>
         | 
| 2 | 
            +
            <%=- ERB.new(File.read(File.expand_path('./partials/watir_world.tt', __dir__)), trim_mode: '-').result(binding).strip! -%>
         | 
| 3 | 
            +
            <%- else -%>
         | 
| 4 | 
            +
            <%=- ERB.new(File.read(File.expand_path('./partials/driver_world.tt', __dir__)), trim_mode: '-').result(binding).strip! -%>
         | 
| 5 | 
            +
            <%- end -%>
         | 
    
        data/lib/generators/generator.rb
    CHANGED
    
    | @@ -19,15 +19,36 @@ class Generator < Thor::Group | |
| 19 19 | 
             
                initializer.first
         | 
| 20 20 | 
             
              end
         | 
| 21 21 |  | 
| 22 | 
            -
              def  | 
| 23 | 
            -
                 | 
| 22 | 
            +
              def cucumber?
         | 
| 23 | 
            +
                args.include?('cucumber')
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
              # The framework is cross platform when it supports Android and iOS
         | 
| 27 | 
            +
              def cross_platform?
         | 
| 28 | 
            +
                args.include?('cross_platform')
         | 
| 24 29 | 
             
              end
         | 
| 25 30 |  | 
| 26 | 
            -
              def  | 
| 31 | 
            +
              def mobile?
         | 
| 27 32 | 
             
                (args & %w[android ios cross_platform]).count.positive?
         | 
| 28 33 | 
             
              end
         | 
| 29 34 |  | 
| 30 | 
            -
              def  | 
| 35 | 
            +
              def rspec?
         | 
| 36 | 
            +
                args.include?('rspec')
         | 
| 37 | 
            +
              end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
              def selenium?
         | 
| 40 | 
            +
                args.include?('selenium')
         | 
| 41 | 
            +
              end
         | 
| 42 | 
            +
             | 
| 43 | 
            +
              def visual?
         | 
| 44 | 
            +
                initializer.first.last
         | 
| 45 | 
            +
              end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
              def watir?
         | 
| 48 | 
            +
                args.include?('watir')
         | 
| 49 | 
            +
              end
         | 
| 50 | 
            +
             | 
| 51 | 
            +
              def web?
         | 
| 31 52 | 
             
                args.include?(%w[selenium watir])
         | 
| 32 53 | 
             
              end
         | 
| 33 54 |  | 
| @@ -8,12 +8,12 @@ class HelpersGenerator < Generator | |
| 8 8 | 
             
                generate_browser_helper
         | 
| 9 9 | 
             
                generate_driver_helper
         | 
| 10 10 | 
             
                generate_appium_helper
         | 
| 11 | 
            +
                generate_allure_helper
         | 
| 11 12 |  | 
| 12 | 
            -
                if  | 
| 13 | 
            +
                if visual?
         | 
| 13 14 | 
             
                  generate_visual_helper
         | 
| 14 15 | 
             
                  generate_visual_spec_helper
         | 
| 15 16 | 
             
                else
         | 
| 16 | 
            -
                  generate_allure_helper
         | 
| 17 17 | 
             
                  generate_spec_helper
         | 
| 18 18 | 
             
                end
         | 
| 19 19 | 
             
              end
         | 
| @@ -29,21 +29,25 @@ class HelpersGenerator < Generator | |
| 29 29 | 
             
              end
         | 
| 30 30 |  | 
| 31 31 | 
             
              def generate_browser_helper
         | 
| 32 | 
            -
                 | 
| 32 | 
            +
                return if selenium?
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                template('helpers/browser_helper.tt', "#{name}/helpers/browser_helper.rb")
         | 
| 33 35 | 
             
              end
         | 
| 34 36 |  | 
| 35 37 | 
             
              def generate_spec_helper
         | 
| 36 | 
            -
                 | 
| 38 | 
            +
                return if cucumber?
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                template('helpers/spec_helper.tt', "#{name}/helpers/spec_helper.rb")
         | 
| 37 41 | 
             
              end
         | 
| 38 42 |  | 
| 39 43 | 
             
              def generate_driver_helper
         | 
| 40 | 
            -
                return if  | 
| 44 | 
            +
                return if watir?
         | 
| 41 45 |  | 
| 42 46 | 
             
                template('helpers/driver_helper.tt', "#{name}/helpers/driver_helper.rb")
         | 
| 43 47 | 
             
              end
         | 
| 44 48 |  | 
| 45 49 | 
             
              def generate_appium_helper
         | 
| 46 | 
            -
                return unless  | 
| 50 | 
            +
                return unless cross_platform?
         | 
| 47 51 |  | 
| 48 52 | 
             
                template('helpers/appium_helper.tt', "#{name}/helpers/appium_helper.rb")
         | 
| 49 53 | 
             
              end
         | 
| @@ -53,6 +57,8 @@ class HelpersGenerator < Generator | |
| 53 57 | 
             
              end
         | 
| 54 58 |  | 
| 55 59 | 
             
              def generate_visual_spec_helper
         | 
| 60 | 
            +
                return if cucumber?
         | 
| 61 | 
            +
             | 
| 56 62 | 
             
                template('helpers/visual_spec_helper.tt', "#{name}/helpers/spec_helper.rb")
         | 
| 57 63 | 
             
              end
         | 
| 58 64 | 
             
            end
         | 
| @@ -80,14 +80,14 @@ class MenuGenerator | |
| 80 80 | 
             
              end
         | 
| 81 81 |  | 
| 82 82 | 
             
              def framework_with_examples(framework, automation_type)
         | 
| 83 | 
            -
                visual_automation = choose_visual_automation if %w[selenium | 
| 83 | 
            +
                visual_automation = choose_visual_automation if %w[selenium].include?(automation_type)
         | 
| 84 84 | 
             
                options = create_framework_options(automation: automation_type, framework: framework.downcase, visual_automation: visual_automation, with_examples: true)
         | 
| 85 85 | 
             
                set_up_framework(options)
         | 
| 86 86 | 
             
                prompt.say("You have chosen to use #{framework} with #{automation_type}")
         | 
| 87 87 | 
             
              end
         | 
| 88 88 |  | 
| 89 89 | 
             
              def framework_without_examples(framework, automation_type)
         | 
| 90 | 
            -
                visual_automation = choose_visual_automation if %w[selenium | 
| 90 | 
            +
                visual_automation = choose_visual_automation if %w[selenium].include?(automation_type)
         | 
| 91 91 | 
             
                options = create_framework_options(automation: automation_type, framework: framework.downcase, visual_automation: visual_automation, with_examples: false)
         | 
| 92 92 | 
             
                set_up_framework(options)
         | 
| 93 93 | 
             
                prompt.say("You have chosen to use #{framework} with #{automation_type}")
         | 
| @@ -4,13 +4,13 @@ require_relative '../generator' | |
| 4 4 |  | 
| 5 5 | 
             
            class RspecExamplesGenerator < Generator
         | 
| 6 6 | 
             
              def generate_login_spec
         | 
| 7 | 
            -
                return if  | 
| 7 | 
            +
                return if mobile?
         | 
| 8 8 |  | 
| 9 9 | 
             
                template('spec.tt', "#{name}/spec/login_page_spec.rb")
         | 
| 10 10 | 
             
              end
         | 
| 11 11 |  | 
| 12 12 | 
             
              def generate_pdp_spec
         | 
| 13 | 
            -
                return unless  | 
| 13 | 
            +
                return unless mobile?
         | 
| 14 14 |  | 
| 15 15 | 
             
                template('spec.tt', "#{name}/spec/pdp_page_spec.rb")
         | 
| 16 16 | 
             
              end
         | 
| @@ -1,40 +1,17 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            <%- if %w[selenium watir].include? automation -%>
         | 
| 2 2 | 
             
            # frozen_string_literal: true
         | 
| 3 3 |  | 
| 4 4 | 
             
            require_relative 'base_spec'
         | 
| 5 5 | 
             
            require_relative '../models/model_factory'
         | 
| 6 | 
            +
            require_relative '../page_objects/pages/account_page'
         | 
| 6 7 | 
             
            require_relative '../page_objects/pages/login_page'
         | 
| 7 8 |  | 
| 8 9 | 
             
            describe 'Login' do
         | 
| 9 | 
            -
              subject(:header) {  | 
| 10 | 
            -
             | 
| 11 | 
            -
              let(:user) { ModelFactory.for('users')['registered user'] }
         | 
| 12 | 
            -
              let(:login_page) { LoginPage.new(<% if automation == 'watir' -%>browser<% else -%>driver<% end -%>) }
         | 
| 13 | 
            -
             | 
| 14 | 
            -
              before do
         | 
| 15 | 
            -
                login_page.visit
         | 
| 16 | 
            -
              end
         | 
| 17 | 
            -
             | 
| 18 | 
            -
              context 'with right credentials' do
         | 
| 19 | 
            -
                let(:password) { user['password'] }
         | 
| 20 | 
            -
             | 
| 21 | 
            -
                it 'cannot see unexpected changes on the login page' do
         | 
| 22 | 
            -
                  check_page login_page
         | 
| 23 | 
            -
                end
         | 
| 24 | 
            -
              end
         | 
| 25 | 
            -
            end
         | 
| 26 | 
            -
            <%- elsif %w[selenium watir].include? automation -%>
         | 
| 27 | 
            -
            # frozen_string_literal: true
         | 
| 28 | 
            -
             | 
| 29 | 
            -
            require_relative 'base_spec'
         | 
| 30 | 
            -
            require_relative '../models/model_factory'
         | 
| 31 | 
            -
            require_relative '../page_objects/pages/login_page'
         | 
| 32 | 
            -
             | 
| 33 | 
            -
            describe 'Login' do
         | 
| 34 | 
            -
              subject(:header) { login_page.header.customer_name }
         | 
| 10 | 
            +
              subject(:header) { account_page.header.customer_name }
         | 
| 35 11 |  | 
| 36 12 | 
             
              let(:user) { ModelFactory.for('users')['registered user'] }
         | 
| 37 13 | 
             
              let(:login_page) { LoginPage.new(<% if automation == 'watir' -%>browser<% else -%>driver<% end -%>) }
         | 
| 14 | 
            +
              let(:account_page) { AccountPage.new(<% if automation == 'watir' -%>browser<% else -%>driver<% end -%>) }
         | 
| 38 15 |  | 
| 39 16 | 
             
              before do
         | 
| 40 17 | 
             
                login_page.visit
         | 
| @@ -45,15 +22,23 @@ describe 'Login' do | |
| 45 22 | 
             
                let(:password) { user['password'] }
         | 
| 46 23 |  | 
| 47 24 | 
             
                it 'can successfully log in' do
         | 
| 25 | 
            +
                <%- if visual_automation == true -%>
         | 
| 26 | 
            +
                  check_page account_page
         | 
| 27 | 
            +
                <%- else -%>
         | 
| 48 28 | 
             
                  expect(header).to eq "Welcome back #{user['name']}"
         | 
| 29 | 
            +
                <%- end -%>
         | 
| 49 30 | 
             
                end
         | 
| 50 31 | 
             
              end
         | 
| 51 32 |  | 
| 52 33 | 
             
              context 'with wrong credentials' do
         | 
| 53 34 | 
             
                let(:password) { 'wrongPassword' }
         | 
| 54 35 |  | 
| 55 | 
            -
                it 'cannot  | 
| 36 | 
            +
                it 'cannot log in' do
         | 
| 37 | 
            +
                <%- if visual_automation == true -%>
         | 
| 38 | 
            +
                  check_page login_page
         | 
| 39 | 
            +
                <%- else -%>
         | 
| 56 40 | 
             
                  expect(header).to be_empty
         | 
| 41 | 
            +
                <%- end -%>
         | 
| 57 42 | 
             
                end
         | 
| 58 43 | 
             
              end
         | 
| 59 44 | 
             
            end
         | 
| @@ -1,12 +1,11 @@ | |
| 1 1 | 
             
            source 'https://rubygems.org'
         | 
| 2 2 |  | 
| 3 3 | 
             
            gem 'activesupport'
         | 
| 4 | 
            -
            <% unless visual_automation -%>
         | 
| 5 | 
            -
            gem 'allure-rspec'
         | 
| 6 | 
            -
            gem 'allure-ruby-commons'
         | 
| 7 | 
            -
            <% end -%>
         | 
| 8 4 | 
             
            <% if framework == 'cucumber' -%>
         | 
| 9 5 | 
             
            gem 'allure-cucumber'
         | 
| 6 | 
            +
            <% else -%>
         | 
| 7 | 
            +
            gem 'allure-rspec'
         | 
| 8 | 
            +
            gem 'allure-ruby-commons'
         | 
| 10 9 | 
             
            <% end -%>
         | 
| 11 10 | 
             
            <% if visual_automation -%>
         | 
| 12 11 | 
             
            gem 'eyes_selenium', '~> 4.6', '>= 4.6.1'
         | 
| @@ -50,7 +50,7 @@ Ruby Raider is a generator and scaffolding gem to make UI test automation easier | |
| 50 50 |  | 
| 51 51 | 
             
            * Generating a visual testing framework with Rspec, Applitools and Selenium
         | 
| 52 52 |  | 
| 53 | 
            -
            * Generating a visual testing framework with  | 
| 53 | 
            +
            * Generating a visual testing framework with Cucumber, Applitools and Selenium
         | 
| 54 54 |  | 
| 55 55 | 
             
            ***In order to run the Appium tests, download the example [app](https://github.com/saucelabs/my-demo-app-rn).***
         | 
| 56 56 |  | 
| @@ -1,7 +1,8 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 4 | 
            -
             | 
| 3 | 
            +
            <%=- ERB.new(File.read(File.expand_path('./partials/allure_requirements.tt', __dir__))).result(binding).strip! -%>
         | 
| 4 | 
            +
            <%- allure = ERB.new(File.read(File.expand_path('./partials/allure_imports.tt', __dir__))).result(binding).strip! -%>
         | 
| 5 | 
            +
             | 
| 5 6 |  | 
| 6 7 | 
             
            module Raider
         | 
| 7 8 | 
             
              module AllureHelper
         | 
| @@ -22,11 +23,11 @@ module Raider | |
| 22 23 | 
             
                    )
         | 
| 23 24 | 
             
                  end
         | 
| 24 25 |  | 
| 25 | 
            -
                 | 
| 26 | 
            +
                <%- if framework == 'rspec' -%>
         | 
| 26 27 | 
             
                  def formatter
         | 
| 27 28 | 
             
                    AllureRspecFormatter
         | 
| 28 29 | 
             
                  end
         | 
| 29 | 
            -
                   | 
| 30 | 
            +
                  <%- end -%>
         | 
| 30 31 | 
             
                end
         | 
| 31 32 | 
             
              end
         | 
| 32 33 | 
             
            end
         | 
| @@ -11,7 +11,7 @@ module Raider | |
| 11 11 | 
             
              module DriverHelper
         | 
| 12 12 | 
             
                attr_reader :driver
         | 
| 13 13 |  | 
| 14 | 
            -
             | 
| 14 | 
            +
                <%= ERB.new(File.read(File.expand_path('./partials/driver_and_options.tt', __dir__)), trim_mode: '-').result(binding).strip! %>
         | 
| 15 15 |  | 
| 16 16 | 
             
              <% if automation == 'cross_platform' -%>
         | 
| 17 17 | 
             
              private
         | 
| @@ -20,11 +20,11 @@ module Raider | |
| 20 20 | 
             
                  YAML.load_file('config/config.yml')
         | 
| 21 21 | 
             
                end
         | 
| 22 22 | 
             
            <% end -%>
         | 
| 23 | 
            -
             | 
| 23 | 
            +
            <%- if automation != 'selenium'  -%>
         | 
| 24 24 | 
             
                # :reek:UtilityFunction
         | 
| 25 25 | 
             
                def caps
         | 
| 26 26 | 
             
                  YAML.load_file('config/capabilities.yml')
         | 
| 27 27 | 
             
                end
         | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 28 | 
            +
            <%- end -%>
         | 
| 29 | 
            +
            end
         | 
| 30 30 | 
             
            end
         | 
| @@ -1,8 +1,5 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             when 'selenium' %>
         | 
| 1 | 
            +
            <%- if automation == 'selenium' -%>
         | 
| 3 2 | 
             
            driver.save_screenshot("allure-results/screenshots/#{example_name}.png")
         | 
| 4 | 
            -
             | 
| 3 | 
            +
            <%- else -%>
         | 
| 5 4 | 
             
            browser.screenshot.save("allure-results/screenshots/#{example_name}.png")
         | 
| 6 | 
            -
             | 
| 7 | 
            -
            driver.screenshot("allure-results/screenshots/#{example_name}.png")
         | 
| 8 | 
            -
            <% end %>
         | 
| 5 | 
            +
            <%- end -%>
         | 
| @@ -9,9 +9,7 @@ module Raider | |
| 9 9 | 
             
            <%- else -%>
         | 
| 10 10 | 
             
              require_relative 'driver_helper'
         | 
| 11 11 | 
             
            <%- end -%>
         | 
| 12 | 
            -
            <%- unless visual_automation -%>
         | 
| 13 12 | 
             
              require_relative 'allure_helper'
         | 
| 14 | 
            -
            <%- end -%>
         | 
| 15 13 | 
             
            <%- if automation == 'cross_platform' -%>
         | 
| 16 14 | 
             
              require_relative 'appium_helper'
         | 
| 17 15 | 
             
            <%- end -%>
         | 
| @@ -21,9 +21,9 @@ module Raider | |
| 21 21 |  | 
| 22 22 | 
             
                  config.after(:each) do
         | 
| 23 23 | 
             
                    example_name = self.class.descendant_filtered_examples.first.description
         | 
| 24 | 
            -
                    <%= ERB.new(File.read(File.expand_path('./partials/screenshot.tt', __dir__))).result(binding).strip! %>
         | 
| 24 | 
            +
                    <%= ERB.new(File.read(File.expand_path('./partials/screenshot.tt', __dir__)), trim_mode: '-').result(binding).strip! %>
         | 
| 25 25 | 
             
                    AllureHelper.add_screenshot example_name
         | 
| 26 | 
            -
                    <%= ERB.new(File.read(File.expand_path('./partials/quit_driver.tt', __dir__))).result(binding).strip! %>
         | 
| 26 | 
            +
                    <%= ERB.new(File.read(File.expand_path('./partials/quit_driver.tt', __dir__)), trim_mode: '-').result(binding).strip! %>
         | 
| 27 27 | 
             
                  end
         | 
| 28 28 | 
             
                end
         | 
| 29 29 | 
             
              end
         | 
| @@ -2,34 +2,30 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            require 'rspec'
         | 
| 4 4 | 
             
            require 'eyes_selenium'
         | 
| 5 | 
            -
             | 
| 5 | 
            +
            require_relative 'allure_helper'
         | 
| 6 6 | 
             
            require_relative 'driver_helper'
         | 
| 7 | 
            -
            <%- else -%>
         | 
| 8 | 
            -
            require_relative 'browser_helper'
         | 
| 9 | 
            -
            <%- end -%>
         | 
| 10 7 | 
             
            require_relative 'visual_helper'
         | 
| 11 8 |  | 
| 12 9 | 
             
            module Raider
         | 
| 13 10 | 
             
              module SpecHelper
         | 
| 14 11 | 
             
                RSpec.configure do |config|
         | 
| 15 | 
            -
                  config.include( | 
| 12 | 
            +
                  config.include(DriverHelper)
         | 
| 16 13 | 
             
                  config.include(VisualHelper)
         | 
| 17 14 | 
             
                  config.before(:each) do
         | 
| 18 15 | 
             
                    OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
         | 
| 19 16 | 
             
                    @grid_runner = create_grid_runner
         | 
| 20 17 | 
             
                    @eyes = create_eyes(@grid_runner)
         | 
| 21 18 | 
             
                    configure_eyes @eyes
         | 
| 22 | 
            -
                    <%- if automation == 'selenium' -%>
         | 
| 23 19 | 
             
                    @driver = @eyes.open(driver: new_driver)
         | 
| 24 | 
            -
                    <%- else -%>
         | 
| 25 | 
            -
                    @driver = @eyes.open(driver: new_browser.driver)
         | 
| 26 | 
            -
                    <%- end -%>
         | 
| 27 20 | 
             
                  end
         | 
| 28 21 |  | 
| 29 22 | 
             
                  config.after(:each) do
         | 
| 23 | 
            +
                    example_name = self.class.descendant_filtered_examples.first.description
         | 
| 24 | 
            +
                    driver.save_screenshot("allure-results/screenshots/#{example_name}.png")
         | 
| 30 25 | 
             
                    @eyes.close
         | 
| 31 26 | 
             
                    @driver.quit
         | 
| 32 27 | 
             
                    @eyes.abort_async
         | 
| 28 | 
            +
                    AllureHelper.add_screenshot example_name
         | 
| 33 29 | 
             
                    results = @grid_runner.get_all_test_results
         | 
| 34 30 | 
             
                    puts results
         | 
| 35 31 | 
             
                  end
         | 
    
        data/ruby_raider.gemspec
    CHANGED
    
    | @@ -2,7 +2,7 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            Gem::Specification.new do |s|
         | 
| 4 4 | 
             
              s.name        = 'ruby_raider'
         | 
| 5 | 
            -
              s.version     = '0.7. | 
| 5 | 
            +
              s.version     = '0.7.2'
         | 
| 6 6 | 
             
              s.summary     = 'A gem to make setup and start of UI automation projects easier'
         | 
| 7 7 | 
             
              s.description = 'This gem has everything you need to start working with test automation'
         | 
| 8 8 | 
             
              s.authors     = ['Agustin Pequeno']
         | 
| @@ -22,7 +22,6 @@ Gem::Specification.new do |s| | |
| 22 22 | 
             
              s.add_development_dependency 'rubocop-rspec', '~> 2.9.0'
         | 
| 23 23 |  | 
| 24 24 | 
             
              s.add_runtime_dependency 'faraday', '~> 1.2.0'
         | 
| 25 | 
            -
              s.add_runtime_dependency 'faraday-multipart', '~> 1.0.4'
         | 
| 26 25 | 
             
              s.add_runtime_dependency 'glimmer-dsl-libui', '~> 0.7.3'
         | 
| 27 26 | 
             
              s.add_runtime_dependency 'ruby-openai', '~> 3.5'
         | 
| 28 27 | 
             
              s.add_runtime_dependency 'thor', '~> 1.2.1'
         | 
| @@ -45,10 +45,6 @@ describe HelpersGenerator do | |
| 45 45 | 
             
              end
         | 
| 46 46 |  | 
| 47 47 | 
             
              shared_examples 'creates common visual helpers' do |name|
         | 
| 48 | 
            -
                it 'does not create an allure helper file' do
         | 
| 49 | 
            -
                  expect(File).not_to exist("#{name}/helpers/allure_helper.rb")
         | 
| 50 | 
            -
                end
         | 
| 51 | 
            -
             | 
| 52 48 | 
             
                it 'creates a raider file' do
         | 
| 53 49 | 
             
                  expect(File).to exist("#{name}/helpers/raider.rb")
         | 
| 54 50 | 
             
                end
         | 
| @@ -76,12 +72,6 @@ describe HelpersGenerator do | |
| 76 72 | 
             
                include_examples 'creates rspec helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[2]}_visual"
         | 
| 77 73 | 
             
              end
         | 
| 78 74 |  | 
| 79 | 
            -
              context 'with rspec, watir and applitools' do
         | 
| 80 | 
            -
                include_examples 'creates common visual helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[3]}_visual"
         | 
| 81 | 
            -
                include_examples 'creates watir helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[3]}_visual"
         | 
| 82 | 
            -
                include_examples 'creates rspec helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[3]}_visual"
         | 
| 83 | 
            -
              end
         | 
| 84 | 
            -
             | 
| 85 75 | 
             
              context 'with cucumber and selenium' do
         | 
| 86 76 | 
             
                include_examples 'creates common helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[2]}"
         | 
| 87 77 | 
             
                include_examples 'creates selenium helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[2]}"
         | 
    
        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.7. | 
| 4 | 
            +
              version: 0.7.2
         | 
| 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-05- | 
| 11 | 
            +
            date: 2023-05-29 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: dotenv
         | 
| @@ -122,20 +122,6 @@ dependencies: | |
| 122 122 | 
             
                - - "~>"
         | 
| 123 123 | 
             
                  - !ruby/object:Gem::Version
         | 
| 124 124 | 
             
                    version: 1.2.0
         | 
| 125 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 126 | 
            -
              name: faraday-multipart
         | 
| 127 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 128 | 
            -
                requirements:
         | 
| 129 | 
            -
                - - "~>"
         | 
| 130 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 131 | 
            -
                    version: 1.0.4
         | 
| 132 | 
            -
              type: :runtime
         | 
| 133 | 
            -
              prerelease: false
         | 
| 134 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 135 | 
            -
                requirements:
         | 
| 136 | 
            -
                - - "~>"
         | 
| 137 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 138 | 
            -
                    version: 1.0.4
         | 
| 139 125 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 140 126 | 
             
              name: glimmer-dsl-libui
         | 
| 141 127 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -226,6 +212,7 @@ files: | |
| 226 212 | 
             
            - lib/generators/automation/automation_generator.rb
         | 
| 227 213 | 
             
            - lib/generators/automation/templates/abstract_component.tt
         | 
| 228 214 | 
             
            - lib/generators/automation/templates/abstract_page.tt
         | 
| 215 | 
            +
            - lib/generators/automation/templates/account_page.tt
         | 
| 229 216 | 
             
            - lib/generators/automation/templates/appium_caps.tt
         | 
| 230 217 | 
             
            - lib/generators/automation/templates/component.tt
         | 
| 231 218 | 
             
            - lib/generators/automation/templates/home_page.tt
         | 
| @@ -238,9 +225,11 @@ files: | |
| 238 225 | 
             
            - lib/generators/automation/templates/partials/ios_caps.tt
         | 
| 239 226 | 
             
            - lib/generators/automation/templates/partials/pdp_page_selector.tt
         | 
| 240 227 | 
             
            - lib/generators/automation/templates/partials/require_raider.tt
         | 
| 228 | 
            +
            - lib/generators/automation/templates/partials/selenium_account.tt
         | 
| 241 229 | 
             
            - lib/generators/automation/templates/partials/selenium_login.tt
         | 
| 242 230 | 
             
            - lib/generators/automation/templates/partials/url_methods.tt
         | 
| 243 231 | 
             
            - lib/generators/automation/templates/partials/visit_method.tt
         | 
| 232 | 
            +
            - lib/generators/automation/templates/partials/watir_account.tt
         | 
| 244 233 | 
             
            - lib/generators/automation/templates/partials/watir_login.tt
         | 
| 245 234 | 
             
            - lib/generators/automation/templates/pdp_page.tt
         | 
| 246 235 | 
             
            - lib/generators/automation/templates/visual_options.tt
         | 
| @@ -253,7 +242,7 @@ files: | |
| 253 242 | 
             
            - lib/generators/cucumber/templates/partials/appium_env.tt
         | 
| 254 243 | 
             
            - lib/generators/cucumber/templates/partials/driver_world.tt
         | 
| 255 244 | 
             
            - lib/generators/cucumber/templates/partials/mobile_steps.tt
         | 
| 256 | 
            -
            - lib/generators/cucumber/templates/partials/ | 
| 245 | 
            +
            - lib/generators/cucumber/templates/partials/selenium_env.tt
         | 
| 257 246 | 
             
            - lib/generators/cucumber/templates/partials/watir_env.tt
         | 
| 258 247 | 
             
            - lib/generators/cucumber/templates/partials/watir_world.tt
         | 
| 259 248 | 
             
            - lib/generators/cucumber/templates/partials/web_steps.tt
         | 
| @@ -332,7 +321,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 332 321 | 
             
                - !ruby/object:Gem::Version
         | 
| 333 322 | 
             
                  version: '0'
         | 
| 334 323 | 
             
            requirements: []
         | 
| 335 | 
            -
            rubygems_version: 3.4. | 
| 324 | 
            +
            rubygems_version: 3.4.13
         | 
| 336 325 | 
             
            signing_key:
         | 
| 337 326 | 
             
            specification_version: 4
         | 
| 338 327 | 
             
            summary: A gem to make setup and start of UI automation projects easier
         | 
| @@ -1,13 +0,0 @@ | |
| 1 | 
            -
            require_relative '../../helpers/driver_helper'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            include Raider::DriverHelper
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            Before do
         | 
| 6 | 
            -
              new_driver
         | 
| 7 | 
            -
            end
         | 
| 8 | 
            -
             | 
| 9 | 
            -
            After do |scenario|
         | 
| 10 | 
            -
              driver.save_screenshot("allure-results/screenshots/#{scenario.name}.png")
         | 
| 11 | 
            -
              Raider::AllureHelper.add_screenshot(scenario.name)
         | 
| 12 | 
            -
              driver.quit
         | 
| 13 | 
            -
            end
         |