ruby_raider 0.4.1 → 0.4.3

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -6
  3. data/README.md +6 -0
  4. data/lib/commands/scaffolding_commands.rb +2 -2
  5. data/lib/commands/utility_commands.rb +8 -0
  6. data/lib/generators/automation_generator.rb +7 -7
  7. data/lib/generators/common_generator.rb +2 -0
  8. data/lib/generators/cucumber_generator.rb +1 -1
  9. data/lib/generators/helper_generator.rb +6 -0
  10. data/lib/generators/menu_generator.rb +9 -5
  11. data/lib/generators/rspec_generator.rb +2 -2
  12. data/lib/generators/templates/automation/abstract_page.tt +4 -0
  13. data/lib/generators/templates/automation/appium_caps.tt +7 -0
  14. data/lib/generators/templates/automation/home_page.tt +1 -5
  15. data/lib/generators/templates/automation/partials/android_caps.tt +5 -0
  16. data/lib/generators/templates/automation/partials/cross_platform_caps.tt +14 -0
  17. data/lib/generators/templates/automation/partials/home_page_selector.tt +8 -0
  18. data/lib/generators/templates/automation/partials/ios_caps.tt +6 -0
  19. data/lib/generators/templates/automation/partials/pdp_page_selector.tt +8 -0
  20. data/lib/generators/templates/automation/pdp_page.tt +1 -5
  21. data/lib/generators/templates/common/config.tt +5 -2
  22. data/lib/generators/templates/common/partials/mobile_config.tt +1 -0
  23. data/lib/generators/templates/common/partials/web_config.tt +2 -0
  24. data/lib/generators/templates/common/read_me.tt +4 -0
  25. data/lib/generators/templates/helpers/appium_helper.tt +29 -0
  26. data/lib/generators/templates/helpers/driver_helper.tt +15 -2
  27. data/lib/generators/templates/helpers/partials/driver_and_options.tt +8 -5
  28. data/lib/generators/templates/helpers/raider_helper.tt +3 -0
  29. data/lib/utilities/utilities.rb +5 -0
  30. data/ruby_raider.gemspec +2 -1
  31. data/spec/automation_generator_spec.rb +33 -150
  32. data/spec/common_generator_spec.rb +58 -105
  33. data/spec/cucumber_generator_spec.rb +18 -53
  34. data/spec/helpers_generator_spec.rb +73 -90
  35. data/spec/rspec_generator_spec.rb +15 -61
  36. data/spec/scaffolding_commands_spec.rb +162 -0
  37. data/spec/spec_helper.rb +20 -0
  38. metadata +26 -6
  39. data/lib/generators/templates/automation/appium_settings.tt +0 -5
  40. data/lib/generators/templates/automation/partials/android_settings.tt +0 -8
  41. data/lib/generators/templates/automation/partials/ios_settings.tt +0 -8
  42. data/spec/scaffolding_spec.rb +0 -234
@@ -1,234 +0,0 @@
1
- require 'pathname'
2
- require 'yaml'
3
- require_relative '../lib/generators/common_generator'
4
- require_relative '../lib/commands/scaffolding_commands'
5
- require_relative 'spec_helper'
6
-
7
- describe ScaffoldingCommands do
8
- let(:scaffold) { ScaffoldingCommands }
9
- let(:name) { 'test' }
10
-
11
- context 'with a spec folder' do
12
- before(:all) do
13
- ScaffoldingCommands.new.invoke(:config)
14
- end
15
-
16
- it 'scaffolds for rspec' do
17
- scaffold.new.invoke(:scaffold, nil, %W[#{name}])
18
- expect(Pathname.new("page_objects/pages/#{name}_page.rb")).to be_file
19
- expect(Pathname.new("spec/#{name}_spec.rb")).to be_file
20
- end
21
- end
22
-
23
- context 'with a features folder' do
24
- it 'scaffolds for cucumber' do
25
- FileUtils.mkdir 'features'
26
- scaffold.new.invoke(:scaffold, nil, %W[#{name}])
27
- expect(Pathname.new("page_objects/pages/#{name}_page.rb")).to be_file
28
- expect(Pathname.new("features/#{name}.feature")).to be_file
29
- end
30
- end
31
-
32
- after(:all) do
33
- folders = %w[test config page_objects features]
34
- folders.each do |folder|
35
- FileUtils.rm_rf(folder)
36
- end
37
- FileUtils.rm('spec/test_spec.rb') if Pathname.new('spec/test_spec.rb').exist?
38
- end
39
-
40
- context 'with path from config file' do
41
- before(:all) do
42
- ScaffoldingCommands.new.invoke(:config)
43
- end
44
-
45
- it 'creates a page' do
46
- scaffold.new.invoke(:page, nil, %W[#{name}])
47
- expect(Pathname.new("page_objects/pages/#{name}_page.rb")).to be_file
48
- end
49
-
50
- it 'creates a feature' do
51
- scaffold.new.invoke(:feature, nil, %W[#{name}])
52
- expect(Pathname.new("features/#{name}.feature")).to be_file
53
- end
54
-
55
- it 'creates a spec' do
56
- scaffold.new.invoke(:spec, nil, %W[#{name}])
57
- expect(Pathname.new("spec/#{name}_spec.rb")).to be_file
58
- end
59
-
60
- it 'creates a helper' do
61
- scaffold.new.invoke(:helper, nil, %W[#{name}])
62
- expect(Pathname.new("helpers/#{name}_helper.rb")).to be_file
63
- end
64
-
65
- it 'deletes a page' do
66
- scaffold.new.invoke(:page, nil, %W[#{name}])
67
- scaffold.new.invoke(:page, nil, %W[#{name} --delete])
68
- expect(Pathname.new("page_objects/pages/#{name}_page.rb")).to_not be_file
69
- end
70
-
71
- it 'deletes a feature' do
72
- scaffold.new.invoke(:feature, nil, %W[#{name}])
73
- scaffold.new.invoke(:feature, nil, %W[#{name} --delete])
74
- expect(Pathname.new("features/#{name}.feature")).to_not be_file
75
- end
76
-
77
- it 'deletes a spec' do
78
- scaffold.new.invoke(:spec, nil, %W[#{name}])
79
- scaffold.new.invoke(:spec, nil, %W[#{name} --delete])
80
- expect(Pathname.new("spec/#{name}_spec.rb")).to_not be_file
81
- end
82
-
83
- it 'deletes a helper' do
84
- scaffold.new.invoke(:helper, nil, %W[#{name}])
85
- scaffold.new.invoke(:helper, nil, %W[#{name} --delete])
86
- expect(Pathname.new("helpers/#{name}_helper.rb")).to_not be_file
87
- end
88
-
89
- after(:all) do
90
- folders = %w[test config page_objects features helpers]
91
- folders.each do |folder|
92
- FileUtils.rm_rf(folder)
93
- end
94
- FileUtils.rm('spec/test_spec.rb') if Pathname.new('spec/test_spec.rb').exist?
95
- end
96
- end
97
-
98
- context 'with path option' do
99
- let(:path) { 'test_folder' }
100
-
101
- it 'creates a page' do
102
- scaffold.new.invoke(:page, nil, %W[#{name} --path #{path}])
103
- expect(Pathname.new("#{path}/#{name}_page.rb")).to be_file
104
- end
105
-
106
- it 'creates a feature' do
107
- scaffold.new.invoke(:feature, nil, %W[#{name} --path #{path}])
108
- expect(Pathname.new("#{path}/#{name}.feature")).to be_file
109
- end
110
-
111
- it 'creates a spec' do
112
- scaffold.new.invoke(:spec, nil, %W[#{name} --path #{path}])
113
- expect(Pathname.new("#{path}/#{name}_spec.rb")).to be_file
114
- end
115
-
116
- it 'creates a helper' do
117
- scaffold.new.invoke(:helper, nil, %W[#{name} --path #{path}])
118
- expect(Pathname.new("#{path}/#{name}_helper.rb")).to be_file
119
- end
120
-
121
- after(:each) do
122
- FileUtils.rm_rf(path)
123
- end
124
- end
125
-
126
- context 'changes the default path' do
127
- let(:path) { 'test_folder' }
128
-
129
- before(:all) do
130
- ScaffoldingCommands.new.invoke(:config)
131
- end
132
-
133
- it 'changes the path for pages' do
134
- scaffold.new.invoke(:path, nil, %W[#{path}])
135
- config = YAML.load_file('config/config.yml')
136
- expect(config['page_path']).to eql path
137
- end
138
-
139
- it 'changes the path for features' do
140
- scaffold.new.invoke(:path, nil, %W[#{path} -f])
141
- config = YAML.load_file('config/config.yml')
142
- expect(config['feature_path']).to eql path
143
- end
144
-
145
- it 'changes the path for specs' do
146
- scaffold.new.invoke(:path, nil, %W[#{path} -s])
147
- config = YAML.load_file('config/config.yml')
148
- expect(config['spec_path']).to eql path
149
- end
150
-
151
- it 'creates page' do
152
- scaffold.new.invoke(:path, nil, %W[#{path}])
153
- scaffold.new.invoke(:page, nil, %W[#{name}])
154
- expect(Pathname.new("#{path}/#{name}_page.rb")).to be_file
155
- end
156
-
157
- it 'creates feature' do
158
- scaffold.new.invoke(:path, nil, %W[#{path} -f])
159
- scaffold.new.invoke(:feature, nil, %W[#{name}])
160
- expect(Pathname.new("#{path}/#{name}.feature")).to be_file
161
- end
162
-
163
- it 'creates spec' do
164
- scaffold.new.invoke(:path, nil, %W[#{path} -s])
165
- scaffold.new.invoke(:spec, nil, %W[#{name}])
166
- expect(Pathname.new("#{path}/#{name}_spec.rb")).to be_file
167
- end
168
-
169
- it 'creates spec' do
170
- scaffold.new.invoke(:path, nil, %W[#{path} -h])
171
- scaffold.new.invoke(:helper, nil, %W[#{name}])
172
- expect(Pathname.new("#{path}/#{name}_helper.rb")).to be_file
173
- end
174
-
175
- after(:all) do
176
- folders = %w[test_folder test config]
177
- folders.each do |folder|
178
- FileUtils.rm_rf(folder)
179
- end
180
- end
181
- end
182
-
183
- context 'updates the config file' do
184
- before(:all) do
185
- CommonGenerator.new(%w[rspec selenium test]).invoke(:generate_config_file)
186
- FileUtils.cp_lr('test/config', './')
187
- end
188
-
189
- it 'updates the url' do
190
- scaffold.new.invoke(:url, nil, %W[test.com])
191
- config = YAML.load_file('config/config.yml')
192
- expect(config['url']).to eql 'test.com'
193
- end
194
-
195
- it 'updates the browser' do
196
- scaffold.new.invoke(:browser, nil, %W[:firefox])
197
- config = YAML.load_file('config/config.yml')
198
- expect(config['browser']).to eql ':firefox'
199
- end
200
-
201
- it 'updates the browser and the browser options' do
202
- scaffold.new.invoke(:browser, nil, %W[:firefox --opts headless start-maximized start-fullscreen])
203
- config = YAML.load_file('config/config.yml')
204
- expect(config['browser']).to eql ':firefox'
205
- expect(config['browser_options']).to eql %W[headless start-maximized start-fullscreen]
206
- end
207
-
208
- it 'updates only the browser options' do
209
- scaffold.new.invoke(:browser, nil, %W[:firefox --opts headless])
210
- config = YAML.load_file('config/config.yml')
211
- expect(config['browser_options']).to eql %w[headless]
212
- end
213
-
214
- it 'deletes the browser options when passed with the delete parameter' do
215
- scaffold.new.invoke(:browser, nil, %W[:firefox --opts headless --delete])
216
- config = YAML.load_file('config/config.yml')
217
- expect(config['browser_options']).to be_nil
218
- end
219
-
220
- it 'deletes the browser options' do
221
- scaffold.new.invoke(:browser, nil, %W[:firefox --opts headless])
222
- scaffold.new.invoke(:browser, nil, %W[--delete])
223
- config = YAML.load_file('config/config.yml')
224
- expect(config['browser_options']).to be_nil
225
- end
226
-
227
- after(:all) do
228
- folders = %w[test config]
229
- folders.each do |folder|
230
- FileUtils.rm_rf(folder)
231
- end
232
- end
233
- end
234
- end