ruby_raider 0.1.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/.reek.yml +3 -0
  3. data/.rubocop.yml +6 -0
  4. data/Rakefile +2 -0
  5. data/bin/raider +1 -0
  6. data/lib/generators/automation_generator.rb +43 -0
  7. data/lib/generators/common_generator.rb +31 -0
  8. data/lib/generators/cucumber_generator.rb +19 -0
  9. data/lib/generators/generator.rb +16 -0
  10. data/lib/generators/helper_generator.rb +48 -0
  11. data/lib/generators/menu_generator.rb +27 -14
  12. data/lib/generators/rspec_generator.rb +16 -0
  13. data/lib/generators/templates/automation/abstract_component.tt +7 -0
  14. data/lib/generators/templates/automation/abstract_page.tt +10 -0
  15. data/lib/generators/templates/automation/appium_settings.tt +8 -0
  16. data/lib/generators/templates/automation/component.tt +9 -0
  17. data/lib/generators/templates/automation/confirmation_page.tt +19 -0
  18. data/lib/generators/templates/automation/home_page.tt +20 -0
  19. data/lib/generators/templates/automation/login_page.tt +8 -0
  20. data/lib/generators/templates/automation/partials/appium_login.tt +28 -0
  21. data/lib/generators/templates/automation/partials/driver_selector.tt +9 -0
  22. data/lib/generators/templates/automation/partials/element.tt +5 -0
  23. data/lib/generators/templates/automation/partials/require_raider.tt +5 -0
  24. data/lib/generators/templates/automation/partials/selenium_login.tt +40 -0
  25. data/lib/generators/templates/automation/partials/url_methods.tt +13 -0
  26. data/lib/generators/templates/automation/partials/visit_method.tt +9 -0
  27. data/lib/generators/templates/automation/partials/watir_login.tt +41 -0
  28. data/lib/generators/templates/common/config.tt +1 -0
  29. data/lib/generators/templates/common/gemfile.tt +21 -0
  30. data/lib/generators/templates/common/partials/automation_gems.tt +10 -0
  31. data/lib/generators/templates/common/rakefile.tt +10 -0
  32. data/lib/generators/templates/common/read_me.tt +99 -0
  33. data/lib/generators/templates/cucumber/env.tt +8 -0
  34. data/lib/generators/templates/cucumber/feature.tt +6 -0
  35. data/lib/generators/templates/cucumber/partials/appium_env.tt +13 -0
  36. data/lib/generators/templates/cucumber/partials/mobile_steps.tt +17 -0
  37. data/lib/generators/templates/cucumber/partials/selenium_appium_env.tt +13 -0
  38. data/lib/generators/templates/cucumber/partials/watir_env.tt +13 -0
  39. data/lib/generators/templates/cucumber/partials/web_steps.tt +15 -0
  40. data/lib/generators/templates/cucumber/steps.tt +5 -0
  41. data/lib/generators/templates/helpers/allure_helper.tt +32 -0
  42. data/lib/generators/templates/helpers/browser_helper.tt +19 -0
  43. data/lib/generators/templates/helpers/driver_helper.tt +18 -0
  44. data/lib/generators/templates/helpers/partials/allure_imports.tt +5 -0
  45. data/lib/generators/templates/helpers/partials/allure_requirements.tt +6 -0
  46. data/lib/generators/templates/helpers/partials/driver_requirements.tt +14 -0
  47. data/lib/generators/templates/helpers/partials/new_driver.tt +11 -0
  48. data/lib/generators/templates/helpers/partials/quit_driver.tt +8 -0
  49. data/lib/generators/templates/helpers/partials/require_automation.tt +5 -0
  50. data/lib/generators/templates/helpers/partials/screenshot.tt +8 -0
  51. data/lib/generators/templates/helpers/pom_helper.tt +19 -0
  52. data/lib/generators/templates/helpers/raider_helper.tt +15 -0
  53. data/lib/generators/templates/helpers/selenium_helper.tt +36 -0
  54. data/lib/generators/templates/helpers/spec_helper.tt +37 -0
  55. data/lib/generators/templates/helpers/watir_helper.tt +16 -0
  56. data/lib/generators/templates/rspec/base_spec.tt +5 -0
  57. data/lib/generators/templates/rspec/spec.tt +37 -0
  58. data/lib/ruby_raider.rb +5 -4
  59. data/ruby_raider.gemspec +7 -1
  60. data/spec/automation_generator_spec.rb +192 -0
  61. data/spec/common_generator_spec.rb +141 -0
  62. data/spec/cucumber_generator_spec.rb +71 -0
  63. data/spec/helpers_generator_spec.rb +133 -0
  64. data/spec/rspec_generator_spec.rb +63 -0
  65. data/spec/spec_helper.rb +3 -3
  66. metadata +116 -43
  67. data/lib/generators/files/automation_file_generator.rb +0 -61
  68. data/lib/generators/files/common_file_generator.rb +0 -38
  69. data/lib/generators/files/cucumber_file_generator.rb +0 -33
  70. data/lib/generators/files/file_generator.rb +0 -11
  71. data/lib/generators/files/helpers_file_generator.rb +0 -70
  72. data/lib/generators/files/rspec_file_generator.rb +0 -29
  73. data/lib/generators/projects/cucumber_project_generator.rb +0 -34
  74. data/lib/generators/projects/project_generator.rb +0 -27
  75. data/lib/generators/projects/rspec_project_generator.rb +0 -26
  76. data/lib/generators/templates/automation/abstract_component_template.rb +0 -22
  77. data/lib/generators/templates/automation/abstract_page_template.rb +0 -82
  78. data/lib/generators/templates/automation/appium_settings_template.rb +0 -16
  79. data/lib/generators/templates/automation/component_template.rb +0 -16
  80. data/lib/generators/templates/automation/confirmation_page_template.rb +0 -26
  81. data/lib/generators/templates/automation/home_page_template.rb +0 -26
  82. data/lib/generators/templates/automation/login_page_template.rb +0 -113
  83. data/lib/generators/templates/common/config_template.rb +0 -9
  84. data/lib/generators/templates/common/gemfile_template.rb +0 -52
  85. data/lib/generators/templates/common/rake_file_template.rb +0 -16
  86. data/lib/generators/templates/common/read_me_template.rb +0 -104
  87. data/lib/generators/templates/cucumber/env_template.rb +0 -38
  88. data/lib/generators/templates/cucumber/example_feature_template.rb +0 -15
  89. data/lib/generators/templates/cucumber/example_steps_template.rb +0 -21
  90. data/lib/generators/templates/helpers/allure_helper_template.rb +0 -47
  91. data/lib/generators/templates/helpers/browser_helper_template.rb +0 -26
  92. data/lib/generators/templates/helpers/driver_helper_template.rb +0 -54
  93. data/lib/generators/templates/helpers/pom_helper_template.rb +0 -25
  94. data/lib/generators/templates/helpers/raider_helper_template.rb +0 -27
  95. data/lib/generators/templates/helpers/selenium_helper_template.rb +0 -42
  96. data/lib/generators/templates/helpers/spec_helper_template.rb +0 -74
  97. data/lib/generators/templates/helpers/watir_helper_template.rb +0 -24
  98. data/lib/generators/templates/rspec/base_spec_template.rb +0 -13
  99. data/lib/generators/templates/rspec/example_spec_template.rb +0 -56
  100. data/lib/generators/templates/template.rb +0 -14
  101. data/spec/automation_file_generator_spec.rb +0 -59
  102. data/spec/common_file_generator_spec.rb +0 -27
  103. data/spec/cucumber_file_generator_spec.rb +0 -26
  104. data/spec/cucumber_project_generator_spec.rb +0 -60
  105. data/spec/helpers_file_generator_spec.rb +0 -73
  106. data/spec/rspec_file_generator_spec.rb +0 -21
  107. 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.0
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