ruby_raider 0.4.0 → 0.4.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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -6
  3. data/README.md +5 -1
  4. data/Rakefile +2 -2
  5. data/lib/commands/scaffolding_commands.rb +2 -2
  6. data/lib/generators/automation_generator.rb +14 -10
  7. data/lib/generators/cucumber_generator.rb +10 -2
  8. data/lib/generators/menu_generator.rb +10 -6
  9. data/lib/generators/rspec_generator.rb +9 -1
  10. data/lib/generators/templates/automation/abstract_component.tt +2 -0
  11. data/lib/generators/templates/automation/abstract_page.tt +0 -1
  12. data/lib/generators/templates/automation/appium_settings.tt +5 -8
  13. data/lib/generators/templates/automation/component.tt +1 -1
  14. data/lib/generators/templates/automation/home_page.tt +9 -5
  15. data/lib/generators/templates/automation/login_page.tt +0 -2
  16. data/lib/generators/templates/automation/partials/android_settings.tt +8 -0
  17. data/lib/generators/templates/automation/partials/element.tt +3 -3
  18. data/lib/generators/templates/automation/partials/initialize_selector.tt +4 -0
  19. data/lib/generators/templates/automation/partials/ios_settings.tt +8 -0
  20. data/lib/generators/templates/automation/partials/selenium_login.tt +3 -3
  21. data/lib/generators/templates/automation/partials/watir_login.tt +3 -3
  22. data/lib/generators/templates/automation/pdp_page.tt +22 -0
  23. data/lib/generators/templates/cucumber/feature.tt +9 -0
  24. data/lib/generators/templates/cucumber/partials/appium_env.tt +7 -5
  25. data/lib/generators/templates/cucumber/partials/driver_world.tt +1 -0
  26. data/lib/generators/templates/cucumber/partials/mobile_steps.tt +8 -11
  27. data/lib/generators/templates/cucumber/partials/watir_world.tt +1 -0
  28. data/lib/generators/templates/cucumber/partials/web_steps.tt +1 -1
  29. data/lib/generators/templates/cucumber/world.tt +5 -0
  30. data/lib/generators/templates/helpers/driver_helper.tt +0 -1
  31. data/lib/generators/templates/helpers/partials/select_driver.tt +5 -4
  32. data/lib/generators/templates/rspec/spec.tt +8 -13
  33. data/ruby_raider.gemspec +2 -1
  34. data/spec/automation_generator_spec.rb +36 -154
  35. data/spec/common_generator_spec.rb +27 -112
  36. data/spec/cucumber_generator_spec.rb +15 -54
  37. data/spec/helpers_generator_spec.rb +57 -94
  38. data/spec/rspec_generator_spec.rb +13 -44
  39. data/spec/scaffolding_commands_spec.rb +162 -0
  40. data/spec/spec_helper.rb +20 -0
  41. metadata +23 -5
  42. data/lib/generators/templates/automation/confirmation_page.tt +0 -19
  43. data/lib/generators/templates/automation/partials/appium_login.tt +0 -28
  44. data/spec/scaffolding_spec.rb +0 -234
@@ -4,189 +4,71 @@ require_relative '../lib/generators/automation_generator'
4
4
  require_relative 'spec_helper'
5
5
 
6
6
  describe AutomationGenerator do
7
- context 'with selenium' do
8
- before(:all) do
9
- @name = 'rspec-selenium'
10
- AutomationGenerator.new(['selenium', 'rspec', @name]).invoke_all
11
- end
12
-
7
+ shared_examples 'creates web automation files' do |name|
13
8
  it 'creates a login page file' do
14
- expect(File.exist?("#{@name}/page_objects/pages/login_page.rb")).to be_truthy
9
+ expect(File).to exist("#{name}/page_objects/pages/login_page.rb")
15
10
  end
16
11
 
17
12
  it 'creates an abstract page file' do
18
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_page.rb")).to be_truthy
13
+ expect(File).to exist("#{name}/page_objects/abstract/abstract_page.rb")
19
14
  end
20
15
 
21
16
  it 'creates an abstract component file' do
22
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_component.rb")).to be_truthy
17
+ expect(File).to exist("#{name}/page_objects/abstract/abstract_component.rb")
23
18
  end
24
19
 
25
20
  it 'creates a component file' do
26
- expect(File.exist?("#{@name}/page_objects/components/header_component.rb")).to be_truthy
27
- end
28
-
29
- after(:all) do
30
- FileUtils.rm_rf(@name)
21
+ expect(File).to exist("#{name}/page_objects/components/header_component.rb")
31
22
  end
32
23
  end
33
24
 
34
- context 'with watir' do
35
- before(:all) do
36
- @name = 'rspec-watir'
37
- AutomationGenerator.new(['watir', 'rspec', @name]).invoke_all
38
- end
39
-
40
- it 'creates a login page file' do
41
- expect(File.exist?("#{@name}/page_objects/pages/login_page.rb")).to be_truthy
25
+ shared_examples 'creates mobile automation files' do |name|
26
+ it 'creates a home page file' do
27
+ expect(File).to exist("#{name}/page_objects/pages/home_page.rb")
42
28
  end
43
29
 
44
30
  it 'creates an abstract page file' do
45
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_page.rb")).to be_truthy
31
+ expect(File).to exist("#{name}/page_objects/abstract/abstract_page.rb")
46
32
  end
47
33
 
48
- it 'creates an abstract component file' do
49
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_component.rb")).to be_truthy
50
- end
51
-
52
- it 'creates a component file' do
53
- expect(File.exist?("#{@name}/page_objects/components/header_component.rb")).to be_truthy
54
- end
55
-
56
- after(:all) do
57
- FileUtils.rm_rf(@name)
58
- end
59
- end
60
-
61
- context 'with appium' do
62
- before(:all) do
63
- @name = 'rspec-appium'
64
- AutomationGenerator.new(['appium_ios', 'rspec', @name]).invoke_all
65
- end
66
-
67
- it 'creates a login page file' do
68
- expect(File.exist?("#{@name}/page_objects/pages/login_page.rb")).to be_truthy
69
- end
70
-
71
- it 'creates an abstract page file' do
72
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_page.rb")).to be_truthy
73
- end
74
-
75
- it "doesn't creates an abstract component file" do
76
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_component.rb")).to be_falsey
77
- end
78
-
79
- it "doesn't creates a component file" do
80
- expect(File.exist?("#{@name}/page_objects/components/header_component.rb")).to be_falsey
81
- end
82
-
83
- it 'creates a login page file' do
84
- expect(File.exist?("#{@name}/page_objects/pages/home_page.rb")).to be_truthy
85
- end
86
-
87
- it 'creates a confirmation page file' do
88
- expect(File.exist?("#{@name}/page_objects/pages/confirmation_page.rb")).to be_truthy
34
+ it 'creates a pdp page file' do
35
+ expect(File).to exist("#{name}/page_objects/pages/pdp_page.rb")
89
36
  end
90
37
 
91
38
  it 'creates an appium config file' do
92
- expect(File.exist?("#{@name}/appium.txt")).to be_truthy
93
- end
94
-
95
- after(:all) do
96
- FileUtils.rm_rf(@name)
97
- end
98
-
99
- context 'with cucumber and selenium' do
100
- before(:all) do
101
- @name = 'cucumber-selenium'
102
- AutomationGenerator.new(['selenium', 'cucumber', @name]).invoke_all
103
- end
104
-
105
- it 'creates a login page file' do
106
- expect(File.exist?("#{@name}/page_objects/pages/login_page.rb")).to be_truthy
107
- end
108
-
109
- it 'creates an abstract page file' do
110
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_page.rb")).to be_truthy
111
- end
112
-
113
- it 'creates an abstract component file' do
114
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_component.rb")).to be_truthy
115
- end
116
-
117
- it 'creates a component file' do
118
- expect(File.exist?("#{@name}/page_objects/components/header_component.rb")).to be_truthy
119
- end
120
-
121
- after(:all) do
122
- FileUtils.rm_rf(@name)
123
- end
124
- end
125
-
126
- context 'with cucumber and watir' do
127
- before(:all) do
128
- @name = 'cucumber-watir'
129
- AutomationGenerator.new(['watir', 'cucumber', @name]).invoke_all
130
- end
131
-
132
- it 'creates a login page file' do
133
- expect(File.exist?("#{@name}/page_objects/pages/login_page.rb")).to be_truthy
134
- end
135
-
136
- it 'creates an abstract page file' do
137
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_page.rb")).to be_truthy
138
- end
139
-
140
- it 'creates an abstract component file' do
141
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_component.rb")).to be_truthy
142
- end
143
-
144
- it 'creates a component file' do
145
- expect(File.exist?("#{@name}/page_objects/components/header_component.rb")).to be_truthy
146
- end
147
-
148
- after(:all) do
149
- FileUtils.rm_rf(@name)
150
- end
39
+ expect(File).to exist("#{name}/appium.txt")
151
40
  end
41
+ end
152
42
 
153
- context 'with cucumber and appium' do
154
- before(:all) do
155
- @name = 'cucumber-appium'
156
- AutomationGenerator.new(['appium_ios', 'cucumber', @name]).invoke_all
157
- end
158
-
159
- it 'creates a login page file' do
160
- expect(File.exist?("#{@name}/page_objects/pages/login_page.rb")).to be_truthy
161
- end
43
+ context 'with rspec and selenium' do
44
+ include_examples 'creates web automation files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[2]}"
45
+ end
162
46
 
163
- it 'creates an abstract page file' do
164
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_page.rb")).to be_truthy
165
- end
47
+ context 'with rspec and watir' do
48
+ include_examples 'creates web automation files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
49
+ end
166
50
 
167
- it "doesn't creates an abstract component file" do
168
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_component.rb")).to be_falsey
169
- end
51
+ context 'with cucumber and selenium' do
52
+ include_examples 'creates web automation files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[2]}"
53
+ end
170
54
 
171
- it "doesn't creates a component file" do
172
- expect(File.exist?("#{@name}/page_objects/components/header_component.rb")).to be_falsey
173
- end
55
+ context 'with cucumber and watir' do
56
+ include_examples 'creates web automation files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.last}"
57
+ end
174
58
 
175
- it 'creates a login page file' do
176
- expect(File.exist?("#{@name}/page_objects/pages/home_page.rb")).to be_truthy
177
- end
59
+ context 'with rspec and appium android' do
60
+ include_examples 'creates mobile automation files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.first}"
61
+ end
178
62
 
179
- it 'creates a confirmation page file' do
180
- expect(File.exist?("#{@name}/page_objects/pages/confirmation_page.rb")).to be_truthy
181
- end
63
+ context 'with rspec and appium ios' do
64
+ include_examples 'creates mobile automation files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[1]}"
65
+ end
182
66
 
183
- it 'creates an appium config file' do
184
- expect(File.exist?("#{@name}/appium.txt")).to be_truthy
185
- end
67
+ context 'with cucumber and appium android' do
68
+ include_examples 'creates mobile automation files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.first}"
69
+ end
186
70
 
187
- after(:all) do
188
- FileUtils.rm_rf(@name)
189
- end
190
- end
71
+ context 'with cucumber and appium ios' do
72
+ include_examples 'creates mobile automation files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[1]}"
191
73
  end
192
74
  end
@@ -4,138 +4,53 @@ require_relative '../lib/generators/common_generator'
4
4
  require_relative 'spec_helper'
5
5
 
6
6
  describe CommonGenerator do
7
- context 'with selenium' do
8
- before(:all) do
9
- @name = 'rspec-selenium'
10
- CommonGenerator.new(['selenium', 'rspec', @name]).invoke_all
11
- end
12
-
7
+ shared_examples 'creates common files' do |name|
13
8
  it 'creates a config file' do
14
- expect(File.exist?("#{@name}/config/config.yml")).to be_truthy
9
+ expect(File).to exist("#{name}/config/config.yml")
15
10
  end
16
11
 
17
12
  it 'creates a rake file' do
18
- expect(File.exist?("#{@name}/Rakefile")).to be_truthy
13
+ expect(File).to exist("#{name}/Rakefile")
19
14
  end
20
15
 
21
16
  it 'creates a readMe file' do
22
- expect(File.exist?("#{@name}/Readme.md")).to be_truthy
17
+ expect(File).to exist("#{name}/Readme.md")
23
18
  end
24
19
 
25
20
  it 'creates a gemfile file' do
26
- expect(File.exist?("#{@name}/Gemfile")).to be_truthy
27
- end
28
-
29
- after(:all) do
30
- FileUtils.rm_rf(@name)
21
+ expect(File).to exist("#{name}/Gemfile")
31
22
  end
32
23
  end
33
24
 
34
- context 'with watir' do
35
- before(:all) do
36
- @name = 'rspec-watir'
37
- CommonGenerator.new(['watir', 'rspec', @name]).invoke_all
38
- end
39
-
40
- it 'creates a config file' do
41
- expect(File.exist?("#{@name}/config/config.yml")).to be_truthy
42
- end
43
-
44
- it 'creates a rake file' do
45
- expect(File.exist?("#{@name}/Rakefile")).to be_truthy
46
- end
47
-
48
- it 'creates a readMe file' do
49
- expect(File.exist?("#{@name}/Readme.md")).to be_truthy
50
- end
51
-
52
- it 'creates a gemfile file' do
53
- expect(File.exist?("#{@name}/Gemfile")).to be_truthy
54
- end
55
-
56
- after(:all) do
57
- FileUtils.rm_rf(@name)
58
- end
25
+ context 'with rspec and selenium' do
26
+ include_examples 'creates common files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[2]}"
59
27
  end
60
28
 
61
- context 'with appium' do
62
- before(:all) do
63
- @name = 'rspec-appium'
64
- CommonGenerator.new(['appium_ios', 'rspec', @name]).invoke_all
65
- end
66
-
67
- it 'creates a config file' do
68
- expect(File.exist?("#{@name}/config/config.yml")).to be_truthy
69
- end
70
-
71
- it 'creates a rake file' do
72
- expect(File.exist?("#{@name}/Rakefile")).to be_truthy
73
- end
74
-
75
- it 'creates a readMe file' do
76
- expect(File.exist?("#{@name}/Readme.md")).to be_truthy
77
- end
78
-
79
- it 'creates a gemfile file' do
80
- expect(File.exist?("#{@name}/Gemfile")).to be_truthy
81
- end
82
-
83
- after(:all) do
84
- FileUtils.rm_rf(@name)
85
- end
86
-
87
- context 'with cucumber and selenium' do
88
- before(:all) do
89
- @name = 'cucumber-selenium'
90
- CommonGenerator.new(['selenium', 'cucumber', @name]).invoke_all
91
- end
92
-
93
- it 'creates a config file' do
94
- expect(File.exist?("#{@name}/config/config.yml")).to be_truthy
95
- end
96
-
97
- it 'creates a rake file' do
98
- expect(File.exist?("#{@name}/Rakefile")).to be_truthy
99
- end
100
-
101
- it 'creates a readMe file' do
102
- expect(File.exist?("#{@name}/Readme.md")).to be_truthy
103
- end
104
-
105
- it 'creates a gemfile file' do
106
- expect(File.exist?("#{@name}/Gemfile")).to be_truthy
107
- end
108
-
109
- after(:all) do
110
- FileUtils.rm_rf(@name)
111
- end
112
- end
29
+ context 'with rspec and watir' do
30
+ include_examples 'creates common files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
31
+ end
113
32
 
114
- context 'with cucumber and watir' do
115
- before(:all) do
116
- @name = 'cucumber-watir'
117
- CommonGenerator.new(['watir', 'cucumber', @name]).invoke_all
118
- end
33
+ context 'with cucumber and selenium' do
34
+ include_examples 'creates common files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[2]}"
35
+ end
119
36
 
120
- it 'creates a config file' do
121
- expect(File.exist?("#{@name}/config/config.yml")).to be_truthy
122
- end
37
+ context 'with cucumber and watir' do
38
+ include_examples 'creates common files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.last}"
39
+ end
123
40
 
124
- it 'creates a rake file' do
125
- expect(File.exist?("#{@name}/Rakefile")).to be_truthy
126
- end
41
+ context 'with rspec and appium android' do
42
+ include_examples 'creates common files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.first}"
43
+ end
127
44
 
128
- it 'creates a readMe file' do
129
- expect(File.exist?("#{@name}/Readme.md")).to be_truthy
130
- end
45
+ context 'with rspec and appium ios' do
46
+ include_examples 'creates common files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[1]}"
47
+ end
131
48
 
132
- it 'creates a gemfile file' do
133
- expect(File.exist?("#{@name}/Gemfile")).to be_truthy
134
- end
49
+ context 'with cucumber and appium android' do
50
+ include_examples 'creates common files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.first}"
51
+ end
135
52
 
136
- after(:all) do
137
- FileUtils.rm_rf(@name)
138
- end
139
- end
53
+ context 'with cucumber and appium ios' do
54
+ include_examples 'creates common files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[1]}"
140
55
  end
141
56
  end
@@ -4,76 +4,37 @@ require_relative '../lib/generators/cucumber_generator'
4
4
  require_relative 'spec_helper'
5
5
 
6
6
  describe CucumberGenerator do
7
- context 'with selenium' do
8
- before(:all) do
9
- @name = 'cucumber-selenium'
10
- CucumberGenerator.new(['selenium', 'cucumber', @name]).invoke_all
11
- end
12
-
7
+ shared_examples 'creates cucumber files' do |project_name, file_name|
13
8
  it 'creates a feature file' do
14
- expect(File.exist?("#{@name}/features/login.feature")).to be_truthy
9
+ expect(File).to exist("#{project_name}/features/#{file_name}.feature")
15
10
  end
16
11
 
17
12
  it 'creates a step definitions file' do
18
- expect(File.exist?("#{@name}/features/step_definitions/login_steps.rb")).to be_truthy
13
+ expect(File).to exist("#{project_name}/features/step_definitions/#{file_name}_steps.rb")
19
14
  end
20
15
 
21
16
  it 'creates an env file' do
22
- expect(File.exist?("#{@name}/features/support/env.rb")).to be_truthy
17
+ expect(File).to exist("#{project_name}/features/support/env.rb")
23
18
  end
24
19
 
25
20
  it 'does not create a spec file' do
26
- expect(File.exist?("#{@name}/spec/login_spec.rb")).to be_falsey
27
- end
28
-
29
- after(:all) do
30
- FileUtils.rm_rf(@name)
21
+ expect(File).not_to exist("#{project_name}/spec/home_spec.rb")
31
22
  end
32
23
  end
33
24
 
34
- context 'with watir' do
35
- before(:all) do
36
- @name = 'cucumber-watir'
37
- CucumberGenerator.new(['watir', 'cucumber', @name]).invoke_all
38
- end
39
-
40
- it 'creates a feature file' do
41
- expect(File.exist?("#{@name}/features/login.feature")).to be_truthy
42
- end
43
-
44
- it 'creates a step definitions file' do
45
- expect(File.exist?("#{@name}/features/step_definitions/login_steps.rb")).to be_truthy
46
- end
47
-
48
- it 'creates an env file' do
49
- expect(File.exist?("#{@name}/features/support/env.rb")).to be_truthy
50
- end
51
-
52
- after(:all) do
53
- FileUtils.rm_rf(@name)
54
- end
25
+ context 'with cucumber and appium android' do
26
+ include_examples 'creates cucumber files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.first}", 'home'
55
27
  end
56
28
 
57
- context 'with appium' do
58
- before(:all) do
59
- @name = 'cucumber-appium'
60
- CucumberGenerator.new(['appium_ios', 'cucumber', @name]).invoke_all
61
- end
62
-
63
- it 'creates a feature file' do
64
- expect(File.exist?("#{@name}/features/login.feature")).to be_truthy
65
- end
66
-
67
- it 'creates a step definitions file' do
68
- expect(File.exist?("#{@name}/features/step_definitions/login_steps.rb")).to be_truthy
69
- end
29
+ context 'with cucumber and appium ios' do
30
+ include_examples 'creates cucumber files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[1]}", 'home'
31
+ end
70
32
 
71
- it 'creates an env file' do
72
- expect(File.exist?("#{@name}/features/support/env.rb")).to be_truthy
73
- end
33
+ context 'with cucumber and selenium' do
34
+ include_examples 'creates cucumber files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[2]}", 'login'
35
+ end
74
36
 
75
- after(:all) do
76
- FileUtils.rm_rf(@name)
77
- end
37
+ context 'with cucumber and watir' do
38
+ include_examples 'creates cucumber files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.last}", 'login'
78
39
  end
79
40
  end
@@ -4,122 +4,85 @@ require_relative '../lib/generators/helper_generator'
4
4
  require_relative 'spec_helper'
5
5
 
6
6
  describe HelpersGenerator do
7
- context 'with selenium' do
8
- before(:all) do
9
- @name = 'rspec-selenium'
10
- HelpersGenerator.new(['selenium', 'rspec', @name]).invoke_all
11
- end
12
-
7
+ shared_examples 'creates common helpers' do |name|
13
8
  it 'creates a raider file' do
14
- expect(File.exist?("#{@name}/helpers/raider.rb")).to be_truthy
9
+ expect(File).to exist("#{name}/helpers/raider.rb")
15
10
  end
16
11
 
17
12
  it 'creates an allure helper file' do
18
- expect(File.exist?("#{@name}/helpers/allure_helper.rb")).to be_truthy
19
- end
20
-
21
- it 'creates a driver helper file', :watir do
22
- expect(File.exist?("#{@name}/helpers/driver_helper.rb")).to be_truthy
23
- end
24
-
25
- it 'creates a spec helper file' do
26
- expect(File.exist?("#{@name}/helpers/spec_helper.rb")).to be_truthy
27
- end
28
-
29
- after(:all) do
30
- FileUtils.rm_rf(@name)
13
+ expect(File).to exist("#{name}/helpers/allure_helper.rb")
31
14
  end
32
15
  end
33
16
 
34
- context 'with watir' do
35
- before(:all) do
36
- @name = 'rspec-watir'
37
- HelpersGenerator.new(['watir', 'rspec', @name]).invoke_all
38
- end
39
-
40
- it 'creates a browser helper file', :watir do
41
- expect(File.exist?("#{@name}/helpers/browser_helper.rb")).to be_truthy
42
- end
43
-
44
- it 'creates a raider file' do
45
- expect(File.exist?("#{@name}/helpers/raider.rb")).to be_truthy
46
- end
47
-
48
- it 'creates an allure helper file' do
49
- expect(File.exist?("#{@name}/helpers/allure_helper.rb")).to be_truthy
50
- end
51
-
52
- after(:all) do
53
- FileUtils.rm_rf(@name)
17
+ shared_examples 'creates selenium helpers' do |name|
18
+ it 'creates a driver helper file' do
19
+ expect(File).to exist("#{name}/helpers/driver_helper.rb")
54
20
  end
55
21
  end
56
22
 
57
- context 'with appium' do
58
- before(:all) do
59
- @name = 'rspec-appium'
60
- HelpersGenerator.new(['appium_ios', 'rspec', @name]).invoke_all
61
- end
62
-
63
- it 'creates a raider file' do
64
- expect(File.exist?("#{@name}/helpers/raider.rb")).to be_truthy
65
- end
66
-
67
- it 'creates an allure helper file' do
68
- expect(File.exist?("#{@name}/helpers/allure_helper.rb")).to be_truthy
23
+ shared_examples 'creates watir helpers' do |name|
24
+ it 'creates a browser helper file' do
25
+ expect(File).to exist("#{name}/helpers/browser_helper.rb")
69
26
  end
27
+ end
70
28
 
71
- it 'creates a driver helper file', :watir do
72
- expect(File.exist?("#{@name}/helpers/driver_helper.rb")).to be_truthy
29
+ shared_examples 'creates rspec helpers' do |name|
30
+ it 'creates a spec helper file' do
31
+ expect(File).to exist("#{name}/helpers/spec_helper.rb")
73
32
  end
33
+ end
74
34
 
75
- after(:all) do
76
- FileUtils.rm_rf(@name)
35
+ shared_examples 'creates cucumber helpers' do |name|
36
+ it 'does not create a spec helper' do
37
+ expect(File).not_to exist("#{name}/helpers/spec_helper.rb")
77
38
  end
39
+ end
78
40
 
79
- context 'with cucumber and selenium' do
80
- before(:all) do
81
- @name = 'cucumber-selenium'
82
- HelpersGenerator.new(['selenium', 'cucumber', @name]).invoke_all
83
- end
84
-
85
- it 'creates an allure helper file' do
86
- expect(File.exist?("#{@name}/helpers/allure_helper.rb")).to be_truthy
87
- end
88
-
89
- it 'creates a driver helper file', :watir do
90
- expect(File.exist?("#{@name}/helpers/driver_helper.rb")).to be_truthy
91
- end
41
+ context 'with rspec and selenium' do
42
+ include_examples 'creates common helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[2]}"
43
+ include_examples 'creates selenium helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[2]}"
44
+ include_examples 'creates rspec helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[2]}"
45
+ end
92
46
 
93
- it 'does not create a spec helper' do
94
- expect(File.exist?("#{@name}/helpers/spec_helper.rb")).to be_falsey
95
- end
47
+ context 'with rspec and watir' do
48
+ include_examples 'creates common helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
49
+ include_examples 'creates watir helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
50
+ include_examples 'creates rspec helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
51
+ end
96
52
 
97
- after(:all) do
98
- FileUtils.rm_rf(@name)
99
- end
100
- end
53
+ context 'with cucumber and selenium' do
54
+ include_examples 'creates common helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[2]}"
55
+ include_examples 'creates selenium helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[2]}"
56
+ include_examples 'creates cucumber helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[2]}"
57
+ end
101
58
 
102
- context 'with cucumber and watir' do
103
- before(:all) do
104
- @name = 'cucumber-watir'
105
- HelpersGenerator.new(['watir', 'cucumber', @name]).invoke_all
106
- end
59
+ context 'with cucumber and watir' do
60
+ include_examples 'creates common helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.last}"
61
+ include_examples 'creates watir helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.last}"
62
+ include_examples 'creates cucumber helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.last}"
63
+ end
107
64
 
108
- it 'creates a browser helper file', :watir do
109
- expect(File.exist?("#{@name}/helpers/browser_helper.rb")).to be_truthy
110
- end
65
+ context 'with rspec and appium android' do
66
+ include_examples 'creates common helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.first}"
67
+ include_examples 'creates selenium helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.first}"
68
+ include_examples 'creates rspec helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.first}"
69
+ end
111
70
 
112
- it 'creates a raider file' do
113
- expect(File.exist?("#{@name}/helpers/raider.rb")).to be_truthy
114
- end
71
+ context 'with rspec and appium ios' do
72
+ include_examples 'creates common helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[1]}"
73
+ include_examples 'creates selenium helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[1]}"
74
+ include_examples 'creates rspec helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[1]}"
75
+ end
115
76
 
116
- it 'does not create a spec helper' do
117
- expect(File.exist?("#{@name}/helpers/spec_helper.rb")).to be_falsey
118
- end
77
+ context 'with cucumber and appium android' do
78
+ include_examples 'creates common helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.first}"
79
+ include_examples 'creates selenium helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.first}"
80
+ include_examples 'creates cucumber helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.first}"
81
+ end
119
82
 
120
- after(:all) do
121
- FileUtils.rm_rf(@name)
122
- end
123
- end
83
+ context 'with cucumber and appium ios' do
84
+ include_examples 'creates common helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[1]}"
85
+ include_examples 'creates selenium helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[1]}"
86
+ include_examples 'creates cucumber helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[1]}"
124
87
  end
125
88
  end