ruby_raider 0.2.1 → 0.2.4
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/lib/generators/automation_generator.rb +3 -1
- data/lib/generators/helper_generator.rb +2 -10
- data/lib/generators/templates/automation/abstract_page.tt +4 -6
- data/lib/generators/templates/automation/appium_settings.tt +1 -1
- data/lib/generators/templates/automation/confirmation_page.tt +2 -2
- data/lib/generators/templates/automation/home_page.tt +2 -2
- data/lib/generators/templates/automation/login_page.tt +4 -4
- data/lib/generators/templates/automation/partials/appium_login.tt +3 -3
- data/lib/generators/templates/automation/partials/element.tt +5 -5
- data/lib/generators/templates/automation/partials/initialize_selector.tt +9 -0
- data/lib/generators/templates/automation/partials/selenium_login.tt +4 -4
- data/lib/generators/templates/automation/partials/visit_method.tt +1 -5
- data/lib/generators/templates/automation/partials/watir_login.tt +7 -9
- data/lib/generators/templates/common/gemfile.tt +6 -6
- data/lib/generators/templates/cucumber/env.tt +4 -4
- data/lib/generators/templates/cucumber/partials/appium_env.tt +4 -4
- data/lib/generators/templates/cucumber/partials/mobile_steps.tt +6 -3
- data/lib/generators/templates/cucumber/partials/selenium_appium_env.tt +3 -5
- data/lib/generators/templates/cucumber/partials/watir_env.tt +3 -4
- data/lib/generators/templates/cucumber/partials/web_steps.tt +4 -3
- data/lib/generators/templates/cucumber/steps.tt +3 -3
- data/lib/generators/templates/helpers/allure_helper.tt +1 -1
- data/lib/generators/templates/helpers/driver_helper.tt +3 -3
- data/lib/generators/templates/helpers/partials/require_automation.tt +0 -2
- data/lib/generators/templates/helpers/partials/screenshot.tt +3 -3
- data/lib/generators/templates/helpers/partials/select_driver.tt +8 -0
- data/lib/generators/templates/helpers/raider_helper.tt +5 -6
- data/lib/generators/templates/helpers/spec_helper.tt +4 -11
- data/lib/generators/templates/rspec/spec.tt +34 -18
- data/ruby_raider.gemspec +2 -2
- data/spec/cucumber_generator_spec.rb +8 -0
- data/spec/helpers_generator_spec.rb +8 -16
- metadata +5 -8
- data/lib/generators/templates/automation/partials/driver_selector.tt +0 -9
- data/lib/generators/templates/helpers/partials/driver_requirements.tt +0 -14
- data/lib/generators/templates/helpers/pom_helper.tt +0 -19
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c0c4cf8a75198f325205717636b170bab8a39bc902f771cdfcf36c6a2bc173b
|
4
|
+
data.tar.gz: e8751cfcbf8e84c5f718229d877f3af0b273dca653720f65225b41aac5c3d55f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b535249743c0d94b4f7119e16ffd1331f47a114a87a6b9b4ab88fee899ac1ff1c449a60b67378759e3656a02c82e9a191506edbb81d7a34e2ed13385f2e7f2ee
|
7
|
+
data.tar.gz: 84235df018f46c8864d2a2985017231f73ce7d3e367e93318cc69a81fa6bcb3a5efeac0a23c542c19f78227f0d5388ec2cd8474bbc0adbb598249348809fb55a
|
@@ -13,7 +13,9 @@ module RubyRaider
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def generate_home_page
|
16
|
-
|
16
|
+
if @_initializer.first.include?('appium_ios')
|
17
|
+
template('automation/home_page.tt', "#{name}/page_objects/pages/home_page.rb")
|
18
|
+
end
|
17
19
|
end
|
18
20
|
|
19
21
|
def generate_header_component
|
@@ -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
|
-
|
28
|
-
|
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
|
-
|
6
|
-
|
7
|
-
<%= ERB.new(File.read(File.expand_path('./partials/
|
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
|
@@ -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 -%>
|
@@ -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.
|
15
|
-
password_field.
|
16
|
-
login_button.
|
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.
|
29
|
+
@browser.text_field(id: 'loginFrm_loginname')
|
32
30
|
end
|
33
31
|
|
34
32
|
def password_field
|
35
|
-
browser.
|
33
|
+
@browser.text_field(id: 'loginFrm_password')
|
36
34
|
end
|
37
35
|
|
38
36
|
def login_button
|
39
|
-
browser.
|
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
|
-
|
5
|
+
@driver = Raider::DriverHelper.new_driver
|
6
|
+
@driver.start_driver
|
7
7
|
end
|
8
8
|
|
9
9
|
After do |scenario|
|
10
|
-
|
10
|
+
@driver.screenshot("allure-results/screenshots/#{scenario.name}.png")
|
11
11
|
Raider::AllureHelper.add_screenshot(scenario.name)
|
12
|
-
|
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.
|
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.
|
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
|
-
|
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::
|
5
|
-
Raider::DriverHelper.new_driver
|
4
|
+
@driver = Raider::DriverHelper.new_driver
|
6
5
|
end
|
7
6
|
|
8
7
|
After do |scenario|
|
9
|
-
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
|
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.
|
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
|
-
|
11
|
+
@login_page.login('aguspe', '12341234')
|
11
12
|
end
|
12
13
|
|
13
14
|
When('I can see the main page') do
|
14
|
-
expect(
|
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,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 %>
|
@@ -1,15 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Raider
|
4
|
-
|
4
|
+
<% if framework == 'rspec' -%>
|
5
5
|
require_relative 'spec_helper'
|
6
|
-
|
6
|
+
<% end -%>
|
7
7
|
<%= ERB.new(File.read(File.expand_path('./partials/require_automation.tt', __dir__))).result(binding).strip! %>
|
8
|
-
|
9
|
-
<% if automation == 'watir' %>
|
8
|
+
<% if automation == 'watir' -%>
|
10
9
|
require_relative 'browser_helper'
|
11
|
-
|
10
|
+
<% else -%>
|
12
11
|
require_relative 'driver_helper'
|
13
|
-
|
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
|
-
|
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
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
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
|
-
|
12
|
-
|
13
|
-
|
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
|
17
|
-
|
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
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
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,9 +2,9 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'ruby_raider'
|
5
|
-
s.version = '0.2.
|
5
|
+
s.version = '0.2.4'
|
6
6
|
s.summary = 'A gem to make setup and start of UI automation projects easier'
|
7
|
-
s.description = 'This gem
|
7
|
+
s.description = 'This gem has everything you need to start working with test automation'
|
8
8
|
s.authors = ['Agustin Pequeno']
|
9
9
|
s.email = 'agustin.pe94@gmail.com'
|
10
10
|
s.homepage = 'http://github.com/aguspe/ruby_raider'
|
@@ -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.
|
4
|
+
version: 0.2.4
|
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-
|
11
|
+
date: 2022-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -108,8 +108,7 @@ dependencies:
|
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 1.2.1
|
111
|
-
description: This gem
|
112
|
-
one simple package
|
111
|
+
description: This gem has everything you need to start working with test automation
|
113
112
|
email: agustin.pe94@gmail.com
|
114
113
|
executables:
|
115
114
|
- raider
|
@@ -138,8 +137,8 @@ files:
|
|
138
137
|
- lib/generators/templates/automation/home_page.tt
|
139
138
|
- lib/generators/templates/automation/login_page.tt
|
140
139
|
- lib/generators/templates/automation/partials/appium_login.tt
|
141
|
-
- lib/generators/templates/automation/partials/driver_selector.tt
|
142
140
|
- lib/generators/templates/automation/partials/element.tt
|
141
|
+
- lib/generators/templates/automation/partials/initialize_selector.tt
|
143
142
|
- lib/generators/templates/automation/partials/require_raider.tt
|
144
143
|
- lib/generators/templates/automation/partials/selenium_login.tt
|
145
144
|
- lib/generators/templates/automation/partials/url_methods.tt
|
@@ -163,16 +162,14 @@ files:
|
|
163
162
|
- lib/generators/templates/helpers/driver_helper.tt
|
164
163
|
- lib/generators/templates/helpers/partials/allure_imports.tt
|
165
164
|
- lib/generators/templates/helpers/partials/allure_requirements.tt
|
166
|
-
- lib/generators/templates/helpers/partials/driver_requirements.tt
|
167
165
|
- lib/generators/templates/helpers/partials/new_driver.tt
|
168
166
|
- lib/generators/templates/helpers/partials/quit_driver.tt
|
169
167
|
- lib/generators/templates/helpers/partials/require_automation.tt
|
170
168
|
- lib/generators/templates/helpers/partials/screenshot.tt
|
171
|
-
- lib/generators/templates/helpers/
|
169
|
+
- lib/generators/templates/helpers/partials/select_driver.tt
|
172
170
|
- lib/generators/templates/helpers/raider_helper.tt
|
173
171
|
- lib/generators/templates/helpers/selenium_helper.tt
|
174
172
|
- lib/generators/templates/helpers/spec_helper.tt
|
175
|
-
- lib/generators/templates/helpers/watir_helper.tt
|
176
173
|
- lib/generators/templates/rspec/base_spec.tt
|
177
174
|
- lib/generators/templates/rspec/spec.tt
|
178
175
|
- lib/ruby_raider.rb
|
@@ -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
|