ruby_raider 0.3.2 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +1 -1
- data/lib/generators/automation_generator.rb +13 -15
- data/lib/generators/common_generator.rb +0 -1
- data/lib/generators/cucumber_generator.rb +0 -1
- data/lib/generators/generator.rb +2 -2
- data/lib/generators/helper_generator.rb +8 -13
- data/lib/generators/rspec_generator.rb +0 -2
- data/lib/ruby_raider.rb +35 -20
- data/lib/scaffolding/scaffolding.rb +3 -1
- data/lib/utilities/utilities.rb +2 -0
- data/ruby_raider.gemspec +2 -3
- data/spec/ruby_raider_spec.rb +33 -1
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 07240bddaf0b3edae4d1d8202df31ac428c143941680f02fb51ea54a8b478d37
|
4
|
+
data.tar.gz: 887a4fc52c2c5899cc5999292a1edd3a357d1ecedbac9dea691edb06f980c6f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4cf0f65241e104cb96ee22ee79e61a24e049cf834aed0ea0098ea801f64cabe0a037d3846f50c5d60148b50e4a2621fa06329f1a697ea2ee8750b6656c78a49
|
7
|
+
data.tar.gz: ed34541a0df8cf638630d6db03617e1aff99a0fb7432378971ccd371242be91624c3940e94769acc9d5058194b27a946d40c15a955291ff2d5dee5de5d413e55
|
data/Rakefile
CHANGED
@@ -12,32 +12,30 @@ class AutomationGenerator < Generator
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def generate_home_page
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
return unless @_initializer.first.include?('appium_ios')
|
16
|
+
|
17
|
+
template('automation/home_page.tt', "#{name}/page_objects/pages/home_page.rb")
|
18
18
|
end
|
19
19
|
|
20
20
|
def generate_header_component
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
return if @_initializer.first.include?('appium_ios')
|
22
|
+
|
23
|
+
template('automation/component.tt', "#{name}/page_objects/components/header_component.rb")
|
24
24
|
end
|
25
25
|
|
26
26
|
def generate_abstract_component
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
return if @_initializer.first.include?('appium_ios')
|
28
|
+
|
29
|
+
template('automation/abstract_component.tt', "#{name}/page_objects/abstract/abstract_component.rb")
|
30
30
|
end
|
31
31
|
|
32
32
|
def generate_confirmation_page
|
33
|
-
|
34
|
-
|
35
|
-
|
33
|
+
return unless @_initializer.first.include?('appium_ios')
|
34
|
+
|
35
|
+
template('automation/confirmation_page.tt', "#{name}/page_objects/pages/confirmation_page.rb")
|
36
36
|
end
|
37
37
|
|
38
38
|
def generate_appium_settings
|
39
|
-
if @_initializer.first.include?('appium_ios')
|
40
|
-
template('automation/appium_settings.tt', "#{name}/appium.txt")
|
41
|
-
end
|
39
|
+
template('automation/appium_settings.tt', "#{name}/appium.txt") if @_initializer.first.include?('appium_ios')
|
42
40
|
end
|
43
41
|
end
|
data/lib/generators/generator.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'thor'
|
3
4
|
|
4
5
|
class Generator < Thor::Group
|
@@ -9,7 +10,6 @@ class Generator < Thor::Group
|
|
9
10
|
argument :name
|
10
11
|
|
11
12
|
def self.source_root
|
12
|
-
File.dirname(__FILE__)
|
13
|
+
"#{File.dirname(__FILE__)}/templates"
|
13
14
|
end
|
14
15
|
end
|
15
|
-
|
@@ -3,7 +3,6 @@
|
|
3
3
|
require_relative 'generator'
|
4
4
|
|
5
5
|
class HelpersGenerator < Generator
|
6
|
-
|
7
6
|
def generate_raider_helper
|
8
7
|
template('helpers/raider_helper.tt', "#{name}/helpers/raider.rb")
|
9
8
|
end
|
@@ -13,26 +12,22 @@ class HelpersGenerator < Generator
|
|
13
12
|
end
|
14
13
|
|
15
14
|
def generate_browser_helper
|
16
|
-
if @_initializer.first.include?('watir')
|
17
|
-
template('helpers/browser_helper.tt', "#{name}/helpers/browser_helper.rb")
|
18
|
-
end
|
15
|
+
template('helpers/browser_helper.tt', "#{name}/helpers/browser_helper.rb") if @_initializer.first.include?('watir')
|
19
16
|
end
|
20
17
|
|
21
18
|
def generate_spec_helper
|
22
|
-
if @_initializer.first.include?('rspec')
|
23
|
-
template('helpers/spec_helper.tt', "#{name}/helpers/spec_helper.rb")
|
24
|
-
end
|
19
|
+
template('helpers/spec_helper.tt', "#{name}/helpers/spec_helper.rb") if @_initializer.first.include?('rspec')
|
25
20
|
end
|
26
21
|
|
27
22
|
def generate_selenium_helper
|
28
|
-
|
29
|
-
|
30
|
-
|
23
|
+
return unless @_initializer.first.include?('selenium')
|
24
|
+
|
25
|
+
template('helpers/selenium_helper.tt', "#{name}/helpers/selenium_helper.rb")
|
31
26
|
end
|
32
27
|
|
33
28
|
def generate_driver_helper
|
34
|
-
|
35
|
-
|
36
|
-
|
29
|
+
return if @_initializer.first.include?('watir')
|
30
|
+
|
31
|
+
template('helpers/driver_helper.tt', "#{name}/helpers/driver_helper.rb")
|
37
32
|
end
|
38
33
|
end
|
@@ -3,7 +3,6 @@
|
|
3
3
|
require_relative 'generator'
|
4
4
|
|
5
5
|
class RspecGenerator < Generator
|
6
|
-
|
7
6
|
def generate_spec
|
8
7
|
template('rspec/spec.tt', "#{name}/spec/login_page_spec.rb")
|
9
8
|
end
|
@@ -12,4 +11,3 @@ class RspecGenerator < Generator
|
|
12
11
|
template('rspec/base_spec.tt', "#{name}/spec/base_spec.rb")
|
13
12
|
end
|
14
13
|
end
|
15
|
-
|
data/lib/ruby_raider.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'thor'
|
2
4
|
require 'yaml'
|
3
5
|
require_relative 'generators/menu_generator'
|
@@ -5,17 +7,17 @@ require_relative '../lib/scaffolding/scaffolding'
|
|
5
7
|
require_relative '../lib/utilities/utilities'
|
6
8
|
|
7
9
|
class RubyRaider < Thor
|
8
|
-
desc
|
10
|
+
desc 'new [PROJECT_NAME]', 'Creates a new framework based on settings picked'
|
9
11
|
|
10
12
|
def new(project_name)
|
11
13
|
MenuGenerator.generate_choice_menu(project_name)
|
12
14
|
end
|
13
15
|
|
14
|
-
desc
|
16
|
+
desc 'page [PAGE_NAME]', 'Creates a new page object'
|
15
17
|
option :path,
|
16
|
-
:
|
18
|
+
type: :string, required: false, desc: 'The path where your page will be created', aliases: '-p'
|
17
19
|
option :delete,
|
18
|
-
:
|
20
|
+
type: :boolean, required: false, desc: 'This will delete the selected page', aliases: '-d'
|
19
21
|
|
20
22
|
def page(name)
|
21
23
|
path = options[:path].nil? ? load_config_path('page') : options[:path]
|
@@ -26,11 +28,11 @@ class RubyRaider < Thor
|
|
26
28
|
end
|
27
29
|
end
|
28
30
|
|
29
|
-
desc
|
31
|
+
desc 'feature [FEATURE_NAME]', 'Creates a new feature'
|
30
32
|
option :path,
|
31
|
-
:
|
33
|
+
type: :string, required: false, desc: 'The path where your feature will be created', aliases: '-p'
|
32
34
|
option :delete,
|
33
|
-
:
|
35
|
+
type: :boolean, required: false, desc: 'This will delete the selected feature', aliases: '-d'
|
34
36
|
|
35
37
|
def feature(name)
|
36
38
|
path = options[:path].nil? ? load_config_path('feature') : options[:path]
|
@@ -41,11 +43,11 @@ class RubyRaider < Thor
|
|
41
43
|
end
|
42
44
|
end
|
43
45
|
|
44
|
-
desc
|
46
|
+
desc 'spec [SPEC_NAME]', 'Creates a new spec'
|
45
47
|
option :path,
|
46
|
-
:
|
48
|
+
type: :string, required: false, desc: 'The path where your spec will be created', aliases: '-p'
|
47
49
|
option :delete,
|
48
|
-
:
|
50
|
+
type: :boolean, required: false, desc: 'This will delete the selected spec', aliases: '-d'
|
49
51
|
|
50
52
|
def spec(name)
|
51
53
|
path = options[:path].nil? ? load_config_path('spec') : options[:path]
|
@@ -56,11 +58,11 @@ class RubyRaider < Thor
|
|
56
58
|
end
|
57
59
|
end
|
58
60
|
|
59
|
-
desc
|
61
|
+
desc 'helper [HELPER_NAME]', 'Creates a new helper'
|
60
62
|
option :path,
|
61
|
-
:
|
63
|
+
type: :string, required: false, desc: 'The path where your helper will be created', aliases: '-p'
|
62
64
|
option :delete,
|
63
|
-
:
|
65
|
+
type: :boolean, required: false, desc: 'This will delete the selected helper', aliases: '-d'
|
64
66
|
|
65
67
|
def helper(name)
|
66
68
|
path = options[:path].nil? ? load_config_path('helper') : options[:path]
|
@@ -71,36 +73,49 @@ class RubyRaider < Thor
|
|
71
73
|
end
|
72
74
|
end
|
73
75
|
|
74
|
-
desc
|
76
|
+
desc 'path [PATH]', 'Sets the default path for scaffolding'
|
75
77
|
option :feature,
|
76
|
-
:
|
78
|
+
type: :boolean, required: false, desc: 'The default path for your features', aliases: '-f'
|
77
79
|
option :helper,
|
78
|
-
:
|
80
|
+
type: :boolean, required: false, desc: 'The default path for your helpers', aliases: '-h'
|
79
81
|
option :spec,
|
80
|
-
:
|
82
|
+
type: :boolean, required: false, desc: 'The default path for your specs', aliases: '-s'
|
81
83
|
def path(default_path)
|
82
84
|
type = options.empty? ? 'page' : options.keys.first
|
83
85
|
Utilities.new.send("#{type}_path=", default_path)
|
84
86
|
end
|
85
87
|
|
86
|
-
desc
|
88
|
+
desc 'url [URL]', 'Sets the default url for a project'
|
87
89
|
|
88
90
|
def url(default_url)
|
89
91
|
Utilities.new.url = default_url
|
90
92
|
end
|
91
93
|
|
92
|
-
desc
|
94
|
+
desc 'browser [BROWSER]', 'Sets the default browser for a project'
|
93
95
|
|
94
96
|
def browser(default_browser)
|
95
97
|
Utilities.new.browser = default_browser
|
96
98
|
end
|
97
99
|
|
98
|
-
desc
|
100
|
+
desc 'raid', 'It runs all the tests in a project'
|
99
101
|
|
100
102
|
def raid
|
101
103
|
Utilities.new.run
|
102
104
|
end
|
103
105
|
|
106
|
+
desc 'scaffold [SCAFFOLD_NAME]', 'It generates everything needed to start automating'
|
107
|
+
def scaffold(name)
|
108
|
+
if Pathname.new('spec').exist? && !Pathname.new('features').exist?
|
109
|
+
Scaffolding.new([name, load_config_path('spec')]).generate_spec
|
110
|
+
Scaffolding.new([name, load_config_path('page')]).generate_class
|
111
|
+
elsif Pathname.new('features').exist?
|
112
|
+
Scaffolding.new([name, load_config_path('feature')]).generate_feature
|
113
|
+
Scaffolding.new([name, load_config_path('page')]).generate_class
|
114
|
+
else
|
115
|
+
raise 'No features or spec folders where found. We are not sure which type of project you are running'
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
104
119
|
no_commands do
|
105
120
|
def load_config_path(type)
|
106
121
|
YAML.load_file('config/config.yml')["#{type}_path"] unless YAML.load_file('config/config.yml').nil?
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'thor'
|
2
4
|
|
3
5
|
class Scaffolding < Thor::Group
|
@@ -7,7 +9,7 @@ class Scaffolding < Thor::Group
|
|
7
9
|
argument :path, optional: true
|
8
10
|
|
9
11
|
def self.source_root
|
10
|
-
File.dirname(__FILE__)
|
12
|
+
"#{File.dirname(__FILE__)}/templates"
|
11
13
|
end
|
12
14
|
|
13
15
|
def generate_class
|
data/lib/utilities/utilities.rb
CHANGED
data/ruby_raider.gemspec
CHANGED
@@ -2,13 +2,12 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'ruby_raider'
|
5
|
-
s.version = '0.3.
|
5
|
+
s.version = '0.3.3'
|
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']
|
9
9
|
s.email = 'agustin.pe94@gmail.com'
|
10
10
|
s.homepage = 'https://github.com/RubyRaider/ruby_raider'
|
11
|
-
s.files = %w[bin/* lib/* lib/**/*]
|
12
11
|
s.license = 'MIT'
|
13
12
|
s.required_ruby_version = '>= 3.0.0'
|
14
13
|
s.files = `git ls-files -z`.split("\x0")
|
@@ -16,9 +15,9 @@ Gem::Specification.new do |s|
|
|
16
15
|
s.executables << 'raider'
|
17
16
|
s.add_development_dependency 'rake', '~> 13.0.6'
|
18
17
|
s.add_development_dependency 'reek', '~> 6.1.0'
|
18
|
+
s.add_development_dependency 'rspec', '~> 3.11.0'
|
19
19
|
s.add_development_dependency 'rubocop', '~> 1.27'
|
20
20
|
s.add_development_dependency 'rubocop-rspec', '~> 2.9.0'
|
21
|
-
s.add_development_dependency 'rspec', '~> 3.11.0'
|
22
21
|
|
23
22
|
s.add_runtime_dependency 'highline', '~> 2.0.3'
|
24
23
|
s.add_runtime_dependency 'thor', '~> 1.2.1'
|
data/spec/ruby_raider_spec.rb
CHANGED
@@ -155,7 +155,7 @@ describe RubyRaider do
|
|
155
155
|
|
156
156
|
context 'updates the config file' do
|
157
157
|
before(:all) do
|
158
|
-
CommonGenerator.new(%w[rspec
|
158
|
+
CommonGenerator.new(%w[rspec selenium test]).invoke(:generate_config_file)
|
159
159
|
FileUtils.cp_lr('test/config', './')
|
160
160
|
end
|
161
161
|
|
@@ -178,4 +178,36 @@ describe RubyRaider do
|
|
178
178
|
end
|
179
179
|
end
|
180
180
|
end
|
181
|
+
|
182
|
+
context 'scaffolding' do
|
183
|
+
before(:all) do
|
184
|
+
CommonGenerator.new(%w[rspec selenium test]).invoke(:generate_config_file)
|
185
|
+
FileUtils.cp_lr('test/config', './')
|
186
|
+
end
|
187
|
+
|
188
|
+
context 'with a spec folder' do
|
189
|
+
it 'scaffolds for rspec' do
|
190
|
+
raider.new.invoke(:scaffold, nil, %W[#{name}])
|
191
|
+
expect(Pathname.new("page_objects/pages/#{name}_page.rb")).to be_file
|
192
|
+
expect(Pathname.new("spec/#{name}_spec.rb")).to be_file
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
context 'with a features folder' do
|
197
|
+
it 'scaffolds for cucumber' do
|
198
|
+
FileUtils.mkdir 'features'
|
199
|
+
raider.new.invoke(:scaffold, nil, %W[#{name}])
|
200
|
+
expect(Pathname.new("page_objects/pages/#{name}_page.rb")).to be_file
|
201
|
+
expect(Pathname.new("features/#{name}.feature")).to be_file
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
after(:all) do
|
206
|
+
folders = %w[test config page_objects features]
|
207
|
+
folders.each do |folder|
|
208
|
+
FileUtils.rm_rf(folder)
|
209
|
+
end
|
210
|
+
FileUtils.rm('spec/test_spec.rb') if Pathname.new('spec/test_spec.rb').exist?
|
211
|
+
end
|
212
|
+
end
|
181
213
|
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.3.
|
4
|
+
version: 0.3.3
|
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-06-
|
11
|
+
date: 2022-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -39,47 +39,47 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 6.1.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 3.11.0
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 3.11.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name: rubocop
|
56
|
+
name: rubocop
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: '1.27'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: '1.27'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name: rspec
|
70
|
+
name: rubocop-rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 2.9.0
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 2.9.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: highline
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|