ruby_raider 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 717ea9978a9909bc5d4d78f717b8da94ebc7e76945ec638ceeb35bb9aa5a9281
4
- data.tar.gz: f6f390ee74bc484a763e4e0daf8f4cd08a5e8ed630d5284656a18efc0bffe91d
3
+ metadata.gz: 6a92cf556575579c0fd4b96bde582b6f19d0715224467dae8276a7b5a367d611
4
+ data.tar.gz: c4327f646e1f7dc87657da33e7cf2a075103fe605a953cb9e0a2c4f0a8bef24f
5
5
  SHA512:
6
- metadata.gz: 61718cc0edcd9dd89d65d25e0aa80032351921495bdcb3b4f69808e93ba448c1c859f2289e8008a94d7efd5987524fc510c8e17bc3e6a19ffa7b0dfa7828aa2c
7
- data.tar.gz: ce72aba02cf4813232ba7c3e4b0f5ec8d7688b56194ab066d32c8cd6a95c76f5395b16c5fece33150408191d4c95e15e66dd929d1eab497beb0bd28ed895c87f
6
+ metadata.gz: cd2a91f76d5f338b7cd2e79ae0c3af2012a4ff4a46802c3f90b8d1e79724c30fb9127790a89ceac5592ac74e039863993f62c7205e732fa714b3a3ae4309c4e3
7
+ data.tar.gz: d61169f5255b2f0e12a9cd62cb312c81dabc696ad9285d0863c62d46cdaaa4e9cea152e68985ff063450fc0c9c5d55cf752f5d06ae4cf245647c0ce924906ec9
data/.rubocop.yml CHANGED
@@ -1,8 +1,5 @@
1
- require: rubocop-rspec
2
-
3
- AllCops:
4
- Exclude:
5
- - './spec/*'
1
+ require:
2
+ - rubocop-rspec
6
3
 
7
4
  # Layout
8
5
  Layout/CaseIndentation:
@@ -86,7 +83,7 @@ Style/HashTransformValues:
86
83
 
87
84
  Style/SafeNavigation:
88
85
  Description: "Use &. instead of checking if an object exists"
89
- Enabled: false
86
+ Enabled: true
90
87
 
91
88
  Style/SingleLineBlockParams:
92
89
  Description: 'Enforces the names of some block params.'
@@ -86,7 +86,7 @@ class ScaffoldingCommands < UtilityCommands
86
86
  def scaffold(name)
87
87
  if Pathname.new('spec').exist? && !Pathname.new('features').exist?
88
88
  Scaffolding.new([name, load_config_path('spec')]).generate_spec
89
- elsif Pathname.new('features').exist?
89
+ else
90
90
  Scaffolding.new([name, load_config_path('feature')]).generate_feature
91
91
  end
92
92
  Scaffolding.new([name, load_config_path('page')]).generate_class
@@ -110,7 +110,7 @@ class ScaffoldingCommands < UtilityCommands
110
110
 
111
111
  no_commands do
112
112
  def load_config_path(type)
113
- YAML.load_file('config/config.yml')["#{type}_path"] if YAML.load_file('config/config.yml')
113
+ YAML.load_file('config/config.yml')["#{type}_path"] if Pathname.new('config/config.yml').exist?
114
114
  end
115
115
  end
116
116
  end
@@ -31,9 +31,8 @@ class MenuGenerator
31
31
  select_test_framework(automation)
32
32
  end
33
33
 
34
- def set_framework(automation, framework)
35
- add_generator framework.capitalize
36
- generators.each { |generator| invoke_generator(automation, framework, generator) }
34
+ def set_up_framework(automation, framework)
35
+ generate_framework(automation, framework)
37
36
  system "cd #{name} && gem install bundler && bundle install"
38
37
  end
39
38
 
@@ -46,6 +45,11 @@ class MenuGenerator
46
45
  end
47
46
  end
48
47
 
48
+ def generate_framework(automation, framework)
49
+ add_generator framework.capitalize
50
+ generators.each { |generator| invoke_generator(automation, framework, generator) }
51
+ end
52
+
49
53
  protected
50
54
 
51
55
  def add_generator(*opts)
@@ -55,7 +59,7 @@ class MenuGenerator
55
59
  private
56
60
 
57
61
  def framework_choice(framework, automation_type)
58
- set_framework(automation_type, framework.downcase)
62
+ set_up_framework(automation_type, framework.downcase)
59
63
  prompt.say("You have chosen to use #{framework} with #{automation_type}")
60
64
  end
61
65
 
data/ruby_raider.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'ruby_raider'
5
- s.version = '0.4.1'
5
+ s.version = '0.4.2'
6
6
  s.summary = 'A gem to make setup and start of UI automation projects easier'
7
7
  s.description = 'This gem has everything you need to start working with test automation'
8
8
  s.authors = ['Agustin Pequeno']
@@ -17,6 +17,7 @@ Gem::Specification.new do |s|
17
17
  s.add_development_dependency 'reek', '~> 6.1.0'
18
18
  s.add_development_dependency 'rspec', '~> 3.11.0'
19
19
  s.add_development_dependency 'rubocop', '~> 1.27'
20
+ s.add_development_dependency 'rubocop-performance', '~> 1.15.0'
20
21
  s.add_development_dependency 'rubocop-rspec', '~> 2.9.0'
21
22
 
22
23
  s.add_runtime_dependency 'thor', '~> 1.2.1'
@@ -4,192 +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
-
13
- it 'creates a login page file' do
14
- expect(File.exist?("#{@name}/page_objects/pages/login_page.rb")).to be_truthy
15
- end
16
-
17
- it 'creates an abstract page file' do
18
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_page.rb")).to be_truthy
19
- end
20
-
21
- it 'creates an abstract component file' do
22
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_component.rb")).to be_truthy
23
- end
24
-
25
- 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)
31
- end
32
- end
33
-
34
- context 'with watir' do
35
- before(:all) do
36
- @name = 'rspec-watir'
37
- AutomationGenerator.new(['watir', 'rspec', @name]).invoke_all
38
- end
39
-
7
+ shared_examples 'creates web automation files' do |name|
40
8
  it 'creates a login page file' do
41
- 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")
42
10
  end
43
11
 
44
12
  it 'creates an abstract page file' do
45
- 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")
46
14
  end
47
15
 
48
16
  it 'creates an abstract component file' do
49
- 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")
50
18
  end
51
19
 
52
20
  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)
21
+ expect(File).to exist("#{name}/page_objects/components/header_component.rb")
58
22
  end
59
23
  end
60
24
 
61
- context 'with rspec and appium on ios' do
62
- before(:all) do
63
- @name = 'rspec-appium-ios'
64
- AutomationGenerator.new(['ios', 'rspec', @name]).invoke_all
65
- end
66
-
25
+ shared_examples 'creates mobile automation files' do |name|
67
26
  it 'creates a home page file' do
68
- expect(File.exist?("#{@name}/page_objects/pages/home_page.rb")).to be_truthy
27
+ expect(File).to exist("#{name}/page_objects/pages/home_page.rb")
69
28
  end
70
29
 
71
30
  it 'creates an abstract page file' do
72
- 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")
73
32
  end
74
33
 
75
34
  it 'creates a pdp page file' do
76
- expect(File.exist?("#{@name}/page_objects/pages/pdp_page.rb")).to be_truthy
35
+ expect(File).to exist("#{name}/page_objects/pages/pdp_page.rb")
77
36
  end
78
37
 
79
38
  it 'creates an appium config file' do
80
- expect(File.exist?("#{@name}/appium.txt")).to be_truthy
81
- end
82
-
83
- after(:all) do
84
- FileUtils.rm_rf(@name)
39
+ expect(File).to exist("#{name}/appium.txt")
85
40
  end
86
41
  end
87
42
 
88
- context 'with rspec and appium on android' do
89
- before(:all) do
90
- @name = 'rspec-appium-android'
91
- AutomationGenerator.new(['android', 'rspec', @name]).invoke_all
92
- end
93
-
94
- it 'creates a home page file' do
95
- expect(File.exist?("#{@name}/page_objects/pages/home_page.rb")).to be_truthy
96
- end
97
-
98
- it 'creates an abstract page file' do
99
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_page.rb")).to be_truthy
100
- end
101
-
102
- it 'creates a pdp page file' do
103
- expect(File.exist?("#{@name}/page_objects/pages/pdp_page.rb")).to be_truthy
104
- end
105
-
106
- it 'creates an appium config file' do
107
- expect(File.exist?("#{@name}/appium.txt")).to be_truthy
108
- end
43
+ context 'with rspec and selenium' do
44
+ include_examples 'creates web automation files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[2]}"
45
+ end
109
46
 
110
- after(:all) do
111
- FileUtils.rm_rf(@name)
112
- end
47
+ context 'with rspec and watir' do
48
+ include_examples 'creates web automation files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
113
49
  end
114
50
 
115
51
  context 'with cucumber and selenium' do
116
- before(:all) do
117
- @name = 'cucumber-selenium'
118
- AutomationGenerator.new(['selenium', 'cucumber', @name]).invoke_all
119
- end
120
-
121
- it 'creates a login page file' do
122
- expect(File.exist?("#{@name}/page_objects/pages/login_page.rb")).to be_truthy
123
- end
124
-
125
- it 'creates an abstract page file' do
126
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_page.rb")).to be_truthy
127
- end
128
-
129
- it 'creates an abstract component file' do
130
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_component.rb")).to be_truthy
131
- end
132
-
133
- it 'creates a component file' do
134
- expect(File.exist?("#{@name}/page_objects/components/header_component.rb")).to be_truthy
135
- end
136
-
137
- after(:all) do
138
- FileUtils.rm_rf(@name)
139
- end
52
+ include_examples 'creates web automation files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[2]}"
140
53
  end
141
54
 
142
55
  context 'with cucumber and watir' do
143
- before(:all) do
144
- @name = 'cucumber-watir'
145
- AutomationGenerator.new(['watir', 'cucumber', @name]).invoke_all
146
- end
147
-
148
- it 'creates a login page file' do
149
- expect(File.exist?("#{@name}/page_objects/pages/login_page.rb")).to be_truthy
150
- end
151
-
152
- it 'creates an abstract page file' do
153
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_page.rb")).to be_truthy
154
- end
155
-
156
- it 'creates an abstract component file' do
157
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_component.rb")).to be_truthy
158
- end
159
-
160
- it 'creates a component file' do
161
- expect(File.exist?("#{@name}/page_objects/components/header_component.rb")).to be_truthy
162
- end
163
-
164
- after(:all) do
165
- FileUtils.rm_rf(@name)
166
- end
56
+ include_examples 'creates web automation files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.last}"
167
57
  end
168
58
 
169
- context 'with cucumber and appium' do
170
- before(:all) do
171
- @name = 'cucumber-appium'
172
- AutomationGenerator.new(['ios', 'cucumber', @name]).invoke_all
173
- end
174
-
175
- it 'creates a home page file' do
176
- expect(File.exist?("#{@name}/page_objects/pages/home_page.rb")).to be_truthy
177
- end
178
-
179
- it 'creates an abstract page file' do
180
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_page.rb")).to be_truthy
181
- end
59
+ context 'with rspec and appium android' do
60
+ include_examples 'creates mobile automation files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.first}"
61
+ end
182
62
 
183
- it 'creates a pdp page file' do
184
- expect(File.exist?("#{@name}/page_objects/pages/pdp_page.rb")).to be_truthy
185
- end
63
+ context 'with rspec and appium ios' do
64
+ include_examples 'creates mobile automation files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[1]}"
65
+ end
186
66
 
187
- it 'creates an appium config file' do
188
- expect(File.exist?("#{@name}/appium.txt")).to be_truthy
189
- end
67
+ context 'with cucumber and appium android' do
68
+ include_examples 'creates mobile automation files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.first}"
69
+ end
190
70
 
191
- after(:all) do
192
- FileUtils.rm_rf(@name)
193
- end
71
+ context 'with cucumber and appium ios' do
72
+ include_examples 'creates mobile automation files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[1]}"
194
73
  end
195
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
@@ -4,79 +4,29 @@ require_relative '../lib/generators/rspec_generator'
4
4
  require_relative 'spec_helper'
5
5
 
6
6
  describe RspecGenerator do
7
- context 'with selenium' do
8
- before(:all) do
9
- @name = 'rspec-selenium'
10
- RspecGenerator.new(['selenium', 'rspec', @name]).invoke_all
11
- end
12
-
7
+ shared_examples 'creates rspec files' do |project_name, file_name|
13
8
  it 'creates a spec file' do
14
- expect(File.exist?("#{@name}/spec/login_page_spec.rb")).to be_truthy
9
+ expect(File).to exist("#{project_name}/spec/#{file_name}_page_spec.rb")
15
10
  end
16
11
 
17
12
  it 'creates the base spec file' do
18
- expect(File.exist?("#{@name}/spec/base_spec.rb")).to be_truthy
19
- end
20
-
21
- after(:all) do
22
- FileUtils.rm_rf(@name)
13
+ expect(File).to exist("#{project_name}/spec/base_spec.rb")
23
14
  end
24
15
  end
25
16
 
26
- context 'with watir' do
27
- before(:all) do
28
- @name = 'rspec-watir'
29
- RspecGenerator.new(['watir', 'rspec', @name]).invoke_all
30
- end
31
-
32
- it 'creates a spec file' do
33
- expect(File.exist?("#{@name}/spec/login_page_spec.rb")).to be_truthy
34
- end
35
-
36
- it 'creates the base spec file' do
37
- expect(File.exist?("#{@name}/spec/base_spec.rb")).to be_truthy
38
- end
39
-
40
- after(:all) do
41
- FileUtils.rm_rf(@name)
42
- end
17
+ context 'with rspec and selenium' do
18
+ include_examples 'creates rspec files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[2]}", 'login'
43
19
  end
44
20
 
45
- context 'with ios appium' do
46
- before(:all) do
47
- @name = 'rspec-appium'
48
- RspecGenerator.new(['ios', 'rspec', @name]).invoke_all
49
- end
50
-
51
- it 'creates a spec file' do
52
- expect(File.exist?("#{@name}/spec/pdp_page_spec.rb")).to be_truthy
53
- end
54
-
55
- it 'creates the base spec file' do
56
- expect(File.exist?("#{@name}/spec/base_spec.rb")).to be_truthy
57
- end
58
-
59
- after(:all) do
60
- FileUtils.rm_rf(@name)
61
- end
21
+ context 'with rspec and watir' do
22
+ include_examples 'creates rspec files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}", 'login'
62
23
  end
63
24
 
64
- context 'with android appium' do
65
- before(:all) do
66
- @name = 'rspec-appium'
67
- RspecGenerator.new(['android', 'rspec', @name]).invoke_all
68
- end
69
-
70
- it 'creates a spec file' do
71
- expect(File.exist?("#{@name}/spec/pdp_page_spec.rb")).to be_truthy
72
- end
73
-
74
- it 'creates the base spec file' do
75
- expect(File.exist?("#{@name}/spec/base_spec.rb")).to be_truthy
76
- end
25
+ context 'with rspec and appium android' do
26
+ include_examples 'creates rspec files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.first}", 'pdp'
27
+ end
77
28
 
78
- after(:all) do
79
- FileUtils.rm_rf(@name)
80
- end
29
+ context 'with rspec and appium ios' do
30
+ include_examples 'creates rspec files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[1]}", 'pdp'
81
31
  end
82
32
  end
@@ -0,0 +1,162 @@
1
+ require 'pathname'
2
+ require 'yaml'
3
+ require_relative '../lib/generators/common_generator'
4
+ require_relative '../lib/commands/scaffolding_commands'
5
+ require_relative '../lib/scaffolding/scaffolding'
6
+ require_relative 'spec_helper'
7
+
8
+ describe ScaffoldingCommands do
9
+ let(:scaffold) { described_class }
10
+ let(:name) { 'test' }
11
+
12
+ orig_dir = Dir.pwd
13
+
14
+ after do
15
+ Dir.chdir orig_dir
16
+ end
17
+
18
+ context 'with a spec folder' do
19
+ let(:new_path) { 'test_folder' }
20
+
21
+ path = "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[2]}"
22
+
23
+ before do
24
+ Dir.chdir path
25
+ end
26
+
27
+ it 'scaffolds for rspec creating a spec' do
28
+ scaffold.new.invoke(:scaffold, nil, %W[#{name}])
29
+ expect(Pathname.new("spec/#{name}_spec.rb")).to be_file
30
+ end
31
+
32
+ it 'scaffolds for rspec creating a page' do
33
+ scaffold.new.invoke(:scaffold, nil, %W[#{name}])
34
+ expect(Pathname.new("page_objects/pages/#{name}_page.rb")).to be_file
35
+ end
36
+
37
+ it 'deletes a spec' do
38
+ scaffold.new.invoke(:spec, nil, %w[login --delete])
39
+ expect(Pathname.new('spec/login_spec.rb')).not_to be_file
40
+ end
41
+
42
+ it 'deletes a helper' do
43
+ scaffold.new.invoke(:helper, nil, %w[driver --delete])
44
+ expect(Pathname.new('helpers/driver_helper.rb')).not_to be_file
45
+ end
46
+
47
+ it 'creates a page' do
48
+ scaffold.new.invoke(:page, nil, %W[#{name}])
49
+ expect(Pathname.new("page_objects/pages/#{name}_page.rb")).to be_file
50
+ end
51
+
52
+ it 'changes the path for specs' do
53
+ scaffold.new.invoke(:path, nil, %W[#{path} -s])
54
+ config = YAML.load_file('config/config.yml')
55
+ expect(config['spec_path']).to eql path
56
+ end
57
+
58
+ it 'updates the url' do
59
+ scaffold.new.invoke(:url, nil, %w[test.com])
60
+ config = YAML.load_file('config/config.yml')
61
+ expect(config['url']).to eql 'test.com'
62
+ end
63
+
64
+ it 'updates the browser' do
65
+ scaffold.new.invoke(:browser, nil, %w[:firefox])
66
+ config = YAML.load_file('config/config.yml')
67
+ expect(config['browser']).to eql ':firefox'
68
+ end
69
+
70
+ it 'updates the browser options' do
71
+ scaffold.new.invoke(:browser, nil, %w[:firefox --opts headless start-maximized start-fullscreen])
72
+ config = YAML.load_file('config/config.yml')
73
+ expect(config['browser_options']).to eql %w[headless start-maximized start-fullscreen]
74
+ end
75
+
76
+ it 'creates a page with a path' do
77
+ scaffold.new.invoke(:page, nil, %W[#{name} --path #{new_path}])
78
+ expect(Pathname.new("#{new_path}/#{name}_page.rb")).to be_file
79
+ end
80
+
81
+ it 'creates a spec' do
82
+ scaffold.new.invoke(:spec, nil, %W[#{name} --path #{new_path}])
83
+ expect(Pathname.new("#{new_path}/#{name}_spec.rb")).to be_file
84
+ end
85
+ end
86
+
87
+ context 'with a features folder' do
88
+ let(:new_path) { 'test_folder' }
89
+
90
+ path = "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.last}"
91
+
92
+ before do
93
+ Dir.chdir path
94
+ end
95
+
96
+ it 'scaffolds for cucumber creating a feature' do
97
+ scaffold.new.invoke(:scaffold, nil, %W[#{name}])
98
+ expect(Pathname.new("features/#{name}.feature")).to be_file
99
+ end
100
+
101
+ it 'scaffolds for cucumber creating a page' do
102
+ scaffold.new.invoke(:scaffold, nil, %W[#{name}])
103
+ expect(Pathname.new("page_objects/pages/#{name}_page.rb")).to be_file
104
+ end
105
+
106
+ it 'creates a helper' do
107
+ scaffold.new.invoke(:helper, nil, %W[#{name}])
108
+ expect(Pathname.new("helpers/#{name}_helper.rb")).to be_file
109
+ end
110
+
111
+ it 'deletes a page' do
112
+ scaffold.new.invoke(:page, nil, %w[login --delete])
113
+ expect(Pathname.new('page_objects/pages/login_page.rb')).not_to be_file
114
+ end
115
+
116
+ it 'deletes a feature' do
117
+ scaffold.new.invoke(:feature, nil, %w[login --delete])
118
+ expect(Pathname.new('features/login.feature')).not_to be_file
119
+ end
120
+
121
+ it 'changes the path for pages' do
122
+ scaffold.new.invoke(:path, nil, %W[#{path}])
123
+ config = YAML.load_file('config/config.yml')
124
+ expect(config['page_path']).to eql path
125
+ end
126
+
127
+ it 'changes the path for features' do
128
+ scaffold.new.invoke(:path, nil, %W[#{path} -f])
129
+ config = YAML.load_file('config/config.yml')
130
+ expect(config['feature_path']).to eql path
131
+ end
132
+
133
+ it 'updates only the browser options' do
134
+ scaffold.new.invoke(:browser, nil, %w[:firefox --opts headless])
135
+ config = YAML.load_file('config/config.yml')
136
+ expect(config['browser_options']).to eql %w[headless]
137
+ end
138
+
139
+ it 'deletes the browser options when passed with the delete parameter' do
140
+ scaffold.new.invoke(:browser, nil, %w[:firefox --opts headless --delete])
141
+ config = YAML.load_file('config/config.yml')
142
+ expect(config['browser_options']).to be_nil
143
+ end
144
+
145
+ it 'deletes the browser options' do
146
+ scaffold.new.invoke(:browser, nil, %w[:firefox --opts headless])
147
+ scaffold.new.invoke(:browser, nil, %w[--delete])
148
+ config = YAML.load_file('config/config.yml')
149
+ expect(config['browser_options']).to be_nil
150
+ end
151
+
152
+ it 'creates a feature' do
153
+ scaffold.new.invoke(:feature, nil, %W[#{name} --path #{new_path}])
154
+ expect(Pathname.new("#{new_path}/#{name}.feature")).to be_file
155
+ end
156
+
157
+ it 'creates a helper with a path' do
158
+ scaffold.new.invoke(:helper, nil, %W[#{name} --path #{new_path}])
159
+ expect(Pathname.new("#{new_path}/#{name}_helper.rb")).to be_file
160
+ end
161
+ end
162
+ end
data/spec/spec_helper.rb CHANGED
@@ -2,3 +2,23 @@
2
2
 
3
3
  require 'fileutils'
4
4
  require 'rspec'
5
+ require_relative '../lib/generators/menu_generator'
6
+
7
+ AUTOMATION_TYPES = %w[android ios selenium watir].freeze
8
+ FRAMEWORKS = %w[cucumber rspec].freeze
9
+
10
+ RSpec.configure do |config|
11
+ config.before(:all) do
12
+ FRAMEWORKS.each do |framework|
13
+ AUTOMATION_TYPES.each do |automation|
14
+ MenuGenerator.new("#{framework}_#{automation}").generate_framework(automation, framework)
15
+ end
16
+ end
17
+ end
18
+
19
+ config.after(:all) do
20
+ FRAMEWORKS.each do |framework|
21
+ AUTOMATION_TYPES.each { |automation| FileUtils.rm_rf("#{framework}_#{automation}") }
22
+ end
23
+ end
24
+ end
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.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agustin Pequeno
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-07 00:00:00.000000000 Z
11
+ date: 2022-10-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.27'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop-performance
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 1.15.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 1.15.0
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rubocop-rspec
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -199,7 +213,7 @@ files:
199
213
  - spec/cucumber_generator_spec.rb
200
214
  - spec/helpers_generator_spec.rb
201
215
  - spec/rspec_generator_spec.rb
202
- - spec/scaffolding_spec.rb
216
+ - spec/scaffolding_commands_spec.rb
203
217
  - spec/spec_helper.rb
204
218
  homepage: https://github.com/RubyRaider/ruby_raider
205
219
  licenses:
@@ -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