ruby_raider 0.1.9 → 0.2.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.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/.reek.yml +3 -0
  3. data/.rubocop.yml +6 -0
  4. data/README.md +5 -6
  5. data/Rakefile +2 -0
  6. data/bin/raider +1 -0
  7. data/lib/generators/automation_generator.rb +45 -0
  8. data/lib/generators/common_generator.rb +31 -0
  9. data/lib/generators/cucumber_generator.rb +19 -0
  10. data/lib/generators/generator.rb +16 -0
  11. data/lib/generators/helper_generator.rb +48 -0
  12. data/lib/generators/menu_generator.rb +27 -14
  13. data/lib/generators/rspec_generator.rb +16 -0
  14. data/lib/generators/templates/automation/abstract_component.tt +7 -0
  15. data/lib/generators/templates/automation/abstract_page.tt +10 -0
  16. data/lib/generators/templates/automation/appium_settings.tt +8 -0
  17. data/lib/generators/templates/automation/component.tt +9 -0
  18. data/lib/generators/templates/automation/confirmation_page.tt +19 -0
  19. data/lib/generators/templates/automation/home_page.tt +20 -0
  20. data/lib/generators/templates/automation/login_page.tt +8 -0
  21. data/lib/generators/templates/automation/partials/appium_login.tt +28 -0
  22. data/lib/generators/templates/automation/partials/driver_selector.tt +9 -0
  23. data/lib/generators/templates/automation/partials/element.tt +5 -0
  24. data/lib/generators/templates/automation/partials/require_raider.tt +5 -0
  25. data/lib/generators/templates/automation/partials/selenium_login.tt +40 -0
  26. data/lib/generators/templates/automation/partials/url_methods.tt +13 -0
  27. data/lib/generators/templates/automation/partials/visit_method.tt +9 -0
  28. data/lib/generators/templates/automation/partials/watir_login.tt +41 -0
  29. data/lib/generators/templates/common/config.tt +1 -0
  30. data/lib/generators/templates/common/gemfile.tt +19 -0
  31. data/lib/generators/templates/common/partials/automation_gems.tt +10 -0
  32. data/lib/generators/templates/common/rakefile.tt +8 -0
  33. data/lib/generators/templates/common/read_me.tt +97 -0
  34. data/lib/generators/templates/cucumber/env.tt +8 -0
  35. data/lib/generators/templates/cucumber/feature.tt +6 -0
  36. data/lib/generators/templates/cucumber/partials/appium_env.tt +13 -0
  37. data/lib/generators/templates/cucumber/partials/mobile_steps.tt +17 -0
  38. data/lib/generators/templates/cucumber/partials/selenium_appium_env.tt +13 -0
  39. data/lib/generators/templates/cucumber/partials/watir_env.tt +13 -0
  40. data/lib/generators/templates/cucumber/partials/web_steps.tt +15 -0
  41. data/lib/generators/templates/cucumber/steps.tt +5 -0
  42. data/lib/generators/templates/helpers/allure_helper.tt +32 -0
  43. data/lib/generators/templates/helpers/browser_helper.tt +19 -0
  44. data/lib/generators/templates/helpers/driver_helper.tt +18 -0
  45. data/lib/generators/templates/helpers/partials/allure_imports.tt +5 -0
  46. data/lib/generators/templates/helpers/partials/allure_requirements.tt +6 -0
  47. data/lib/generators/templates/helpers/partials/driver_requirements.tt +14 -0
  48. data/lib/generators/templates/helpers/partials/new_driver.tt +11 -0
  49. data/lib/generators/templates/helpers/partials/quit_driver.tt +8 -0
  50. data/lib/generators/templates/helpers/partials/require_automation.tt +5 -0
  51. data/lib/generators/templates/helpers/partials/screenshot.tt +8 -0
  52. data/lib/generators/templates/helpers/pom_helper.tt +19 -0
  53. data/lib/generators/templates/helpers/raider_helper.tt +15 -0
  54. data/lib/generators/templates/helpers/selenium_helper.tt +36 -0
  55. data/lib/generators/templates/helpers/spec_helper.tt +37 -0
  56. data/lib/generators/templates/helpers/watir_helper.tt +16 -0
  57. data/lib/generators/templates/rspec/base_spec.tt +5 -0
  58. data/lib/generators/templates/rspec/spec.tt +37 -0
  59. data/lib/ruby_raider.rb +5 -4
  60. data/ruby_raider.gemspec +7 -1
  61. data/spec/automation_generator_spec.rb +192 -0
  62. data/spec/common_generator_spec.rb +141 -0
  63. data/spec/cucumber_generator_spec.rb +71 -0
  64. data/spec/helpers_generator_spec.rb +133 -0
  65. data/spec/rspec_generator_spec.rb +63 -0
  66. data/spec/spec_helper.rb +3 -3
  67. metadata +116 -43
  68. data/lib/generators/files/automation_file_generator.rb +0 -61
  69. data/lib/generators/files/common_file_generator.rb +0 -38
  70. data/lib/generators/files/cucumber_file_generator.rb +0 -33
  71. data/lib/generators/files/file_generator.rb +0 -11
  72. data/lib/generators/files/helpers_file_generator.rb +0 -70
  73. data/lib/generators/files/rspec_file_generator.rb +0 -29
  74. data/lib/generators/projects/cucumber_project_generator.rb +0 -34
  75. data/lib/generators/projects/project_generator.rb +0 -27
  76. data/lib/generators/projects/rspec_project_generator.rb +0 -26
  77. data/lib/generators/templates/automation/abstract_component_template.rb +0 -22
  78. data/lib/generators/templates/automation/abstract_page_template.rb +0 -82
  79. data/lib/generators/templates/automation/appium_settings_template.rb +0 -16
  80. data/lib/generators/templates/automation/component_template.rb +0 -16
  81. data/lib/generators/templates/automation/confirmation_page_template.rb +0 -26
  82. data/lib/generators/templates/automation/home_page_template.rb +0 -26
  83. data/lib/generators/templates/automation/login_page_template.rb +0 -113
  84. data/lib/generators/templates/common/config_template.rb +0 -9
  85. data/lib/generators/templates/common/gemfile_template.rb +0 -52
  86. data/lib/generators/templates/common/rake_file_template.rb +0 -16
  87. data/lib/generators/templates/common/read_me_template.rb +0 -104
  88. data/lib/generators/templates/cucumber/env_template.rb +0 -38
  89. data/lib/generators/templates/cucumber/example_feature_template.rb +0 -15
  90. data/lib/generators/templates/cucumber/example_steps_template.rb +0 -21
  91. data/lib/generators/templates/helpers/allure_helper_template.rb +0 -47
  92. data/lib/generators/templates/helpers/browser_helper_template.rb +0 -26
  93. data/lib/generators/templates/helpers/driver_helper_template.rb +0 -54
  94. data/lib/generators/templates/helpers/pom_helper_template.rb +0 -25
  95. data/lib/generators/templates/helpers/raider_helper_template.rb +0 -27
  96. data/lib/generators/templates/helpers/selenium_helper_template.rb +0 -42
  97. data/lib/generators/templates/helpers/spec_helper_template.rb +0 -74
  98. data/lib/generators/templates/helpers/watir_helper_template.rb +0 -24
  99. data/lib/generators/templates/rspec/base_spec_template.rb +0 -13
  100. data/lib/generators/templates/rspec/example_spec_template.rb +0 -56
  101. data/lib/generators/templates/template.rb +0 -14
  102. data/spec/automation_file_generator_spec.rb +0 -59
  103. data/spec/common_file_generator_spec.rb +0 -27
  104. data/spec/cucumber_file_generator_spec.rb +0 -26
  105. data/spec/cucumber_project_generator_spec.rb +0 -60
  106. data/spec/helpers_file_generator_spec.rb +0 -73
  107. data/spec/rspec_file_generator_spec.rb +0 -21
  108. data/spec/rspec_project_generator_spec.rb +0 -69
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.1.9
4
+ version: 0.2.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: 2022-04-10 00:00:00.000000000 Z
11
+ date: 2022-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -24,6 +24,48 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 13.0.6
27
+ - !ruby/object:Gem::Dependency
28
+ name: reek
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 6.1.0
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 6.1.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: rubocop
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.27'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.27'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubocop-rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 2.9.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 2.9.0
27
69
  - !ruby/object:Gem::Dependency
28
70
  name: rspec
29
71
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +94,20 @@ dependencies:
52
94
  - - "~>"
53
95
  - !ruby/object:Gem::Version
54
96
  version: 2.0.3
97
+ - !ruby/object:Gem::Dependency
98
+ name: thor
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 1.2.1
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 1.2.1
55
111
  description: This gem contents everything you need to start doing web automation in
56
112
  one simple package
57
113
  email: agustin.pe94@gmail.com
@@ -61,54 +117,71 @@ extensions: []
61
117
  extra_rdoc_files: []
62
118
  files:
63
119
  - ".gitignore"
120
+ - ".reek.yml"
121
+ - ".rubocop.yml"
64
122
  - Gemfile
65
123
  - README.md
66
124
  - Rakefile
67
125
  - bin/raider
68
- - lib/generators/files/automation_file_generator.rb
69
- - lib/generators/files/common_file_generator.rb
70
- - lib/generators/files/cucumber_file_generator.rb
71
- - lib/generators/files/file_generator.rb
72
- - lib/generators/files/helpers_file_generator.rb
73
- - lib/generators/files/rspec_file_generator.rb
126
+ - lib/generators/automation_generator.rb
127
+ - lib/generators/common_generator.rb
128
+ - lib/generators/cucumber_generator.rb
129
+ - lib/generators/generator.rb
130
+ - lib/generators/helper_generator.rb
74
131
  - lib/generators/menu_generator.rb
75
- - lib/generators/projects/cucumber_project_generator.rb
76
- - lib/generators/projects/project_generator.rb
77
- - lib/generators/projects/rspec_project_generator.rb
78
- - lib/generators/templates/automation/abstract_component_template.rb
79
- - lib/generators/templates/automation/abstract_page_template.rb
80
- - lib/generators/templates/automation/appium_settings_template.rb
81
- - lib/generators/templates/automation/component_template.rb
82
- - lib/generators/templates/automation/confirmation_page_template.rb
83
- - lib/generators/templates/automation/home_page_template.rb
84
- - lib/generators/templates/automation/login_page_template.rb
85
- - lib/generators/templates/common/config_template.rb
86
- - lib/generators/templates/common/gemfile_template.rb
87
- - lib/generators/templates/common/rake_file_template.rb
88
- - lib/generators/templates/common/read_me_template.rb
89
- - lib/generators/templates/cucumber/env_template.rb
90
- - lib/generators/templates/cucumber/example_feature_template.rb
91
- - lib/generators/templates/cucumber/example_steps_template.rb
92
- - lib/generators/templates/helpers/allure_helper_template.rb
93
- - lib/generators/templates/helpers/browser_helper_template.rb
94
- - lib/generators/templates/helpers/driver_helper_template.rb
95
- - lib/generators/templates/helpers/pom_helper_template.rb
96
- - lib/generators/templates/helpers/raider_helper_template.rb
97
- - lib/generators/templates/helpers/selenium_helper_template.rb
98
- - lib/generators/templates/helpers/spec_helper_template.rb
99
- - lib/generators/templates/helpers/watir_helper_template.rb
100
- - lib/generators/templates/rspec/base_spec_template.rb
101
- - lib/generators/templates/rspec/example_spec_template.rb
102
- - lib/generators/templates/template.rb
132
+ - lib/generators/rspec_generator.rb
133
+ - lib/generators/templates/automation/abstract_component.tt
134
+ - lib/generators/templates/automation/abstract_page.tt
135
+ - lib/generators/templates/automation/appium_settings.tt
136
+ - lib/generators/templates/automation/component.tt
137
+ - lib/generators/templates/automation/confirmation_page.tt
138
+ - lib/generators/templates/automation/home_page.tt
139
+ - lib/generators/templates/automation/login_page.tt
140
+ - lib/generators/templates/automation/partials/appium_login.tt
141
+ - lib/generators/templates/automation/partials/driver_selector.tt
142
+ - lib/generators/templates/automation/partials/element.tt
143
+ - lib/generators/templates/automation/partials/require_raider.tt
144
+ - lib/generators/templates/automation/partials/selenium_login.tt
145
+ - lib/generators/templates/automation/partials/url_methods.tt
146
+ - lib/generators/templates/automation/partials/visit_method.tt
147
+ - lib/generators/templates/automation/partials/watir_login.tt
148
+ - lib/generators/templates/common/config.tt
149
+ - lib/generators/templates/common/gemfile.tt
150
+ - lib/generators/templates/common/partials/automation_gems.tt
151
+ - lib/generators/templates/common/rakefile.tt
152
+ - lib/generators/templates/common/read_me.tt
153
+ - lib/generators/templates/cucumber/env.tt
154
+ - lib/generators/templates/cucumber/feature.tt
155
+ - lib/generators/templates/cucumber/partials/appium_env.tt
156
+ - lib/generators/templates/cucumber/partials/mobile_steps.tt
157
+ - lib/generators/templates/cucumber/partials/selenium_appium_env.tt
158
+ - lib/generators/templates/cucumber/partials/watir_env.tt
159
+ - lib/generators/templates/cucumber/partials/web_steps.tt
160
+ - lib/generators/templates/cucumber/steps.tt
161
+ - lib/generators/templates/helpers/allure_helper.tt
162
+ - lib/generators/templates/helpers/browser_helper.tt
163
+ - lib/generators/templates/helpers/driver_helper.tt
164
+ - lib/generators/templates/helpers/partials/allure_imports.tt
165
+ - lib/generators/templates/helpers/partials/allure_requirements.tt
166
+ - lib/generators/templates/helpers/partials/driver_requirements.tt
167
+ - lib/generators/templates/helpers/partials/new_driver.tt
168
+ - lib/generators/templates/helpers/partials/quit_driver.tt
169
+ - lib/generators/templates/helpers/partials/require_automation.tt
170
+ - lib/generators/templates/helpers/partials/screenshot.tt
171
+ - lib/generators/templates/helpers/pom_helper.tt
172
+ - lib/generators/templates/helpers/raider_helper.tt
173
+ - lib/generators/templates/helpers/selenium_helper.tt
174
+ - lib/generators/templates/helpers/spec_helper.tt
175
+ - lib/generators/templates/helpers/watir_helper.tt
176
+ - lib/generators/templates/rspec/base_spec.tt
177
+ - lib/generators/templates/rspec/spec.tt
103
178
  - lib/ruby_raider.rb
104
179
  - ruby_raider.gemspec
105
- - spec/automation_file_generator_spec.rb
106
- - spec/common_file_generator_spec.rb
107
- - spec/cucumber_file_generator_spec.rb
108
- - spec/cucumber_project_generator_spec.rb
109
- - spec/helpers_file_generator_spec.rb
110
- - spec/rspec_file_generator_spec.rb
111
- - spec/rspec_project_generator_spec.rb
180
+ - spec/automation_generator_spec.rb
181
+ - spec/common_generator_spec.rb
182
+ - spec/cucumber_generator_spec.rb
183
+ - spec/helpers_generator_spec.rb
184
+ - spec/rspec_generator_spec.rb
112
185
  - spec/spec_helper.rb
113
186
  homepage: http://github.com/aguspe/ruby_raider
114
187
  licenses:
@@ -1,61 +0,0 @@
1
- require_relative 'file_generator'
2
- require_relative '../templates/automation/abstract_page_template'
3
- require_relative '../templates/automation/abstract_component_template'
4
- require_relative '../templates/automation/appium_settings_template'
5
- require_relative '../templates/automation/component_template'
6
- require_relative '../templates/automation/confirmation_page_template'
7
- require_relative '../templates/automation/login_page_template'
8
- require_relative '../templates/automation/home_page_template'
9
-
10
- module RubyRaider
11
- class AutomationFileGenerator < FileGenerator
12
- class << self
13
- def generate_automation_files(automation, name, framework)
14
- generate_login_page(automation, name)
15
- generate_abstract_page(automation, framework, name)
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
24
- end
25
-
26
- def generate_login_page(automation, name)
27
- generate_file('login_page.rb', "#{name}/page_objects/pages",
28
- LoginPageTemplate.new(automation: automation, name: name).parsed_body)
29
- end
30
-
31
- def generate_abstract_page(automation, framework, name)
32
- generate_file('abstract_page.rb', "#{name}/page_objects/abstract",
33
- AbstractPageTemplate.new(automation: automation, framework: framework, name: name).parsed_body)
34
- end
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
-
46
- def generate_example_component(name)
47
- generate_file('header_component.rb', "#{name}/page_objects/components",
48
- ComponentTemplate.new.parsed_body)
49
- end
50
-
51
- def generate_abstract_component(framework, name)
52
- generate_file('abstract_component.rb', "#{name}/page_objects/abstract",
53
- AbstractComponentTemplate.new(framework: framework).parsed_body)
54
- end
55
-
56
- def generate_appium_settings(name)
57
- generate_file('appium.txt', name.to_s, AppiumSettingsTemplate.new.parsed_body)
58
- end
59
- end
60
- end
61
- end
@@ -1,38 +0,0 @@
1
- require_relative '../templates/common/config_template'
2
- require_relative '../templates/common/gemfile_template'
3
- require_relative '../templates/common/rake_file_template'
4
- require_relative '../templates/common/read_me_template'
5
- require_relative 'file_generator'
6
-
7
- module RubyRaider
8
- class CommonFileGenerator < FileGenerator
9
- class << self
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
-
16
- generate_readme_file(name)
17
- generate_gemfile(automation, framework, name)
18
- end
19
-
20
- def generate_readme_file(name)
21
- generate_file('Readme.md', name.to_s, ReadMeTemplate.new.parsed_body)
22
- end
23
-
24
- def generate_config_file(name)
25
- generate_file('config.yml', "#{name}/config", ConfigTemplate.new.parsed_body)
26
- end
27
-
28
- def generate_rake_file(name)
29
- generate_file('Rakefile', name.to_s, RakeFileTemplate.new.parsed_body)
30
- end
31
-
32
- def generate_gemfile(automation, framework, name)
33
- generate_file('Gemfile',name.to_s,
34
- GemfileTemplate.new(automation: automation, framework: framework).parsed_body)
35
- end
36
- end
37
- end
38
- end
@@ -1,33 +0,0 @@
1
- require_relative '../templates/cucumber/env_template'
2
- require_relative '../templates/cucumber/example_feature_template'
3
- require_relative '../templates/cucumber/example_steps_template'
4
- require_relative 'file_generator'
5
-
6
- module RubyRaider
7
- class CucumberFileGenerator < FileGenerator
8
- class << self
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
- generate_env_file(automation, name)
14
- generate_example_feature(name)
15
- generate_example_steps(name)
16
- end
17
-
18
- def generate_example_feature(name)
19
- generate_file('login.feature', "#{name}/features", ExampleFeatureTemplate.new.parsed_body)
20
- end
21
-
22
- def generate_example_steps(name)
23
- generate_file('login_steps.rb', "#{name}/features/step_definitions",
24
- ExampleStepsTemplate.new.parsed_body)
25
- end
26
-
27
- def generate_env_file(automation, name)
28
- generate_file('env.rb', "#{name}/features/support",
29
- EnvTemplate.new(automation: automation).parsed_body)
30
- end
31
- end
32
- end
33
- end
@@ -1,11 +0,0 @@
1
- module RubyRaider
2
- class FileGenerator
3
- class << self
4
- def generate_file(name, path, content)
5
- file_path = "#{path}/#{name}"
6
- File.new(file_path, 'w+')
7
- File.write(file_path, content)
8
- end
9
- end
10
- end
11
- end
@@ -1,70 +0,0 @@
1
- require_relative '../templates/helpers/allure_helper_template'
2
- require_relative '../templates/helpers/browser_helper_template'
3
- require_relative '../templates/helpers/driver_helper_template'
4
- require_relative '../templates/helpers/pom_helper_template'
5
- require_relative '../templates/helpers/raider_helper_template'
6
- require_relative '../templates/helpers/spec_helper_template'
7
- require_relative '../templates/helpers/selenium_helper_template'
8
- require_relative '../templates/helpers/watir_helper_template'
9
- require_relative 'file_generator'
10
-
11
- module RubyRaider
12
- class HelpersFileGenerator < FileGenerator
13
- class << self
14
- def generate_helper_files(automation, name, framework)
15
- path = framework == 'rspec' ? "#{name}/helpers" : "#{name}/features/support/helpers"
16
- generate_raider_helper(automation, framework, path)
17
- generate_allure_helper(framework, path)
18
- generate_pom_helper(path)
19
- generate_spec_helper(automation, path) if framework == 'rspec'
20
- select_helpers(automation, path)
21
- end
22
-
23
- def generate_raider_helper(automation, framework, path)
24
- generate_file('raider.rb', path,
25
- RaiderHelperTemplate.new(automation: automation, framework: framework).parsed_body)
26
- end
27
-
28
- def generate_allure_helper(framework, path)
29
- generate_file('allure_helper.rb', path, AllureHelperTemplate.new(framework: framework).parsed_body)
30
- end
31
-
32
- def generate_browser_helper(path)
33
- generate_file('browser_helper.rb', path, BrowserHelperTemplate.new.parsed_body)
34
- end
35
-
36
- def generate_pom_helper(path)
37
- generate_file('pom_helper.rb', path, PomHelperTemplate.new.parsed_body)
38
- end
39
-
40
- def generate_spec_helper(automation, path)
41
- generate_file('spec_helper.rb', path, SpecHelperTemplate.new(automation: automation).parsed_body)
42
- end
43
-
44
- def generate_watir_helper(path)
45
- generate_file('watir_helper.rb', path, WatirHelperTemplate.new.parsed_body)
46
- end
47
-
48
- def generate_selenium_helper(path)
49
- generate_file('selenium_helper.rb', path, SeleniumHelperTemplate.new.parsed_body)
50
- end
51
-
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
67
- end
68
- end
69
- end
70
- end
@@ -1,29 +0,0 @@
1
- require_relative '../templates/rspec/example_spec_template'
2
- require_relative '../templates/rspec/base_spec_template'
3
- require_relative 'automation_file_generator'
4
- require_relative 'common_file_generator'
5
- require_relative 'file_generator'
6
- require_relative 'helpers_file_generator'
7
-
8
- module RubyRaider
9
- class RspecFileGenerator < FileGenerator
10
- class << self
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
- generate_base_spec(name)
16
- generate_example_spec(automation, name)
17
- end
18
-
19
- def generate_example_spec(automation, name)
20
- generate_file('login_page_spec.rb', "#{name}/spec",
21
- ExampleSpecTemplate.new(automation: automation).parsed_body)
22
- end
23
-
24
- def generate_base_spec(name)
25
- generate_file('base_spec.rb', "#{name}/spec", BaseSpecTemplate.new.parsed_body)
26
- end
27
- end
28
- end
29
- end
@@ -1,34 +0,0 @@
1
- require_relative '../files/cucumber_file_generator'
2
- require_relative 'project_generator'
3
-
4
- module RubyRaider
5
- class CucumberProjectGenerator < ProjectGenerator
6
- class << self
7
- def generate_cucumber_project(automation, name)
8
- cucumber_folder_structure(automation, name)
9
- CucumberFileGenerator.generate_cucumber_files(automation, name)
10
- ProjectGenerator.install_gems(name)
11
- end
12
-
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]
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)
29
- folders = %w[step_definitions support]
30
- create_children_folders("#{name}/features", folders)
31
- end
32
- end
33
- end
34
- end
@@ -1,27 +0,0 @@
1
- module RubyRaider
2
- class ProjectGenerator
3
- class << self
4
- def create_children_folders(parent, folders)
5
- folders.each { |folder| Dir.mkdir "#{parent}/#{folder}" }
6
- end
7
-
8
- def install_gems(name)
9
- system "cd #{name} && gem install bundler && bundle install"
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
25
- end
26
- end
27
- end
@@ -1,26 +0,0 @@
1
- require_relative 'project_generator'
2
- require_relative '../files/rspec_file_generator'
3
-
4
- module RubyRaider
5
- class RspecProjectGenerator < ProjectGenerator
6
- class << self
7
- def generate_rspec_project(automation, name)
8
- rspec_folder_structure(automation, name)
9
- RspecFileGenerator.generate_rspec_files(automation, name)
10
- ProjectGenerator.install_gems(name)
11
- end
12
-
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]
21
- create_children_folders(name, folders)
22
- Dir.mkdir "#{name}/config" if %w[selenium watir].include?(automation)
23
- end
24
- end
25
- end
26
- end
@@ -1,22 +0,0 @@
1
- require_relative '../template'
2
-
3
- class AbstractComponentTemplate < Template
4
- def body
5
- raider = if @framework == 'rspec'
6
- "require_relative '../../helpers/raider'"
7
- else
8
- "require_relative '../../features/support/helpers/raider'"
9
- end
10
-
11
- <<~EOF
12
- #{raider}
13
-
14
- class AbstractComponent
15
-
16
- def initialize(component)
17
- @component = component
18
- end
19
- end
20
- EOF
21
- end
22
- end
@@ -1,82 +0,0 @@
1
- require_relative '../template'
2
-
3
- class AbstractPageTemplate < Template
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
26
- Raider::DriverHelper.driver
27
- end
28
-
29
-
30
- EOF
31
- end
32
- end
33
-
34
- def visit
35
- if %w[selenium watir].include?(@automation)
36
- <<-EOF
37
-
38
-
39
- def visit(*page)
40
- #{@automation == 'selenium' ? 'driver.navigate.to full_url(page.first)' : 'browser.goto full_url(page.first)'}
41
- end
42
-
43
- EOF
44
- end
45
- end
46
-
47
- def url_methods
48
- methods = <<-EOF
49
-
50
-
51
- def full_url(*page)
52
- "#\{base_url}#\{url(*page)}"
53
- end
54
-
55
- def base_url
56
- 'https://automationteststore.com/'
57
- end
58
-
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
73
-
74
- include RSpec::Matchers
75
- extend Raider::PomHelper
76
- #{helper_selector}
77
- #{visit}
78
- #{url_methods}
79
- end
80
- EOF
81
- end
82
- end
@@ -1,16 +0,0 @@
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