ruby_raider 0.7.3 → 0.7.5

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/.reek.yml +0 -4
  3. data/README.md +1 -1
  4. data/Rakefile +0 -6
  5. data/lib/generators/automation/automation_generator.rb +48 -1
  6. data/lib/generators/automation/templates/abstract_page.tt +4 -2
  7. data/lib/generators/automation/templates/partials/android_caps.tt +6 -4
  8. data/lib/generators/automation/templates/partials/cross_platform_caps.tt +11 -10
  9. data/lib/generators/automation/templates/partials/ios_caps.tt +7 -5
  10. data/lib/generators/common_generator.rb +1 -1
  11. data/lib/generators/cucumber/cucumber_generator.rb +16 -0
  12. data/lib/generators/cucumber/templates/partials/appium_env.tt +3 -4
  13. data/lib/generators/cucumber/templates/partials/driver_world.tt +2 -2
  14. data/lib/generators/cucumber/templates/partials/selenium_env.tt +12 -10
  15. data/lib/generators/cucumber/templates/partials/watir_env.tt +4 -32
  16. data/lib/generators/cucumber/templates/partials/watir_world.tt +1 -1
  17. data/lib/generators/generator.rb +4 -0
  18. data/lib/generators/helper_generator.rb +0 -5
  19. data/lib/generators/invoke_generators.rb +0 -14
  20. data/lib/generators/menu_generator.rb +9 -23
  21. data/lib/generators/rspec/rspec_generator.rb +10 -2
  22. data/lib/generators/rspec/templates/spec.tt +3 -3
  23. data/lib/generators/templates/common/read_me.tt +1 -1
  24. data/lib/generators/templates/helpers/allure_helper.tt +19 -21
  25. data/lib/generators/templates/helpers/appium_helper.tt +19 -21
  26. data/lib/generators/templates/helpers/browser_helper.tt +12 -9
  27. data/lib/generators/templates/helpers/driver_helper.tt +16 -15
  28. data/lib/generators/templates/helpers/partials/driver_and_options.tt +24 -19
  29. data/lib/generators/templates/helpers/spec_helper.tt +18 -18
  30. data/lib/generators/templates/helpers/visual_helper.tt +1 -3
  31. data/lib/generators/templates/helpers/visual_spec_helper.tt +2 -4
  32. data/lib/ruby_raider.rb +1 -8
  33. data/ruby_raider.gemspec +1 -2
  34. data/spec/automation_generator_spec.rb +14 -70
  35. data/spec/common_generator_spec.rb +2 -2
  36. data/spec/cucumber_generator_spec.rb +0 -32
  37. data/spec/helpers_generator_spec.rb +0 -8
  38. data/spec/rspec_generator_spec.rb +12 -31
  39. data/spec/spec_helper.rb +4 -4
  40. data/spec/support/settings_helper.rb +1 -3
  41. metadata +2 -26
  42. data/lib/desktop/components/base_component.rb +0 -18
  43. data/lib/desktop/components/runner_components.rb +0 -196
  44. data/lib/desktop/screens/runner_screen.rb +0 -20
  45. data/lib/generators/automation/automation_examples_generator.rb +0 -48
  46. data/lib/generators/automation/templates/partials/require_raider.tt +0 -5
  47. data/lib/generators/cucumber/cucumber_examples_generator.rb +0 -21
  48. data/lib/generators/rspec/rspec_examples_generator.rb +0 -17
  49. data/lib/generators/rspec/templates/base_spec.tt +0 -7
  50. data/lib/generators/templates/helpers/partials/select_driver.tt +0 -9
  51. data/lib/generators/templates/helpers/raider_helper.tt +0 -19
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.7.3
4
+ version: 0.7.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agustin Pequeno
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-31 00:00:00.000000000 Z
11
+ date: 2023-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -122,20 +122,6 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: 1.2.0
125
- - !ruby/object:Gem::Dependency
126
- name: glimmer-dsl-libui
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: 0.7.3
132
- type: :runtime
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: 0.7.3
139
125
  - !ruby/object:Gem::Dependency
140
126
  name: ruby-openai
141
127
  requirement: !ruby/object:Gem::Requirement
@@ -205,10 +191,6 @@ files:
205
191
  - lib/commands/open_ai_commands.rb
206
192
  - lib/commands/scaffolding_commands.rb
207
193
  - lib/commands/utility_commands.rb
208
- - lib/desktop/components/base_component.rb
209
- - lib/desktop/components/runner_components.rb
210
- - lib/desktop/screens/runner_screen.rb
211
- - lib/generators/automation/automation_examples_generator.rb
212
194
  - lib/generators/automation/automation_generator.rb
213
195
  - lib/generators/automation/templates/abstract_component.tt
214
196
  - lib/generators/automation/templates/abstract_page.tt
@@ -224,7 +206,6 @@ files:
224
206
  - lib/generators/automation/templates/partials/initialize_selector.tt
225
207
  - lib/generators/automation/templates/partials/ios_caps.tt
226
208
  - lib/generators/automation/templates/partials/pdp_page_selector.tt
227
- - lib/generators/automation/templates/partials/require_raider.tt
228
209
  - lib/generators/automation/templates/partials/selenium_account.tt
229
210
  - lib/generators/automation/templates/partials/selenium_login.tt
230
211
  - lib/generators/automation/templates/partials/url_methods.tt
@@ -234,7 +215,6 @@ files:
234
215
  - lib/generators/automation/templates/pdp_page.tt
235
216
  - lib/generators/automation/templates/visual_options.tt
236
217
  - lib/generators/common_generator.rb
237
- - lib/generators/cucumber/cucumber_examples_generator.rb
238
218
  - lib/generators/cucumber/cucumber_generator.rb
239
219
  - lib/generators/cucumber/templates/cucumber.tt
240
220
  - lib/generators/cucumber/templates/env.tt
@@ -253,9 +233,7 @@ files:
253
233
  - lib/generators/helper_generator.rb
254
234
  - lib/generators/invoke_generators.rb
255
235
  - lib/generators/menu_generator.rb
256
- - lib/generators/rspec/rspec_examples_generator.rb
257
236
  - lib/generators/rspec/rspec_generator.rb
258
- - lib/generators/rspec/templates/base_spec.tt
259
237
  - lib/generators/rspec/templates/data.tt
260
238
  - lib/generators/rspec/templates/factory.tt
261
239
  - lib/generators/rspec/templates/spec.tt
@@ -277,8 +255,6 @@ files:
277
255
  - lib/generators/templates/helpers/partials/driver_and_options.tt
278
256
  - lib/generators/templates/helpers/partials/quit_driver.tt
279
257
  - lib/generators/templates/helpers/partials/screenshot.tt
280
- - lib/generators/templates/helpers/partials/select_driver.tt
281
- - lib/generators/templates/helpers/raider_helper.tt
282
258
  - lib/generators/templates/helpers/spec_helper.tt
283
259
  - lib/generators/templates/helpers/visual_helper.tt
284
260
  - lib/generators/templates/helpers/visual_spec_helper.tt
@@ -1,18 +0,0 @@
1
- require 'glimmer-dsl-libui'
2
-
3
- class BaseComponent
4
- include Glimmer
5
-
6
- def initialize
7
- super
8
- if File.directory?('spec')
9
- @folder = 'spec'
10
- @framework = 'rspec'
11
- @extension = '*_spec.rb'
12
- else
13
- @folder = 'features'
14
- @framework = 'cucumber'
15
- @extension = '*.feature'
16
- end
17
- end
18
- end
@@ -1,196 +0,0 @@
1
- require 'open3'
2
- require 'yaml'
3
- require_relative 'base_component'
4
- require_relative '../../scaffolding/scaffolding'
5
-
6
- class RunnerComponents < BaseComponent
7
- attr_accessor :contacts
8
-
9
- CONFIG_ITEM = Struct.new(:attribute, :value)
10
- CAP = Struct.new(:attribute, :value)
11
-
12
- def initialize
13
- super
14
- @folder_exist = File.directory?(@folder)
15
- end
16
-
17
- def header
18
- grid do
19
- stretchy false
20
-
21
- button('▶') do
22
- left 0
23
- on_clicked do
24
- output = Open3.popen3("#{@framework} #{@tests.selected_item}") do |_stdin, stdout, _stderr|
25
- stdout.read
26
- end
27
- system "#{@framework} #{@tests.selected_item}"
28
- @results.text = output
29
- end
30
- end
31
- button('■') do
32
- left 1
33
- on_clicked do
34
- pp 'The stop feature will be implemented in a later release'
35
- end
36
- end
37
-
38
- @tests = combobox do
39
- left 2
40
- files = Dir.glob(File.join(@folder, @extension))
41
- multiple_items = files.count.positive? ? files : ['There are no tests please create a new one']
42
- items multiple_items
43
- selected_item files.first
44
- @file = files.count.positive? ? File.open(files.first) : ''
45
-
46
- on_selected do |items|
47
- @results.text = ''
48
- path = items.selected_item
49
- @file = File.open(path)
50
- @text_box.text = @file.read
51
- end
52
- end
53
-
54
- button('Open Dashboard') do
55
- left 3
56
- halign :end
57
- on_clicked do
58
- system 'allure serve allure-results'
59
- end
60
- end
61
- end
62
- end
63
-
64
- def tests_tab
65
- tab_item('Tests') do
66
- horizontal_box do
67
- @text_box = multiline_entry do
68
- test_code = @folder_exist ? @file.read : 'No tests have been created, please create your first test'
69
- text test_code
70
-
71
- on_changed do |e|
72
- File.write(@tests.selected_item, e.text)
73
- $stdout.flush # for Windows
74
- end
75
- end
76
-
77
- @results = multiline_entry do
78
- text ''
79
- end
80
- end
81
- end
82
- end
83
-
84
- def config_tab
85
- tab_item('Configuration') do
86
- @config_data = load_or_create_config
87
- @config_items = @config_data.map { |key, value| CONFIG_ITEM.new(key, value) }
88
- vertical_box do
89
- refined_table(
90
- model_array: @config_items,
91
- table_columns: {
92
- 'Attribute' => :text,
93
- 'Value' => { text: { editable: true } }
94
- },
95
- table_editable: true,
96
- per_page: 20
97
- )
98
- end
99
- end
100
- end
101
-
102
- def editor_tab
103
- tab_item('Editor') do
104
- horizontal_box do
105
- vertical_box do
106
- horizontal_box do
107
- button_test_name = "Create #{@folder.capitalize}"
108
- button(button_test_name) do
109
- on_clicked do
110
- Scaffolding.new([@test_name.text]).generate_spec
111
- end
112
- end
113
- @test_name = entry do
114
- text 'test_example'
115
- end
116
- end
117
- horizontal_box do
118
- button('Create Page') do
119
- on_clicked do
120
- Scaffolding.new([@page_name.text]).generate_class
121
- end
122
- end
123
- @page_name = entry do
124
- text 'page_example'
125
- end
126
- end
127
- horizontal_box do
128
- button('Create Helper') do
129
- on_clicked do
130
- Scaffolding.new([@helper_name.text]).generate_helper
131
- end
132
- end
133
- @helper_name = entry do
134
- text 'helper_example'
135
- end
136
- end
137
- vertical_separator do
138
- stretchy false
139
- end
140
- end
141
- vertical_box do
142
- @editable_files = combobox do
143
- @all_files = @folder_exist ? load_all_files : ['There are no files created']
144
- stretchy false
145
- visible true
146
- items @all_files
147
- selected_item @all_files.first
148
-
149
- on_selected do |items|
150
- if @folder_exist
151
- path = items.selected_item
152
- @edit_file = File.open(path)
153
- @edit_box.text = @edit_file.read
154
- end
155
- end
156
- end
157
- @edit_box = multiline_entry do
158
- text File.read(@all_files&.first) if @folder_exist
159
-
160
- on_changed do |e|
161
- if @folder_exist
162
- File.write(@editable_files.selected_item, e.text)
163
- $stdout.flush # for Windows
164
- end
165
- end
166
- end
167
- end
168
- end
169
- end
170
- end
171
-
172
- private
173
-
174
- def load_all_files
175
- test_files = Dir.glob(File.join(@folder, @extension))
176
- page_object_files = Dir.glob(File.join('page_objects/pages', '*.rb'))
177
- helper_files = Dir.glob(File.join('helpers', '*.rb'))
178
- test_files + page_object_files + helper_files
179
- end
180
-
181
- def load_or_create_config
182
- file_paths = {
183
- config: 'config/config.yml',
184
- caps: 'config/capabilities.yml',
185
- opts: 'config/options.yml'
186
- }
187
-
188
- loaded_files = file_paths.transform_values do |path|
189
- File.exist?(path) ? YAML.load_file(path) : {}
190
- end
191
-
192
- return { message: 'Create a config file to access your attributes' } if loaded_files.values.all?(&:empty?)
193
-
194
- loaded_files[:config].merge(loaded_files[:caps]).merge(loaded_files[:opts])
195
- end
196
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../components/runner_components'
4
-
5
- class RunnerScreen < RunnerComponents
6
- def launch
7
- window('Ruby Raider', 1200, 800) do
8
- margined true
9
- vertical_box do
10
- header
11
- tab do
12
- stretchy true
13
- tests_tab
14
- editor_tab
15
- config_tab
16
- end
17
- end
18
- end.show
19
- end
20
- end
@@ -1,48 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../generator'
4
-
5
- class AutomationExamplesGenerator < Generator
6
- def generate_example_files
7
- if mobile?
8
- generate_home_page
9
- generate_pdp_page
10
- else
11
- generate_model_factory
12
- generate_model_data
13
- generate_header_component
14
- generate_login_page
15
- generate_account_page
16
- end
17
- end
18
-
19
- private
20
-
21
- def generate_login_page
22
- template('login_page.tt', "#{name}/page_objects/pages/login_page.rb")
23
- end
24
-
25
- def generate_account_page
26
- template('account_page.tt', "#{name}/page_objects/pages/account_page.rb")
27
- end
28
-
29
- def generate_home_page
30
- template('home_page.tt', "#{name}/page_objects/pages/home_page.rb")
31
- end
32
-
33
- def generate_pdp_page
34
- template('pdp_page.tt', "#{name}/page_objects/pages/pdp_page.rb")
35
- end
36
-
37
- def generate_header_component
38
- template('component.tt', "#{name}/page_objects/components/header_component.rb")
39
- end
40
-
41
- def generate_model_factory
42
- template('factory.tt', "#{name}/models/model_factory.rb")
43
- end
44
-
45
- def generate_model_data
46
- template('data.tt', "#{name}/models/data/users.yml")
47
- end
48
- end
@@ -1,5 +0,0 @@
1
- <% if framework == 'rspec' -%>
2
- require_relative '../../helpers/raider'
3
- <% else -%>
4
- require_relative '../../helpers/raider'
5
- <% end -%>
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../generator'
4
-
5
- class CucumberExamplesGenerator < Generator
6
- def generate_feature
7
- template('feature.tt', "#{name}/features/#{template_name}.feature")
8
- end
9
-
10
- def generate_steps
11
- template('steps.tt', "#{name}/features/step_definitions/#{template_name}_steps.rb")
12
- end
13
-
14
- def generate_user_factory
15
- template('user_factory.tt', "#{name}/models/user_factory.rb")
16
- end
17
-
18
- def template_name
19
- @template_name ||= (@_initializer.first & %w[android ios cross_platform]).empty? ? 'login' : 'home'
20
- end
21
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../generator'
4
-
5
- class RspecExamplesGenerator < Generator
6
- def generate_login_spec
7
- return if mobile?
8
-
9
- template('spec.tt', "#{name}/spec/login_page_spec.rb")
10
- end
11
-
12
- def generate_pdp_spec
13
- return unless mobile?
14
-
15
- template('spec.tt', "#{name}/spec/pdp_page_spec.rb")
16
- end
17
- end
@@ -1,7 +0,0 @@
1
- require_relative '../helpers/raider'
2
- <% if %w[selenium watir].include?(automation) && visual_automation == false %>
3
- require_relative '../models/model_factory'
4
- <% end %>
5
- class BaseSpec
6
- include Raider::SpecHelper
7
- end
@@ -1,9 +0,0 @@
1
- <% case automation
2
- when 'selenium' %>
3
- new_driver
4
- <% when 'watir' %>
5
- new_browser
6
- <% else %>
7
- new_driver
8
- driver.start_driver
9
- <% end %>
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Raider
4
- <%- if framework == 'rspec' -%>
5
- require_relative 'spec_helper'
6
- <%- end -%>
7
- <%- if automation == 'watir' -%>
8
- require_relative 'browser_helper'
9
- <%- else -%>
10
- require_relative 'driver_helper'
11
- <%- end -%>
12
- require_relative 'allure_helper'
13
- <%- if automation == 'cross_platform' -%>
14
- require_relative 'appium_helper'
15
- <%- end -%>
16
- <%- if visual_automation -%>
17
- require_relative 'visual_helper'
18
- <%- end -%>
19
- end