ruby_raider 0.1.8 → 0.1.9
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/files/automation_file_generator.rb +33 -10
- data/lib/generators/files/common_file_generator.rb +10 -6
- data/lib/generators/files/cucumber_file_generator.rb +4 -4
- data/lib/generators/files/helpers_file_generator.rb +17 -10
- data/lib/generators/files/rspec_file_generator.rb +8 -7
- data/lib/generators/menu_generator.rb +44 -29
- data/lib/generators/projects/cucumber_project_generator.rb +18 -10
- data/lib/generators/projects/project_generator.rb +14 -0
- data/lib/generators/projects/rspec_project_generator.rb +12 -8
- data/lib/generators/templates/automation/abstract_page_template.rb +66 -32
- data/lib/generators/templates/automation/appium_settings_template.rb +16 -0
- data/lib/generators/templates/automation/confirmation_page_template.rb +26 -0
- data/lib/generators/templates/automation/home_page_template.rb +26 -0
- data/lib/generators/templates/automation/login_page_template.rb +113 -0
- data/lib/generators/templates/common/gemfile_template.rb +41 -18
- data/lib/generators/templates/helpers/driver_helper_template.rb +37 -7
- data/lib/generators/templates/helpers/raider_helper_template.rb +15 -3
- data/lib/generators/templates/helpers/spec_helper_template.rb +46 -7
- data/lib/generators/templates/rspec/example_spec_template.rb +44 -21
- data/ruby_raider.gemspec +1 -1
- data/spec/automation_file_generator_spec.rb +52 -27
- data/spec/common_file_generator_spec.rb +1 -1
- data/spec/cucumber_file_generator_spec.rb +1 -1
- data/spec/cucumber_project_generator_spec.rb +1 -1
- data/spec/helpers_file_generator_spec.rb +2 -2
- data/spec/rspec_file_generator_spec.rb +1 -1
- data/spec/rspec_project_generator_spec.rb +53 -32
- metadata +6 -3
- data/lib/generators/templates/automation/page_template.rb +0 -51
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4dcbe671c993c24b4869fb0243906a8cd5d4614d7ea4690e0292cdb8c67a0b58
|
4
|
+
data.tar.gz: 39018ac4bf1d1148ad6a5308ca251d54de216154f774955c9c0c5c966b836019
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c9ae7dce2543807cf14ed1e51f0d81e015ef40b0e9d791209432cc954d55bb3fe39fe297fb43c4a7a07381431bd069ed4b33de98b30328f161ef25538d5ee6d
|
7
|
+
data.tar.gz: caefa842f497505b6dcfc64e1e35cd27ba4f31f41ec11ac635359acae7540296251b9523054e01fe75d3c247373707a8f669b39eaa2fff3130fc2a8a9e5eef15
|
@@ -1,22 +1,31 @@
|
|
1
1
|
require_relative 'file_generator'
|
2
2
|
require_relative '../templates/automation/abstract_page_template'
|
3
3
|
require_relative '../templates/automation/abstract_component_template'
|
4
|
+
require_relative '../templates/automation/appium_settings_template'
|
4
5
|
require_relative '../templates/automation/component_template'
|
5
|
-
require_relative '../templates/automation/
|
6
|
+
require_relative '../templates/automation/confirmation_page_template'
|
7
|
+
require_relative '../templates/automation/login_page_template'
|
8
|
+
require_relative '../templates/automation/home_page_template'
|
6
9
|
|
7
10
|
module RubyRaider
|
8
11
|
class AutomationFileGenerator < FileGenerator
|
9
12
|
class << self
|
10
|
-
def generate_automation_files(
|
11
|
-
|
13
|
+
def generate_automation_files(automation, name, framework)
|
14
|
+
generate_login_page(automation, name)
|
12
15
|
generate_abstract_page(automation, framework, name)
|
13
|
-
|
14
|
-
|
16
|
+
if %w[selenium watir].include?(automation)
|
17
|
+
generate_example_component(name)
|
18
|
+
generate_abstract_component(framework, name)
|
19
|
+
else
|
20
|
+
generate_home_page(name)
|
21
|
+
generate_confirmation_page(name)
|
22
|
+
generate_appium_settings(name)
|
23
|
+
end
|
15
24
|
end
|
16
25
|
|
17
|
-
def
|
26
|
+
def generate_login_page(automation, name)
|
18
27
|
generate_file('login_page.rb', "#{name}/page_objects/pages",
|
19
|
-
|
28
|
+
LoginPageTemplate.new(automation: automation, name: name).parsed_body)
|
20
29
|
end
|
21
30
|
|
22
31
|
def generate_abstract_page(automation, framework, name)
|
@@ -24,15 +33,29 @@ module RubyRaider
|
|
24
33
|
AbstractPageTemplate.new(automation: automation, framework: framework, name: name).parsed_body)
|
25
34
|
end
|
26
35
|
|
36
|
+
def generate_home_page(name)
|
37
|
+
generate_file('home_page.rb', "#{name}/page_objects/pages",
|
38
|
+
HomePageTemplate.new.parsed_body)
|
39
|
+
end
|
40
|
+
|
41
|
+
def generate_confirmation_page(name)
|
42
|
+
generate_file('confirmation_page.rb', "#{name}/page_objects/pages",
|
43
|
+
ConfirmationPageTemplate.new.parsed_body)
|
44
|
+
end
|
45
|
+
|
27
46
|
def generate_example_component(name)
|
28
|
-
generate_file('header_component.rb',"#{name}/page_objects/components",
|
29
|
-
|
47
|
+
generate_file('header_component.rb', "#{name}/page_objects/components",
|
48
|
+
ComponentTemplate.new.parsed_body)
|
30
49
|
end
|
31
50
|
|
32
51
|
def generate_abstract_component(framework, name)
|
33
|
-
generate_file('abstract_component.rb',"#{name}/page_objects/abstract",
|
52
|
+
generate_file('abstract_component.rb', "#{name}/page_objects/abstract",
|
34
53
|
AbstractComponentTemplate.new(framework: framework).parsed_body)
|
35
54
|
end
|
55
|
+
|
56
|
+
def generate_appium_settings(name)
|
57
|
+
generate_file('appium.txt', name.to_s, AppiumSettingsTemplate.new.parsed_body)
|
58
|
+
end
|
36
59
|
end
|
37
60
|
end
|
38
61
|
end
|
@@ -7,11 +7,14 @@ require_relative 'file_generator'
|
|
7
7
|
module RubyRaider
|
8
8
|
class CommonFileGenerator < FileGenerator
|
9
9
|
class << self
|
10
|
-
def generate_common_files(name, framework)
|
11
|
-
|
12
|
-
|
10
|
+
def generate_common_files(automation, name, framework)
|
11
|
+
if %w[selenium watir].include?(automation)
|
12
|
+
generate_config_file(name)
|
13
|
+
generate_rake_file(name)
|
14
|
+
end
|
15
|
+
|
13
16
|
generate_readme_file(name)
|
14
|
-
generate_gemfile(framework, name)
|
17
|
+
generate_gemfile(automation, framework, name)
|
15
18
|
end
|
16
19
|
|
17
20
|
def generate_readme_file(name)
|
@@ -26,8 +29,9 @@ module RubyRaider
|
|
26
29
|
generate_file('Rakefile', name.to_s, RakeFileTemplate.new.parsed_body)
|
27
30
|
end
|
28
31
|
|
29
|
-
def generate_gemfile(framework, name)
|
30
|
-
generate_file('Gemfile',name.to_s,
|
32
|
+
def generate_gemfile(automation, framework, name)
|
33
|
+
generate_file('Gemfile',name.to_s,
|
34
|
+
GemfileTemplate.new(automation: automation, framework: framework).parsed_body)
|
31
35
|
end
|
32
36
|
end
|
33
37
|
end
|
@@ -6,10 +6,10 @@ require_relative 'file_generator'
|
|
6
6
|
module RubyRaider
|
7
7
|
class CucumberFileGenerator < FileGenerator
|
8
8
|
class << self
|
9
|
-
def generate_cucumber_files(
|
10
|
-
AutomationFileGenerator.generate_automation_files(
|
11
|
-
CommonFileGenerator.generate_common_files(name, 'cucumber')
|
12
|
-
HelpersFileGenerator.generate_helper_files(
|
9
|
+
def generate_cucumber_files(automation, name)
|
10
|
+
AutomationFileGenerator.generate_automation_files(automation, name, 'framework')
|
11
|
+
CommonFileGenerator.generate_common_files(automation, name, 'cucumber')
|
12
|
+
HelpersFileGenerator.generate_helper_files(automation, name, 'cucumber')
|
13
13
|
generate_env_file(automation, name)
|
14
14
|
generate_example_feature(name)
|
15
15
|
generate_example_steps(name)
|
@@ -11,19 +11,13 @@ require_relative 'file_generator'
|
|
11
11
|
module RubyRaider
|
12
12
|
class HelpersFileGenerator < FileGenerator
|
13
13
|
class << self
|
14
|
-
def generate_helper_files(
|
14
|
+
def generate_helper_files(automation, name, framework)
|
15
15
|
path = framework == 'rspec' ? "#{name}/helpers" : "#{name}/features/support/helpers"
|
16
16
|
generate_raider_helper(automation, framework, path)
|
17
17
|
generate_allure_helper(framework, path)
|
18
18
|
generate_pom_helper(path)
|
19
19
|
generate_spec_helper(automation, path) if framework == 'rspec'
|
20
|
-
|
21
|
-
generate_watir_helper(path)
|
22
|
-
generate_browser_helper(path)
|
23
|
-
else
|
24
|
-
generate_selenium_helper(path)
|
25
|
-
generate_driver_helper(path)
|
26
|
-
end
|
20
|
+
select_helpers(automation, path)
|
27
21
|
end
|
28
22
|
|
29
23
|
def generate_raider_helper(automation, framework, path)
|
@@ -55,8 +49,21 @@ module RubyRaider
|
|
55
49
|
generate_file('selenium_helper.rb', path, SeleniumHelperTemplate.new.parsed_body)
|
56
50
|
end
|
57
51
|
|
58
|
-
def generate_driver_helper(path)
|
59
|
-
generate_file('driver_helper.rb', path, DriverHelperTemplate.new.parsed_body)
|
52
|
+
def generate_driver_helper(automation, path)
|
53
|
+
generate_file('driver_helper.rb', path, DriverHelperTemplate.new(automation: automation).parsed_body)
|
54
|
+
end
|
55
|
+
|
56
|
+
def select_helpers(automation, path)
|
57
|
+
case automation
|
58
|
+
when 'watir'
|
59
|
+
generate_watir_helper(path)
|
60
|
+
generate_browser_helper(path)
|
61
|
+
when 'selenium'
|
62
|
+
generate_selenium_helper(path)
|
63
|
+
generate_driver_helper(automation, path)
|
64
|
+
else
|
65
|
+
generate_driver_helper(automation, path)
|
66
|
+
end
|
60
67
|
end
|
61
68
|
end
|
62
69
|
end
|
@@ -8,16 +8,17 @@ require_relative 'helpers_file_generator'
|
|
8
8
|
module RubyRaider
|
9
9
|
class RspecFileGenerator < FileGenerator
|
10
10
|
class << self
|
11
|
-
def generate_rspec_files(
|
12
|
-
AutomationFileGenerator.generate_automation_files(
|
13
|
-
CommonFileGenerator.generate_common_files(name, 'rspec')
|
14
|
-
HelpersFileGenerator.generate_helper_files(
|
11
|
+
def generate_rspec_files(automation, name)
|
12
|
+
AutomationFileGenerator.generate_automation_files(automation, name,'rspec')
|
13
|
+
CommonFileGenerator.generate_common_files(automation, name, 'rspec')
|
14
|
+
HelpersFileGenerator.generate_helper_files(automation, name, 'rspec')
|
15
15
|
generate_base_spec(name)
|
16
|
-
generate_example_spec(name)
|
16
|
+
generate_example_spec(automation, name)
|
17
17
|
end
|
18
18
|
|
19
|
-
def generate_example_spec(name)
|
20
|
-
generate_file('login_page_spec.rb', "#{name}/spec",
|
19
|
+
def generate_example_spec(automation, name)
|
20
|
+
generate_file('login_page_spec.rb', "#{name}/spec",
|
21
|
+
ExampleSpecTemplate.new(automation: automation).parsed_body)
|
21
22
|
end
|
22
23
|
|
23
24
|
def generate_base_spec(name)
|
@@ -4,41 +4,56 @@ require_relative '../generators/projects/rspec_project_generator'
|
|
4
4
|
|
5
5
|
module RubyRaider
|
6
6
|
class MenuGenerator
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
7
|
+
class << self
|
8
|
+
def generate_choice_menu(project_name)
|
9
|
+
@cli = HighLine.new
|
10
|
+
@cli.choose do |menu|
|
11
|
+
menu.prompt = 'Please select your automation framework'
|
12
|
+
menu.choice('Selenium') { choose_test_framework('selenium', project_name) }
|
13
|
+
menu.choice('Watir') { choose_test_framework('watir', project_name) }
|
14
|
+
menu.choice('Appium') { choose_test_framework('appium', project_name) }
|
15
|
+
menu.choice('Quit') { exit }
|
16
|
+
end
|
14
17
|
end
|
15
|
-
end
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
19
|
+
def choose_test_framework(automation, project_name)
|
20
|
+
system('clear') || system('cls')
|
21
|
+
sleep 0.3
|
22
|
+
automation = automation == 'appium' ? choose_mobile_platform : automation
|
23
|
+
framework = ''
|
24
|
+
@cli.choose do |menu|
|
25
|
+
menu.prompt = 'Please select your test framework'
|
26
|
+
menu.choice('Rspec') { framework = 'rspec'; set_framework(automation, framework, project_name) }
|
27
|
+
menu.choice('Cucumber') do
|
28
|
+
if %w[selenium watir].include? automation
|
29
|
+
framework = 'cucumber'
|
30
|
+
set_framework(automation, framework, project_name)
|
31
|
+
else
|
32
|
+
pp 'We will support iOS with cucumber on the next release'
|
33
|
+
exit
|
34
|
+
end
|
35
|
+
end
|
36
|
+
menu.choice('Quit') { exit }
|
27
37
|
end
|
28
|
-
|
29
|
-
|
30
|
-
|
38
|
+
@cli.say("You have chosen to use #{framework} with #{automation}")
|
39
|
+
end
|
40
|
+
|
41
|
+
def set_framework(automation, framework, project_name)
|
42
|
+
if framework == 'rspec'
|
43
|
+
RspecProjectGenerator.generate_rspec_project(automation, project_name)
|
44
|
+
else
|
45
|
+
CucumberProjectGenerator.generate_cucumber_project(automation, project_name)
|
31
46
|
end
|
32
|
-
menu.choice(:Quit, 'Exit program.') { exit }
|
33
47
|
end
|
34
|
-
cli.say("You have chosen to use #{framework} with #{automation}")
|
35
|
-
end
|
36
48
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
49
|
+
def choose_mobile_platform
|
50
|
+
@cli.choose do |menu|
|
51
|
+
menu.prompt = 'Please select your mobile platform'
|
52
|
+
menu.choice('iOS') { 'appium_ios' }
|
53
|
+
menu.choice('Android') { pp 'Android appium is coming soon. Thank you for the interest'; exit }
|
54
|
+
menu.choice('Cross Platform') { pp 'Cross platform appium is coming soon. Thank you for the interest'; exit }
|
55
|
+
menu.choice('Quit') { exit }
|
56
|
+
end
|
42
57
|
end
|
43
58
|
end
|
44
59
|
end
|
@@ -4,22 +4,30 @@ require_relative 'project_generator'
|
|
4
4
|
module RubyRaider
|
5
5
|
class CucumberProjectGenerator < ProjectGenerator
|
6
6
|
class << self
|
7
|
-
def generate_cucumber_project(
|
8
|
-
cucumber_folder_structure(name)
|
9
|
-
CucumberFileGenerator.generate_cucumber_files(
|
7
|
+
def generate_cucumber_project(automation, name)
|
8
|
+
cucumber_folder_structure(automation, name)
|
9
|
+
CucumberFileGenerator.generate_cucumber_files(automation, name)
|
10
10
|
ProjectGenerator.install_gems(name)
|
11
11
|
end
|
12
12
|
|
13
|
-
def cucumber_folder_structure(name)
|
14
|
-
|
15
|
-
|
13
|
+
def cucumber_folder_structure(automation, name)
|
14
|
+
create_project_folder(name)
|
15
|
+
create_base_folders(automation, name)
|
16
|
+
create_features_child_folders(name)
|
17
|
+
Dir.mkdir "#{name}/features/support/helpers"
|
18
|
+
create_po_child_folders(automation, name)
|
19
|
+
Dir.mkdir "#{name}/allure-results/screenshots"
|
20
|
+
end
|
21
|
+
|
22
|
+
def create_base_folders(automation, name)
|
23
|
+
folders = %w[features page_objects allure-results]
|
16
24
|
create_children_folders("#{name}", folders)
|
25
|
+
Dir.mkdir "#{name}/config" if %w[selenium watir].include?(automation)
|
26
|
+
end
|
27
|
+
|
28
|
+
def create_features_child_folders(name)
|
17
29
|
folders = %w[step_definitions support]
|
18
30
|
create_children_folders("#{name}/features", folders)
|
19
|
-
Dir.mkdir "#{name}/features/support/helpers"
|
20
|
-
folders = %w[abstract pages components]
|
21
|
-
create_children_folders("#{name}/page_objects", folders)
|
22
|
-
Dir.mkdir "#{name}/allure-results/screenshots"
|
23
31
|
end
|
24
32
|
end
|
25
33
|
end
|
@@ -8,6 +8,20 @@ module RubyRaider
|
|
8
8
|
def install_gems(name)
|
9
9
|
system "cd #{name} && gem install bundler && bundle install"
|
10
10
|
end
|
11
|
+
|
12
|
+
def create_project_folder(name)
|
13
|
+
Dir.mkdir name.to_s
|
14
|
+
end
|
15
|
+
|
16
|
+
def create_base_folders
|
17
|
+
raise 'Please specify the base folders for the projects'
|
18
|
+
end
|
19
|
+
|
20
|
+
def create_po_child_folders(automation, name)
|
21
|
+
folders = %w[pages abstract]
|
22
|
+
create_children_folders("#{name}/page_objects", folders)
|
23
|
+
Dir.mkdir "#{name}/page_objects/components" if %w[selenium watir].include?(automation)
|
24
|
+
end
|
11
25
|
end
|
12
26
|
end
|
13
27
|
end
|
@@ -4,18 +4,22 @@ require_relative '../files/rspec_file_generator'
|
|
4
4
|
module RubyRaider
|
5
5
|
class RspecProjectGenerator < ProjectGenerator
|
6
6
|
class << self
|
7
|
-
def generate_rspec_project(
|
8
|
-
rspec_folder_structure(name)
|
9
|
-
RspecFileGenerator.generate_rspec_files(
|
7
|
+
def generate_rspec_project(automation, name)
|
8
|
+
rspec_folder_structure(automation, name)
|
9
|
+
RspecFileGenerator.generate_rspec_files(automation, name)
|
10
10
|
ProjectGenerator.install_gems(name)
|
11
11
|
end
|
12
12
|
|
13
|
-
def rspec_folder_structure(name)
|
14
|
-
|
15
|
-
|
13
|
+
def rspec_folder_structure(automation, name)
|
14
|
+
create_project_folder(name)
|
15
|
+
create_base_folders(automation, name)
|
16
|
+
create_po_child_folders(automation, name)
|
17
|
+
end
|
18
|
+
|
19
|
+
def create_base_folders(automation, name)
|
20
|
+
folders = %w[data page_objects helpers spec]
|
16
21
|
create_children_folders(name, folders)
|
17
|
-
|
18
|
-
create_children_folders("#{name}/page_objects", pages)
|
22
|
+
Dir.mkdir "#{name}/config" if %w[selenium watir].include?(automation)
|
19
23
|
end
|
20
24
|
end
|
21
25
|
end
|
@@ -1,48 +1,82 @@
|
|
1
1
|
require_relative '../template'
|
2
2
|
|
3
3
|
class AbstractPageTemplate < Template
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
|
5
|
+
def raider
|
6
|
+
if @framework == 'rspec'
|
7
|
+
"require_relative '../../helpers/raider'\n"
|
8
|
+
else
|
9
|
+
"require_relative '../../features/support/helpers/raider'\n"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def helper_selector
|
14
|
+
if @automation == 'watir'
|
15
|
+
<<~EOF
|
16
|
+
|
17
|
+
def browser
|
18
|
+
Raider::BrowserHelper.browser
|
19
|
+
end
|
20
|
+
|
21
|
+
EOF
|
22
|
+
else
|
23
|
+
<<-EOF
|
24
|
+
|
25
|
+
def driver
|
9
26
|
Raider::DriverHelper.driver
|
10
|
-
end
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
EOF
|
31
|
+
end
|
32
|
+
end
|
11
33
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
else
|
16
|
-
"require_relative '../../features/support/helpers/raider'"
|
17
|
-
end
|
34
|
+
def visit
|
35
|
+
if %w[selenium watir].include?(@automation)
|
36
|
+
<<-EOF
|
18
37
|
|
19
|
-
<<~EOF
|
20
|
-
require 'rspec'
|
21
|
-
#{raider}
|
22
38
|
|
23
|
-
|
39
|
+
def visit(*page)
|
40
|
+
#{@automation == 'selenium' ? 'driver.navigate.to full_url(page.first)' : 'browser.goto full_url(page.first)'}
|
41
|
+
end
|
24
42
|
|
25
|
-
|
26
|
-
|
43
|
+
EOF
|
44
|
+
end
|
45
|
+
end
|
27
46
|
|
28
|
-
|
47
|
+
def url_methods
|
48
|
+
methods = <<-EOF
|
49
|
+
|
29
50
|
|
30
|
-
|
31
|
-
|
32
|
-
|
51
|
+
def full_url(*page)
|
52
|
+
"#\{base_url}#\{url(*page)}"
|
53
|
+
end
|
33
54
|
|
34
|
-
|
35
|
-
|
36
|
-
|
55
|
+
def base_url
|
56
|
+
'https://automationteststore.com/'
|
57
|
+
end
|
37
58
|
|
38
|
-
|
39
|
-
|
40
|
-
|
59
|
+
def url(_page)
|
60
|
+
raise 'Url must be defined on child pages'
|
61
|
+
end
|
62
|
+
EOF
|
63
|
+
|
64
|
+
|
65
|
+
methods if %w[selenium watir].include?(@automation)
|
66
|
+
end
|
67
|
+
|
68
|
+
def body
|
69
|
+
<<~EOF.gsub(/\n{2}\s{4}/, '')
|
70
|
+
require 'rspec'
|
71
|
+
#{raider}
|
72
|
+
class AbstractPage
|
41
73
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
74
|
+
include RSpec::Matchers
|
75
|
+
extend Raider::PomHelper
|
76
|
+
#{helper_selector}
|
77
|
+
#{visit}
|
78
|
+
#{url_methods}
|
79
|
+
end
|
46
80
|
EOF
|
47
81
|
end
|
48
82
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative '../template'
|
2
|
+
|
3
|
+
class AppiumSettingsTemplate < Template
|
4
|
+
def body
|
5
|
+
<<~EOF
|
6
|
+
[caps]
|
7
|
+
platformName = "iOS"
|
8
|
+
platformVersion = "15.4"
|
9
|
+
deviceName = "iPhone SE (3rd generation)"
|
10
|
+
app = "TheApp.app"
|
11
|
+
|
12
|
+
[appium_lib]
|
13
|
+
server_url = "http://127.0.0.1:4723/wd/hub"
|
14
|
+
EOF
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative '../template'
|
2
|
+
|
3
|
+
class ConfirmationPageTemplate < Template
|
4
|
+
def body
|
5
|
+
<<~EOF
|
6
|
+
require_relative '../abstract/abstract_page'
|
7
|
+
|
8
|
+
class ConfirmationPage < AbstractPage
|
9
|
+
|
10
|
+
#Values
|
11
|
+
|
12
|
+
def login_message
|
13
|
+
driver.wait { message_element }.text
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
# Elements
|
19
|
+
|
20
|
+
def message_element
|
21
|
+
driver.find_element(accessibility_id: 'You are logged in as alice')
|
22
|
+
end
|
23
|
+
end
|
24
|
+
EOF
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative '../template'
|
2
|
+
|
3
|
+
class HomePageTemplate < Template
|
4
|
+
def body
|
5
|
+
<<~EOF
|
6
|
+
require_relative '../abstract/abstract_page'
|
7
|
+
|
8
|
+
class HomePage < AbstractPage
|
9
|
+
|
10
|
+
#Actions
|
11
|
+
|
12
|
+
def go_to_login
|
13
|
+
driver.wait { login_button_navigator }.click
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
# Elements
|
19
|
+
|
20
|
+
def login_button_navigator
|
21
|
+
driver.find_element(accessibility_id: 'Login Screen')
|
22
|
+
end
|
23
|
+
end
|
24
|
+
EOF
|
25
|
+
end
|
26
|
+
end
|