ruby_raider 0.4.0 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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