ruby_raider 0.7.2 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.reek.yml +0 -4
  3. data/README.md +0 -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 +1 -3
  7. data/lib/generators/cucumber/cucumber_generator.rb +16 -0
  8. data/lib/generators/cucumber/templates/partials/appium_env.tt +3 -4
  9. data/lib/generators/cucumber/templates/partials/driver_world.tt +2 -2
  10. data/lib/generators/cucumber/templates/partials/selenium_env.tt +12 -10
  11. data/lib/generators/cucumber/templates/partials/watir_env.tt +4 -32
  12. data/lib/generators/cucumber/templates/partials/watir_world.tt +1 -1
  13. data/lib/generators/helper_generator.rb +1 -6
  14. data/lib/generators/invoke_generators.rb +0 -14
  15. data/lib/generators/menu_generator.rb +9 -23
  16. data/lib/generators/rspec/rspec_generator.rb +10 -2
  17. data/lib/generators/rspec/templates/spec.tt +2 -2
  18. data/lib/generators/templates/common/read_me.tt +0 -1
  19. data/lib/generators/templates/helpers/allure_helper.tt +19 -21
  20. data/lib/generators/templates/helpers/appium_helper.tt +19 -21
  21. data/lib/generators/templates/helpers/browser_helper.tt +12 -9
  22. data/lib/generators/templates/helpers/driver_helper.tt +16 -15
  23. data/lib/generators/templates/helpers/partials/driver_and_options.tt +24 -19
  24. data/lib/generators/templates/helpers/partials/screenshot.tt +6 -3
  25. data/lib/generators/templates/helpers/spec_helper.tt +18 -18
  26. data/lib/generators/templates/helpers/visual_helper.tt +1 -3
  27. data/lib/generators/templates/helpers/visual_spec_helper.tt +2 -4
  28. data/lib/ruby_raider.rb +1 -8
  29. data/ruby_raider.gemspec +1 -2
  30. data/spec/automation_generator_spec.rb +14 -70
  31. data/spec/cucumber_generator_spec.rb +0 -32
  32. data/spec/helpers_generator_spec.rb +0 -8
  33. data/spec/rspec_generator_spec.rb +12 -31
  34. data/spec/spec_helper.rb +4 -4
  35. data/spec/support/settings_helper.rb +1 -3
  36. metadata +2 -26
  37. data/lib/desktop/components/base_component.rb +0 -18
  38. data/lib/desktop/components/runner_components.rb +0 -196
  39. data/lib/desktop/screens/runner_screen.rb +0 -20
  40. data/lib/generators/automation/automation_examples_generator.rb +0 -48
  41. data/lib/generators/automation/templates/partials/require_raider.tt +0 -5
  42. data/lib/generators/cucumber/cucumber_examples_generator.rb +0 -21
  43. data/lib/generators/rspec/rspec_examples_generator.rb +0 -17
  44. data/lib/generators/rspec/templates/base_spec.tt +0 -7
  45. data/lib/generators/templates/helpers/partials/select_driver.tt +0 -9
  46. data/lib/generators/templates/helpers/raider_helper.tt +0 -19
@@ -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