ruby_raider 0.2.2 → 0.2.3

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 (37) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/helper_generator.rb +2 -10
  3. data/lib/generators/templates/automation/abstract_page.tt +4 -6
  4. data/lib/generators/templates/automation/appium_settings.tt +1 -1
  5. data/lib/generators/templates/automation/confirmation_page.tt +2 -2
  6. data/lib/generators/templates/automation/home_page.tt +2 -2
  7. data/lib/generators/templates/automation/login_page.tt +4 -4
  8. data/lib/generators/templates/automation/partials/appium_login.tt +3 -3
  9. data/lib/generators/templates/automation/partials/element.tt +5 -5
  10. data/lib/generators/templates/automation/partials/initialize_selector.tt +9 -0
  11. data/lib/generators/templates/automation/partials/selenium_login.tt +4 -4
  12. data/lib/generators/templates/automation/partials/visit_method.tt +1 -5
  13. data/lib/generators/templates/automation/partials/watir_login.tt +7 -9
  14. data/lib/generators/templates/common/gemfile.tt +6 -6
  15. data/lib/generators/templates/cucumber/env.tt +4 -4
  16. data/lib/generators/templates/cucumber/partials/appium_env.tt +4 -4
  17. data/lib/generators/templates/cucumber/partials/mobile_steps.tt +6 -3
  18. data/lib/generators/templates/cucumber/partials/selenium_appium_env.tt +3 -5
  19. data/lib/generators/templates/cucumber/partials/watir_env.tt +3 -4
  20. data/lib/generators/templates/cucumber/partials/web_steps.tt +4 -3
  21. data/lib/generators/templates/cucumber/steps.tt +3 -3
  22. data/lib/generators/templates/helpers/allure_helper.tt +1 -1
  23. data/lib/generators/templates/helpers/driver_helper.tt +3 -3
  24. data/lib/generators/templates/helpers/partials/require_automation.tt +0 -2
  25. data/lib/generators/templates/helpers/partials/screenshot.tt +3 -3
  26. data/lib/generators/templates/helpers/partials/select_driver.tt +8 -0
  27. data/lib/generators/templates/helpers/raider_helper.tt +5 -6
  28. data/lib/generators/templates/helpers/spec_helper.tt +4 -11
  29. data/lib/generators/templates/rspec/spec.tt +34 -18
  30. data/ruby_raider.gemspec +1 -1
  31. data/spec/cucumber_generator_spec.rb +8 -0
  32. data/spec/helpers_generator_spec.rb +8 -16
  33. metadata +4 -6
  34. data/lib/generators/templates/automation/partials/driver_selector.tt +0 -9
  35. data/lib/generators/templates/helpers/partials/driver_requirements.tt +0 -14
  36. data/lib/generators/templates/helpers/pom_helper.tt +0 -19
  37. data/lib/generators/templates/helpers/watir_helper.tt +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 326283d82054b2012338d66b696bc45ba57f428d4b2d3b97a61455443951bace
4
- data.tar.gz: 03b4342916436c32bb4465829712e079d4a872e3a053bc1f99defb6d89032b17
3
+ metadata.gz: 56bd6a11e678cd280d2652e3f09772b3e30079c713870e1822047b68794a632b
4
+ data.tar.gz: 668dd6b2cf904d2a5f1c2dd917930fc0108a8d63aad8a41a71accff6a25552b2
5
5
  SHA512:
6
- metadata.gz: e4af2dcc99111102fe313e5d8200ea5b3cac6f28844fb1476fa2138614950641d5cd205506596c9d0d5d2e1fc77d1d7251ee2bd6b8965628e26f9ca612109bf6
7
- data.tar.gz: 59fee3bf19df164835d304d69c3f3c32c82d47192d6bbc6765979b273fa5fb91a49c46989a2c1b34340550b4bc35509247e338f3a610fb9468e29130e68be24a
6
+ metadata.gz: 6a8aa084abb9dfb11ad52834f55b0f7d2c2f19df7e70bdfe2565faeaf831e1efd47e5e068f79d5d93323eee6808fc7ecded2669c62063d46cc3df2aa8dd00dc7
7
+ data.tar.gz: 31d7142a4b46e74ed855cc757d8038ae7dc8e2c60007d7847b705c17dc01bd3f879341b179a1840370ed9296dbdb59b51ea1ab5fe8f6e4e6bd8883f85af70881
@@ -19,17 +19,9 @@ module RubyRaider
19
19
  end
20
20
  end
21
21
 
22
- def generate_pom_helper
23
- template('helpers/pom_helper.tt', "#{name}/helpers/pom_helper.rb")
24
- end
25
-
26
22
  def generate_spec_helper
27
- template('helpers/spec_helper.tt', "#{name}/helpers/spec_helper.rb")
28
- end
29
-
30
- def generate_watir_helper
31
- if @_initializer.first.include?('watir')
32
- template('helpers/watir_helper.tt', "#{name}/helpers/watir_helper.rb")
23
+ if @_initializer.first.include?('rspec')
24
+ template('helpers/spec_helper.tt', "#{name}/helpers/spec_helper.rb")
33
25
  end
34
26
  end
35
27
 
@@ -1,10 +1,8 @@
1
1
  require 'rspec'
2
- <%= ERB.new(File.read(File.expand_path('./partials/require_raider.tt', __dir__))).result(binding) %>
2
+ <%= ERB.new(File.read(File.expand_path('./partials/require_raider.tt', __dir__)), nil, '-').result(binding) -%>
3
3
 
4
4
  class AbstractPage
5
- include RSpec::Matchers
6
- extend Raider::PomHelper
7
- <%= ERB.new(File.read(File.expand_path('./partials/driver_selector.tt', __dir__))).result(binding) %>
8
- <%= ERB.new(File.read(File.expand_path('./partials/visit_method.tt', __dir__))).result(binding) %>
9
- <%= ERB.new(File.read(File.expand_path('./partials/url_methods.tt', __dir__))).result(binding) %>
5
+ <%= ERB.new(File.read(File.expand_path('./partials/initialize_selector.tt', __dir__))).result(binding) -%>
6
+ <%= ERB.new(File.read(File.expand_path('./partials/visit_method.tt', __dir__))).result(binding) -%>
7
+ <%= ERB.new(File.read(File.expand_path('./partials/url_methods.tt', __dir__))).result(binding) -%>
10
8
  end
@@ -1,6 +1,6 @@
1
1
  [caps]
2
2
  platformName = "iOS"
3
- platformVersion = "15.4"
3
+ platformVersion = "15.5"
4
4
  deviceName = "iPhone SE (3rd generation)"
5
5
  app = "TheApp.app"
6
6
 
@@ -6,7 +6,7 @@ class ConfirmationPage < AbstractPage
6
6
  #Values
7
7
 
8
8
  def login_message
9
- driver.wait { message_element }.text
9
+ @driver.wait { message_element }.text
10
10
  end
11
11
 
12
12
  private
@@ -14,6 +14,6 @@ class ConfirmationPage < AbstractPage
14
14
  # Elements
15
15
 
16
16
  def message_element
17
- driver.find_element(accessibility_id: 'You are logged in as alice')
17
+ @driver.find_element(accessibility_id: 'You are logged in as alice')
18
18
  end
19
19
  end
@@ -7,7 +7,7 @@ class HomePage < AbstractPage
7
7
  #Actions
8
8
 
9
9
  def go_to_login
10
- driver.wait { login_button_navigator }.click
10
+ @driver.wait { login_button_navigator }.click
11
11
  end
12
12
 
13
13
  private
@@ -15,6 +15,6 @@ class HomePage < AbstractPage
15
15
  # Elements
16
16
 
17
17
  def login_button_navigator
18
- driver.find_element(accessibility_id: 'Login Screen')
18
+ @driver.find_element(accessibility_id: 'Login Screen')
19
19
  end
20
20
  end
@@ -1,8 +1,8 @@
1
1
  <% case automation
2
- when 'selenium' %>
2
+ when 'selenium' -%>
3
3
  <%= ERB.new(File.read(File.expand_path('./partials/selenium_login.tt', __dir__))).result(binding) %>
4
- <% when 'watir' %>
4
+ <% when 'watir' -%>
5
5
  <%= ERB.new(File.read(File.expand_path('./partials/watir_login.tt', __dir__))).result(binding) %>
6
- <% else %>
6
+ <% else -%>
7
7
  <%= ERB.new(File.read(File.expand_path('./partials/appium_login.tt', __dir__))).result(binding) %>
8
- <% end %>
8
+ <% end -%>
@@ -15,14 +15,14 @@ class LoginPage < AbstractPage
15
15
  # Elements
16
16
 
17
17
  def username_field
18
- driver.find_element(xpath: "//XCUIElementTypeTextField[@name=\"username\"]")
18
+ @driver.find_element(xpath: "//XCUIElementTypeTextField[@name=\"username\"]")
19
19
  end
20
20
 
21
21
  def password_field
22
- driver.find_element(xpath: "//XCUIElementTypeSecureTextField[@name=\"password\"]")
22
+ @driver.find_element(xpath: "//XCUIElementTypeSecureTextField[@name=\"password\"]")
23
23
  end
24
24
 
25
25
  def login_button
26
- driver.find_elements(xpath: "//XCUIElementTypeOther[@name=\"loginBtn\"]").last
26
+ @driver.find_elements(xpath: "//XCUIElementTypeOther[@name=\"loginBtn\"]").last
27
27
  end
28
28
  end
@@ -1,5 +1,5 @@
1
- <% if %w[selenium appium_ios].include?(automation) %>
2
- driver.find_element
3
- <% else %>
4
- browser.element
5
- <% end %>
1
+ <% if %w[selenium appium_ios].include?(automation) -%>
2
+ @driver.find_element
3
+ <% else -%>
4
+ @browser.element
5
+ <% end -%>
@@ -0,0 +1,9 @@
1
+ <% if automation == 'watir' %>
2
+ def initialize(browser)
3
+ @browser = browser
4
+ end
5
+ <% else %>
6
+ def initialize(driver)
7
+ @driver = driver
8
+ end
9
+ <% end %>
@@ -19,7 +19,7 @@ class LoginPage < AbstractPage
19
19
  # Components
20
20
 
21
21
  def header
22
- HeaderComponent.new(driver.find_element(class: 'menu_text'))
22
+ HeaderComponent.new(@driver.find_element(class: 'menu_text'))
23
23
  end
24
24
 
25
25
  private
@@ -27,14 +27,14 @@ class LoginPage < AbstractPage
27
27
  # Elements
28
28
 
29
29
  def username_field
30
- driver.find_element(id: 'loginFrm_loginname')
30
+ @driver.find_element(id: 'loginFrm_loginname')
31
31
  end
32
32
 
33
33
  def password_field
34
- driver.find_element(id: 'loginFrm_password')
34
+ @driver.find_element(id: 'loginFrm_password')
35
35
  end
36
36
 
37
37
  def login_button
38
- driver.find_element(xpath: "//button[@title='Login']")
38
+ @driver.find_element(xpath: "//button[@title='Login']")
39
39
  end
40
40
  end
@@ -1,9 +1,5 @@
1
1
  <% if %w[selenium watir].include? automation %>
2
2
  def visit(*page)
3
- <% if automation == 'selenium' %>
4
- driver.navigate.to full_url(page.first)
5
- <% else %>
6
- browser.goto full_url(page.first)
7
- <% end %>
3
+ <% if automation == 'selenium' %>@driver.navigate.to full_url(page.first) <% else %>@browser.goto full_url(page.first)<% end %>
8
4
  end
9
5
  <% end %>
@@ -2,7 +2,6 @@ require_relative '../abstract/abstract_page'
2
2
  require_relative '../components/header_component'
3
3
 
4
4
  class LoginPage < AbstractPage
5
- using Raider::WatirHelper
6
5
 
7
6
  def url(_page)
8
7
  'index.php?rt=account/login'
@@ -11,16 +10,15 @@ class LoginPage < AbstractPage
11
10
  # Actions
12
11
 
13
12
  def login(username, password)
14
- username_field.send_keys username
15
- password_field.send_keys password
16
- login_button.click_when_present
13
+ username_field.set username
14
+ password_field.set password
15
+ login_button.click
17
16
  end
18
17
 
19
18
  # Components
20
19
 
21
-
22
20
  def header
23
- HeaderComponent.new(browser.element(class: 'menu_text'))
21
+ HeaderComponent.new(@browser.element(class: 'menu_text'))
24
22
  end
25
23
 
26
24
  private
@@ -28,14 +26,14 @@ class LoginPage < AbstractPage
28
26
  # Elements
29
27
 
30
28
  def username_field
31
- browser.element(id: 'loginFrm_loginname')
29
+ @browser.text_field(id: 'loginFrm_loginname')
32
30
  end
33
31
 
34
32
  def password_field
35
- browser.element(id: 'loginFrm_password')
33
+ @browser.text_field(id: 'loginFrm_password')
36
34
  end
37
35
 
38
36
  def login_button
39
- browser.element(xpath: "//button[@title='Login']")
37
+ @browser.button(xpath: "//button[@title='Login']")
40
38
  end
41
39
  end
@@ -3,17 +3,17 @@ source 'https://rubygems.org'
3
3
  gem 'activesupport'
4
4
  gem 'allure-rspec'
5
5
  gem 'allure-ruby-commons'
6
- <% if framework == 'cucumber' %>
6
+ <% if framework == 'cucumber' -%>
7
7
  gem 'allure-cucumber'
8
- <% end %>
8
+ <% end -%>
9
9
  gem 'parallel_split_test'
10
10
  gem 'parallel_tests'
11
11
  gem 'rake'
12
12
  gem '<%= framework %>'
13
- <% if framework == 'cucumber' %>
13
+ <% if framework == 'cucumber' -%>
14
14
  gem 'rspec'
15
- <% end %>
15
+ <% end -%>
16
16
  <%= ERB.new(File.read(File.expand_path('./partials/automation_gems.tt', __dir__))).result(binding).strip! %>
17
- <% if %w[selenium watir].include? automation %>
17
+ <% if %w[selenium watir].include? automation -%>
18
18
  gem 'webdrivers'
19
- <% end %>
19
+ <% end -%>
@@ -1,8 +1,8 @@
1
1
  <% case automation
2
- when 'selenium' %>
2
+ when 'selenium' -%>
3
3
  <%= ERB.new(File.read(File.expand_path('./partials/selenium_appium_env.tt', __dir__))).result(binding).strip! -%>
4
- <% when 'watir' %>
4
+ <% when 'watir' -%>
5
5
  <%= ERB.new(File.read(File.expand_path('./partials/watir_env.tt', __dir__))).result(binding).strip! -%>
6
- <% else %>
6
+ <% else -%>
7
7
  <%= ERB.new(File.read(File.expand_path('./partials/appium_env.tt', __dir__))).result(binding).strip! -%>
8
- <% end %>
8
+ <% end -%>
@@ -2,12 +2,12 @@ require_relative '../../helpers/driver_helper'
2
2
 
3
3
  Before do
4
4
  Raider::AllureHelper.configure
5
- Raider::DriverHelper.new_driver
6
- Raider::DriverHelper.driver.start_driver
5
+ @driver = Raider::DriverHelper.new_driver
6
+ @driver.start_driver
7
7
  end
8
8
 
9
9
  After do |scenario|
10
- Raider::DriverHelper.driver.screenshot("allure-results/screenshots/#{scenario.name}.png")
10
+ @driver.screenshot("allure-results/screenshots/#{scenario.name}.png")
11
11
  Raider::AllureHelper.add_screenshot(scenario.name)
12
- Raider::DriverHelper.driver.quit_driver
12
+ @driver.quit_driver
13
13
  end
@@ -5,13 +5,16 @@ require_relative '../../page_objects/pages/home_page'
5
5
  require_relative '../../page_objects/pages/login_page'
6
6
 
7
7
  Given("I'm a registered user on the login page") do
8
- HomePage.go_to_login
8
+ home_page = HomePage.new(@driver)
9
+ home_page.go_to_login
9
10
  end
10
11
 
11
12
  When('I login with my credentials') do
12
- LoginPage.login('alice', 'mypassword')
13
+ login_page = LoginPage.new(@driver)
14
+ login_page.login('alice', 'mypassword')
13
15
  end
14
16
 
15
17
  When('I can see the main page') do
16
- expect(ConfirmationPage.login_message).to eq 'You are logged in as alice'
18
+ confirmation_page = ConfirmationPage.new(@driver)
19
+ expect(confirmation_page.login_message).to eq 'You are logged in as alice'
17
20
  end
@@ -1,13 +1,11 @@
1
1
  require_relative '../../helpers/driver_helper'
2
2
 
3
3
  Before do
4
- Raider::AllureHelper.configure
5
- Raider::DriverHelper.new_driver
4
+ @driver = Raider::DriverHelper.new_driver
6
5
  end
7
6
 
8
7
  After do |scenario|
9
- driver = Raider::DriverHelper.driver
10
- driver.save_screenshot("allure-results/screenshots/#{scenario.name}.png")
8
+ @driver.save_screenshot("allure-results/screenshots/#{scenario.name}.png")
11
9
  Raider::AllureHelper.add_screenshot(scenario.name)
12
- driver.quit
10
+ @driver.quit
13
11
  end
@@ -2,12 +2,11 @@ require_relative '../../helpers/browser_helper'
2
2
 
3
3
  Before do
4
4
  Raider::AllureHelper.configure
5
- Raider::BrowserHelper.new_browser
5
+ @browser = Raider::BrowserHelper.new_browser
6
6
  end
7
7
 
8
8
  After do |scenario|
9
- browser = Raider::BrowserHelper.browser
10
- browser.screenshot.save("allure-results/screenshots/#{scenario.name}.png")
9
+ @browser.screenshot.save("allure-results/screenshots/#{scenario.name}.png")
11
10
  Raider::AllureHelper.add_screenshot(scenario.name)
12
- browser.quit
11
+ @browser.quit
13
12
  end
@@ -3,13 +3,14 @@
3
3
  require_relative '../../page_objects/pages/login_page'
4
4
 
5
5
  Given("I'm a registered user on the login page") do
6
- LoginPage.visit
6
+ @login_page = LoginPage.new(<% if automation == 'watir'%>@browser<% else %>@driver<% end %>)
7
+ @login_page.visit
7
8
  end
8
9
 
9
10
  When('I login with my credentials') do
10
- LoginPage.login('aguspe', '12341234')
11
+ @login_page.login('aguspe', '12341234')
11
12
  end
12
13
 
13
14
  When('I can see the main page') do
14
- expect(LoginPage.header.customer_name).to eq 'Welcome back Agustin'
15
+ expect(@login_page.header.customer_name).to eq 'Welcome back Agustin'
15
16
  end
@@ -1,5 +1,5 @@
1
- <% if %w[selenium watir].include? automation %>
1
+ <% if %w[selenium watir].include? automation -%>
2
2
  <%= ERB.new(File.read(File.expand_path('./partials/web_steps.tt', __dir__))).result(binding).strip! -%>
3
- <% else %>
3
+ <% else -%>
4
4
  <%= ERB.new(File.read(File.expand_path('./partials/mobile_steps.tt', __dir__))).result(binding).strip! -%>
5
- <% end %>
5
+ <% end -%>
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- <%= ERB.new(File.read(File.expand_path('./partials/allure_requirements.tt', __dir__))).result(binding).strip! %>
3
+ <%= ERB.new(File.read(File.expand_path('./partials/allure_requirements.tt', __dir__))).result(binding).strip! -%>
4
4
  <% allure = ERB.new(File.read(File.expand_path('./partials/allure_imports.tt', __dir__))).result(binding).strip! %>
5
5
 
6
6
  module Raider
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- <% if automation == 'selenium' %>
3
+ <% if automation == 'selenium' -%>
4
4
  require 'webdrivers'
5
- <% else %>
5
+ <% else -%>
6
6
  require 'appium_lib'
7
- <% end %>
7
+ <% end -%>
8
8
  require_relative 'driver_helper'
9
9
 
10
10
  module Raider
@@ -1,5 +1,3 @@
1
1
  <% if automation == 'selenium' %>
2
2
  require_relative 'selenium_helper'
3
- <% elsif automation == 'watir' %>
4
- require_relative 'watir_helper'
5
3
  <% end %>
@@ -1,8 +1,8 @@
1
1
  <% case automation
2
2
  when 'selenium' %>
3
- driver.save_screenshot("allure-results/screenshots/#{example_name}.png") if status == :failed
3
+ @driver.save_screenshot("allure-results/screenshots/#{example_name}.png") if status == :failed
4
4
  <% when 'watir' %>
5
- browser.save_screenshot("allure-results/screenshots/#{example_name}.png") if status == :failed
5
+ @browser.save_screenshot("allure-results/screenshots/#{example_name}.png") if status == :failed
6
6
  <% else %>
7
- driver.screenshot("allure-results/screenshots/#{example_name}.png") if status == :failed
7
+ @driver.screenshot("allure-results/screenshots/#{example_name}.png") if status == :failed
8
8
  <% end %>
@@ -0,0 +1,8 @@
1
+ <% if automation == 'watir' %>
2
+ @browser = BrowserHelper.new_browser
3
+ <% else %>
4
+ @driver = DriverHelper.new_driver
5
+ <% end %>
6
+ <% if %w[appium_ios].include? automation %>
7
+ @driver.start_driver
8
+ <% end %>
@@ -1,15 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Raider
4
- <% if framework == 'rspec' %>
4
+ <% if framework == 'rspec' -%>
5
5
  require_relative 'spec_helper'
6
- <% end %>
6
+ <% end -%>
7
7
  <%= ERB.new(File.read(File.expand_path('./partials/require_automation.tt', __dir__))).result(binding).strip! %>
8
- require_relative 'pom_helper'
9
- <% if automation == 'watir' %>
8
+ <% if automation == 'watir' -%>
10
9
  require_relative 'browser_helper'
11
- <% else %>
10
+ <% else -%>
12
11
  require_relative 'driver_helper'
13
- <% end %>
12
+ <% end -%>
14
13
  require_relative 'allure_helper'
15
14
  end
@@ -2,11 +2,11 @@
2
2
 
3
3
  require 'rspec'
4
4
  require_relative 'allure_helper'
5
- <% if automation == 'watir' %>
5
+ <% if automation == 'watir' -%>
6
6
  require_relative 'browser_helper'
7
- <% else %>
7
+ <% else -%>
8
8
  require_relative 'driver_helper'
9
- <% end %>
9
+ <% end -%>
10
10
 
11
11
  module Raider
12
12
  module SpecHelper
@@ -15,14 +15,7 @@ module Raider
15
15
  RSpec.configure do |config|
16
16
  config.formatter = AllureHelper.formatter
17
17
  config.before(:each) do
18
- <% if automation == 'watir' %>
19
- BrowserHelper.new_browser
20
- <% else %>
21
- DriverHelper.new_driver
22
- <% end %>
23
- <% if %w[appium_ios].include? automation %>
24
- DriverHelper.driver.start_driver
25
- <% end %>
18
+ <%= ERB.new(File.read(File.expand_path('./partials/select_driver.tt', __dir__))).result(binding).strip! %>
26
19
  end
27
20
 
28
21
  config.after(:each) do
@@ -1,25 +1,34 @@
1
- <% if %w[selenium watir].include? automation %>
1
+ <% if %w[selenium watir].include? automation -%>
2
2
  require_relative 'base_spec'
3
3
  require_relative '../page_objects/pages/login_page'
4
4
 
5
- class LoginSpec < BaseSpec
6
- describe 'Login' do
7
- before(:each) do
8
- LoginPage.visit
9
- end
5
+ describe 'Login' do
6
+ let(:user_name) { 'aguspe' }
7
+ let(:login_page) { LoginPage.new(<% if automation == 'watir' -%>@browser<% else -%>@driver<% end -%>) }
8
+ subject { login_page.header.customer_name }
9
+
10
+ before(:example) do
11
+ login_page.visit
12
+ login_page.login(user_name, password)
13
+ end
10
14
 
11
- it 'can login with valid credentials' do
12
- LoginPage.login('aguspe', '12341234')
13
- expect(LoginPage.header.customer_name).to eq 'Welcome back Agustin'
15
+ context 'with right credentials' do
16
+ let(:password) { '12341234' }
17
+
18
+ it 'can successfully log in' do
19
+ expect(subject).to eq 'Welcome back Agustin'
14
20
  end
21
+ end
22
+
23
+ context 'with wrong credentials' do
24
+ let(:password) { 'wrongPassword' }
15
25
 
16
- it 'cannot login with wrong credentials' do
17
- LoginPage.login('aguspe', 'wrongPassword')
18
- expect(LoginPage.header.customer_name).to be_empty
26
+ it 'it cannot login in' do
27
+ expect(subject).to be_empty
19
28
  end
20
29
  end
21
30
  end
22
- <% else %>
31
+ <% else -%>
23
32
  require_relative '../page_objects/pages/confirmation_page'
24
33
  require_relative '../page_objects/pages/home_page'
25
34
  require_relative 'base_spec'
@@ -27,11 +36,18 @@ require_relative '../page_objects/pages/login_page'
27
36
 
28
37
  class LoginSpec < BaseSpec
29
38
  describe 'Login' do
30
- it 'Login with valid credentials' do
31
- HomePage.go_to_login
32
- LoginPage.login('alice', 'mypassword')
33
- expect(ConfirmationPage.login_message).to eq 'You are logged in as alice'
39
+
40
+ let(:user_name) { 'alice' }
41
+ let(:password) { 'mypassword' }
42
+ let(:login_page) { LoginPage.new(@driver) }
43
+ let(:home_page) { HomePage.new(@driver) }
44
+ let(:confirmation_page) { ConfirmationPage.new(@driver) }
45
+
46
+ it 'can login' do
47
+ home_page.go_to_login
48
+ login_page.login(user_name, password)
49
+ expect(confirmation_page.login_message).to eq 'You are logged in as alice'
34
50
  end
35
51
  end
36
52
  end
37
- <% end %>
53
+ <% 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.2.2'
5
+ s.version = '0.2.3'
6
6
  s.summary = 'A gem to make setup and start of UI automation projects easier'
7
7
  s.description = 'This gem contents everything you need to start doing web automation in one simple package'
8
8
  s.authors = ['Agustin Pequeno']
@@ -22,6 +22,10 @@ describe RubyRaider::CucumberGenerator do
22
22
  expect(File.exist?("#{@name}/features/support/env.rb")).to be_truthy
23
23
  end
24
24
 
25
+ it 'does not create a spec file' do
26
+ expect(File.exist?("#{@name}/spec/login_spec.rb")).to be_falsey
27
+ end
28
+
25
29
  after(:all) do
26
30
  FileUtils.rm_rf(@name)
27
31
  end
@@ -44,6 +48,10 @@ describe RubyRaider::CucumberGenerator do
44
48
  it 'creates an env file' do
45
49
  expect(File.exist?("#{@name}/features/support/env.rb")).to be_truthy
46
50
  end
51
+
52
+ after(:all) do
53
+ FileUtils.rm_rf(@name)
54
+ end
47
55
  end
48
56
 
49
57
  context 'with appium' do
@@ -14,10 +14,6 @@ describe RubyRaider::HelpersGenerator do
14
14
  expect(File.exist?("#{@name}/helpers/raider.rb")).to be_truthy
15
15
  end
16
16
 
17
- it 'creates a pom helper file' do
18
- expect(File.exist?("#{@name}/helpers/pom_helper.rb")).to be_truthy
19
- end
20
-
21
17
  it 'creates an allure helper file' do
22
18
  expect(File.exist?("#{@name}/helpers/allure_helper.rb")).to be_truthy
23
19
  end
@@ -45,10 +41,6 @@ describe RubyRaider::HelpersGenerator do
45
41
  expect(File.exist?("#{@name}/helpers/browser_helper.rb")).to be_truthy
46
42
  end
47
43
 
48
- it 'creates a pom helper file' do
49
- expect(File.exist?("#{@name}/helpers/pom_helper.rb")).to be_truthy
50
- end
51
-
52
44
  it 'creates a raider file' do
53
45
  expect(File.exist?("#{@name}/helpers/raider.rb")).to be_truthy
54
46
  end
@@ -72,10 +64,6 @@ describe RubyRaider::HelpersGenerator do
72
64
  expect(File.exist?("#{@name}/helpers/raider.rb")).to be_truthy
73
65
  end
74
66
 
75
- it 'creates a pom helper file' do
76
- expect(File.exist?("#{@name}/helpers/pom_helper.rb")).to be_truthy
77
- end
78
-
79
67
  it 'creates an allure helper file' do
80
68
  expect(File.exist?("#{@name}/helpers/allure_helper.rb")).to be_truthy
81
69
  end
@@ -94,10 +82,6 @@ describe RubyRaider::HelpersGenerator do
94
82
  RubyRaider::HelpersGenerator.new(['selenium', 'cucumber', @name]).invoke_all
95
83
  end
96
84
 
97
- it 'creates a pom helper file' do
98
- expect(File.exist?("#{@name}/helpers/pom_helper.rb")).to be_truthy
99
- end
100
-
101
85
  it 'creates an allure helper file' do
102
86
  expect(File.exist?("#{@name}/helpers/allure_helper.rb")).to be_truthy
103
87
  end
@@ -106,6 +90,10 @@ describe RubyRaider::HelpersGenerator do
106
90
  expect(File.exist?("#{@name}/helpers/driver_helper.rb")).to be_truthy
107
91
  end
108
92
 
93
+ it 'does not create a spec helper' do
94
+ expect(File.exist?("#{@name}/helpers/spec_helper.rb")).to be_falsey
95
+ end
96
+
109
97
  after(:all) do
110
98
  FileUtils.rm_rf(@name)
111
99
  end
@@ -125,6 +113,10 @@ describe RubyRaider::HelpersGenerator do
125
113
  expect(File.exist?("#{@name}/helpers/raider.rb")).to be_truthy
126
114
  end
127
115
 
116
+ it 'does not create a spec helper' do
117
+ expect(File.exist?("#{@name}/helpers/spec_helper.rb")).to be_falsey
118
+ end
119
+
128
120
  after(:all) do
129
121
  FileUtils.rm_rf(@name)
130
122
  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.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agustin Pequeno
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-08 00:00:00.000000000 Z
11
+ date: 2022-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -138,8 +138,8 @@ files:
138
138
  - lib/generators/templates/automation/home_page.tt
139
139
  - lib/generators/templates/automation/login_page.tt
140
140
  - lib/generators/templates/automation/partials/appium_login.tt
141
- - lib/generators/templates/automation/partials/driver_selector.tt
142
141
  - lib/generators/templates/automation/partials/element.tt
142
+ - lib/generators/templates/automation/partials/initialize_selector.tt
143
143
  - lib/generators/templates/automation/partials/require_raider.tt
144
144
  - lib/generators/templates/automation/partials/selenium_login.tt
145
145
  - lib/generators/templates/automation/partials/url_methods.tt
@@ -163,16 +163,14 @@ files:
163
163
  - lib/generators/templates/helpers/driver_helper.tt
164
164
  - lib/generators/templates/helpers/partials/allure_imports.tt
165
165
  - lib/generators/templates/helpers/partials/allure_requirements.tt
166
- - lib/generators/templates/helpers/partials/driver_requirements.tt
167
166
  - lib/generators/templates/helpers/partials/new_driver.tt
168
167
  - lib/generators/templates/helpers/partials/quit_driver.tt
169
168
  - lib/generators/templates/helpers/partials/require_automation.tt
170
169
  - lib/generators/templates/helpers/partials/screenshot.tt
171
- - lib/generators/templates/helpers/pom_helper.tt
170
+ - lib/generators/templates/helpers/partials/select_driver.tt
172
171
  - lib/generators/templates/helpers/raider_helper.tt
173
172
  - lib/generators/templates/helpers/selenium_helper.tt
174
173
  - lib/generators/templates/helpers/spec_helper.tt
175
- - lib/generators/templates/helpers/watir_helper.tt
176
174
  - lib/generators/templates/rspec/base_spec.tt
177
175
  - lib/generators/templates/rspec/spec.tt
178
176
  - lib/ruby_raider.rb
@@ -1,9 +0,0 @@
1
- <% if automation == 'watir' %>
2
- def browser
3
- Raider::BrowserHelper.browser
4
- end
5
- <% else %>
6
- def driver
7
- Raider::DriverHelper.driver
8
- end
9
- <% end %>
@@ -1,14 +0,0 @@
1
- def requirements
2
- case automation
3
- when 'selenium'
4
- require 'selenium-webdriver'
5
- require 'webdrivers'
6
-
7
- when 'watir'
8
-
9
- require 'watir'
10
- require 'webdrivers'
11
- else
12
- "require 'appium_lib'"
13
- end
14
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Raider
4
- module PomHelper
5
- def instance
6
- @instance ||= new
7
- end
8
-
9
- def method_missing(message, *args, &block)
10
- return super unless instance.respond_to?(message)
11
-
12
- instance.public_send(message, *args, &block)
13
- end
14
-
15
- def respond_to_missing?(method, *_args, &block)
16
- instance.respond_to?(method) || super
17
- end
18
- end
19
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Raider
4
- module WatirHelper
5
- refine Watir::Element do
6
- def click_when_present
7
- wait_until_present
8
- self.click
9
- end
10
-
11
- def wait_until_present
12
- self.wait_until(&:present?)
13
- end
14
- end
15
- end
16
- end