ruby_raider 0.1.5 → 0.1.9
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/.gitignore +2 -1
- data/lib/generators/files/automation_file_generator.rb +53 -129
- data/lib/generators/files/common_file_generator.rb +24 -148
- data/lib/generators/files/cucumber_file_generator.rb +22 -70
- data/lib/generators/files/file_generator.rb +7 -5
- data/lib/generators/files/helpers_file_generator.rb +51 -225
- data/lib/generators/files/rspec_file_generator.rb +20 -49
- data/lib/generators/menu_generator.rb +44 -29
- data/lib/generators/projects/cucumber_project_generator.rb +25 -15
- data/lib/generators/projects/project_generator.rb +21 -5
- data/lib/generators/projects/rspec_project_generator.rb +17 -11
- data/lib/generators/templates/automation/abstract_component_template.rb +22 -0
- data/lib/generators/templates/automation/abstract_page_template.rb +82 -0
- data/lib/generators/templates/automation/appium_settings_template.rb +16 -0
- data/lib/generators/templates/automation/component_template.rb +16 -0
- data/lib/generators/templates/automation/confirmation_page_template.rb +26 -0
- data/lib/generators/templates/automation/home_page_template.rb +26 -0
- data/lib/generators/templates/automation/login_page_template.rb +113 -0
- data/lib/generators/templates/common/config_template.rb +9 -0
- data/lib/generators/templates/common/gemfile_template.rb +52 -0
- data/lib/generators/templates/common/rake_file_template.rb +16 -0
- data/lib/generators/templates/common/read_me_template.rb +104 -0
- data/lib/generators/templates/cucumber/env_template.rb +38 -0
- data/lib/generators/templates/cucumber/example_feature_template.rb +15 -0
- data/lib/generators/templates/cucumber/example_steps_template.rb +21 -0
- data/lib/generators/templates/helpers/allure_helper_template.rb +47 -0
- data/lib/generators/templates/helpers/browser_helper_template.rb +26 -0
- data/lib/generators/templates/helpers/driver_helper_template.rb +54 -0
- data/lib/generators/templates/helpers/pom_helper_template.rb +25 -0
- data/lib/generators/templates/helpers/raider_helper_template.rb +27 -0
- data/lib/generators/templates/helpers/selenium_helper_template.rb +42 -0
- data/lib/generators/templates/helpers/spec_helper_template.rb +74 -0
- data/lib/generators/templates/helpers/watir_helper_template.rb +24 -0
- data/lib/generators/templates/rspec/base_spec_template.rb +13 -0
- data/lib/generators/templates/rspec/example_spec_template.rb +56 -0
- data/lib/generators/templates/template.rb +14 -0
- data/ruby_raider.gemspec +1 -1
- data/spec/automation_file_generator_spec.rb +48 -14
- data/spec/common_file_generator_spec.rb +12 -3
- data/spec/cucumber_file_generator_spec.rb +26 -0
- data/spec/cucumber_project_generator_spec.rb +60 -0
- data/spec/helpers_file_generator_spec.rb +58 -16
- data/spec/rspec_file_generator_spec.rb +11 -2
- data/spec/rspec_project_generator_spec.rb +55 -25
- data/spec/spec_helper.rb +2 -12
- metadata +30 -4
- data/spec/menu_generator_spec.rb +0 -8
@@ -0,0 +1,27 @@
|
|
1
|
+
require_relative '../template'
|
2
|
+
|
3
|
+
class RaiderHelperTemplate < Template
|
4
|
+
def require_spec_helper
|
5
|
+
"require_relative 'spec_helper'" if @framework == 'rspec'
|
6
|
+
end
|
7
|
+
|
8
|
+
def require_automation_helper
|
9
|
+
"require_relative '#{@automation}_helper'" if %w[selenium watir].include?(@automation)
|
10
|
+
end
|
11
|
+
|
12
|
+
def require_driver_helper
|
13
|
+
"require_relative '#{@automation == 'watir' ? 'browser_helper' : 'driver_helper'}'"
|
14
|
+
end
|
15
|
+
|
16
|
+
def body
|
17
|
+
<<~EOF
|
18
|
+
module Raider
|
19
|
+
#{require_spec_helper}
|
20
|
+
#{require_automation_helper}
|
21
|
+
require_relative 'pom_helper'
|
22
|
+
#{require_driver_helper}
|
23
|
+
require_relative 'allure_helper'
|
24
|
+
end
|
25
|
+
EOF
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require_relative '../template'
|
2
|
+
|
3
|
+
class SeleniumHelperTemplate < Template
|
4
|
+
def body
|
5
|
+
<<~EOF
|
6
|
+
require 'selenium-webdriver'
|
7
|
+
require_relative 'driver_helper'
|
8
|
+
|
9
|
+
module Raider
|
10
|
+
module SeleniumHelper
|
11
|
+
def click_when_present
|
12
|
+
# This is an example of an implicit wait in selenium
|
13
|
+
wait = Selenium::WebDriver::Wait.new(timeout: 15)
|
14
|
+
wait.until { present? }
|
15
|
+
click
|
16
|
+
end
|
17
|
+
|
18
|
+
def select_by(key, value)
|
19
|
+
# Creates new Select object to use the select by method
|
20
|
+
dropdown = Selenium::WebDriver::Support::Select.new self
|
21
|
+
dropdown.select_by(key, value)
|
22
|
+
end
|
23
|
+
|
24
|
+
def hover
|
25
|
+
# Using actions to move the mouse over an element
|
26
|
+
DriverHelper.driver.action.move_to(self).perform
|
27
|
+
end
|
28
|
+
|
29
|
+
# How to perform right click through the context click method
|
30
|
+
def right_click
|
31
|
+
DriverHelper.driver.action.context_click(self).perform
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# Here we are opening the selenium class and adding our custom method
|
36
|
+
class Selenium::WebDriver::Element
|
37
|
+
include SeleniumHelper
|
38
|
+
end
|
39
|
+
end
|
40
|
+
EOF
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require_relative '../template'
|
2
|
+
|
3
|
+
class SpecHelperTemplate < Template
|
4
|
+
def require_driver
|
5
|
+
"require_relative '#{@automation == 'watir' ? 'browser_helper' : 'driver_helper'}'"
|
6
|
+
end
|
7
|
+
|
8
|
+
def select_helper
|
9
|
+
@automation == 'watir' ? 'BrowserHelper.new_browser' : 'DriverHelper.new_driver'
|
10
|
+
end
|
11
|
+
|
12
|
+
def before_configuration
|
13
|
+
driver_setup = if %w[selenium watir].include?(@automation)
|
14
|
+
select_helper
|
15
|
+
else
|
16
|
+
<<-EOF.chomp
|
17
|
+
#{select_helper}
|
18
|
+
DriverHelper.driver.start_driver
|
19
|
+
EOF
|
20
|
+
end
|
21
|
+
|
22
|
+
<<-EOF.chomp
|
23
|
+
|
24
|
+
config.before(:each) do
|
25
|
+
#{driver_setup}
|
26
|
+
end
|
27
|
+
EOF
|
28
|
+
end
|
29
|
+
|
30
|
+
def quit_driver
|
31
|
+
case @automation
|
32
|
+
when 'selenium'
|
33
|
+
'DriverHelper.driver.quit'
|
34
|
+
when 'watir'
|
35
|
+
'BrowserHelper.browser.quit'
|
36
|
+
else
|
37
|
+
'DriverHelper.driver.quit_driver'
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def save_screenshot
|
42
|
+
driver = @automation == 'watir' ? 'browser' : 'driver'
|
43
|
+
"#{driver}.save_screenshot(\"allure-results/screenshots/\#{example_name}.png\") if status == :failed"
|
44
|
+
end
|
45
|
+
|
46
|
+
def body
|
47
|
+
<<~EOF
|
48
|
+
require 'active_support/all'
|
49
|
+
require 'rspec'
|
50
|
+
require_relative 'allure_helper'
|
51
|
+
#{require_driver}
|
52
|
+
|
53
|
+
module Raider
|
54
|
+
module SpecHelper
|
55
|
+
|
56
|
+
AllureHelper.configure
|
57
|
+
|
58
|
+
RSpec.configure do |config|
|
59
|
+
config.formatter = AllureHelper.formatter
|
60
|
+
#{before_configuration}
|
61
|
+
|
62
|
+
config.after(:each) do
|
63
|
+
example_name = self.class.descendant_filtered_examples.first.description
|
64
|
+
status = self.class.descendant_filtered_examples.first.execution_result.status
|
65
|
+
#{save_screenshot}
|
66
|
+
AllureHelper.add_screenshot example_name if status == :failed
|
67
|
+
#{quit_driver}
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
EOF
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require_relative '../template'
|
2
|
+
|
3
|
+
class WatirHelperTemplate < Template
|
4
|
+
def body
|
5
|
+
<<~EOF
|
6
|
+
require 'watir'
|
7
|
+
|
8
|
+
module Raider
|
9
|
+
module WatirHelper
|
10
|
+
refine Watir::Element do
|
11
|
+
def click_when_present
|
12
|
+
wait_until_present
|
13
|
+
self.click
|
14
|
+
end
|
15
|
+
|
16
|
+
def wait_until_present
|
17
|
+
self.wait_until(&:present?)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
EOF
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require_relative '../template'
|
2
|
+
|
3
|
+
class ExampleSpecTemplate < Template
|
4
|
+
def examples
|
5
|
+
if %w[selenium watir].include? @automation
|
6
|
+
<<-EOF.chomp
|
7
|
+
describe 'Login' do
|
8
|
+
before(:each) do
|
9
|
+
LoginPage.visit
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'can login with valid credentials' do
|
13
|
+
LoginPage.login('aguspe', '12341234')
|
14
|
+
expect(LoginPage.header.customer_name).to eq 'Welcome back Agustin'
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'cannot login with wrong credentials' do
|
18
|
+
LoginPage.login('aguspe', 'wrongPassword')
|
19
|
+
expect(LoginPage.header.customer_name).to be_empty
|
20
|
+
end
|
21
|
+
end
|
22
|
+
EOF
|
23
|
+
else
|
24
|
+
<<-EOF.chomp
|
25
|
+
describe 'Login' do
|
26
|
+
it 'Login with valid credentials' do
|
27
|
+
HomePage.go_to_login
|
28
|
+
LoginPage.login('alice', 'mypassword')
|
29
|
+
expect(ConfirmationPage.login_message).to eq 'You are logged in as alice'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
EOF
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def requirements
|
37
|
+
unless %w[selenium watir].include? @automation
|
38
|
+
<<~EOF.chomp
|
39
|
+
require_relative '../page_objects/pages/confirmation_page'
|
40
|
+
require_relative '../page_objects/pages/home_page'
|
41
|
+
EOF
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def body
|
46
|
+
<<~EOF
|
47
|
+
#{requirements}
|
48
|
+
require_relative 'base_spec'
|
49
|
+
require_relative '../page_objects/pages/login_page'
|
50
|
+
|
51
|
+
class LoginSpec < BaseSpec
|
52
|
+
#{examples}
|
53
|
+
end
|
54
|
+
EOF
|
55
|
+
end
|
56
|
+
end
|
data/ruby_raider.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'ruby_raider'
|
3
|
-
s.version = '0.1.
|
3
|
+
s.version = '0.1.9'
|
4
4
|
s.summary = 'A gem to make setup and start of UI automation projects easier'
|
5
5
|
s.description = 'This gem contents everything you need to start doing web automation in one simple package'
|
6
6
|
s.authors = ['Agustin Pequeno']
|
@@ -2,24 +2,58 @@ require_relative '../lib/generators/files/automation_file_generator'
|
|
2
2
|
require_relative 'spec_helper'
|
3
3
|
|
4
4
|
describe RubyRaider::AutomationFileGenerator do
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
context 'On a web project' do
|
6
|
+
before(:all) do
|
7
|
+
@name = 'Rspec-watir-1'
|
8
|
+
RubyRaider::RspecProjectGenerator.generate_rspec_project('watir', @name)
|
9
|
+
end
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
-
|
11
|
+
it 'creates a login page file' do
|
12
|
+
expect(File.exist?("#{@name}/page_objects/pages/login_page.rb")).to be_truthy
|
13
|
+
end
|
12
14
|
|
13
|
-
|
14
|
-
|
15
|
-
|
15
|
+
it 'creates an abstract page file' do
|
16
|
+
expect(File.exist?("#{@name}/page_objects/abstract/abstract_page.rb")).to be_truthy
|
17
|
+
end
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
19
|
+
it 'creates an abstract component file' do
|
20
|
+
expect(File.exist?("#{@name}/page_objects/abstract/abstract_component.rb")).to be_truthy
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'creates a component file' do
|
24
|
+
expect(File.exist?("#{@name}/page_objects/components/header_component.rb")).to be_truthy
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'creates a gemfile file' do
|
28
|
+
expect(File.exist?("#{@name}/Gemfile")).to be_truthy
|
29
|
+
end
|
30
|
+
|
31
|
+
after(:all) do
|
32
|
+
FileUtils.rm_rf(@name)
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'On a mobile project' do
|
36
|
+
before(:all) do
|
37
|
+
@name = 'Rspec-appium-ios'
|
38
|
+
RubyRaider::RspecProjectGenerator.generate_rspec_project('appium_ios', @name)
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'creates a login page file' do
|
42
|
+
expect(File.exist?("#{@name}/page_objects/pages/home_page.rb")).to be_truthy
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'creates a login page file' do
|
46
|
+
expect(File.exist?("#{@name}/page_objects/pages/confirmation_page.rb")).to be_truthy
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'creates a login page file' do
|
50
|
+
expect(File.exist?("#{@name}/appium.txt")).to be_truthy
|
51
|
+
end
|
20
52
|
|
21
|
-
|
22
|
-
|
53
|
+
after(:all) do
|
54
|
+
FileUtils.rm_rf(@name)
|
55
|
+
end
|
56
|
+
end
|
23
57
|
end
|
24
58
|
end
|
25
59
|
|
@@ -2,16 +2,25 @@ require_relative '../lib/generators/files/common_file_generator'
|
|
2
2
|
require_relative 'spec_helper'
|
3
3
|
|
4
4
|
describe RubyRaider::CommonFileGenerator do
|
5
|
+
before(:all) do
|
6
|
+
@name = 'Cucumber-watir-1'
|
7
|
+
RubyRaider::CucumberProjectGenerator.generate_cucumber_project('watir', @name)
|
8
|
+
end
|
9
|
+
|
5
10
|
it 'creates a config file' do
|
6
|
-
expect(File.exist?("#{@
|
11
|
+
expect(File.exist?("#{@name}/config/config.yml")).to be_truthy
|
7
12
|
end
|
8
13
|
|
9
14
|
it 'creates a rake file' do
|
10
|
-
expect(File.exist?("#{@
|
15
|
+
expect(File.exist?("#{@name}/Rakefile")).to be_truthy
|
11
16
|
end
|
12
17
|
|
13
18
|
it 'creates a readMe file' do
|
14
|
-
expect(File.exist?("#{@
|
19
|
+
expect(File.exist?("#{@name}/Readme.md")).to be_truthy
|
20
|
+
end
|
21
|
+
|
22
|
+
after(:all) do
|
23
|
+
FileUtils.rm_rf(@name)
|
15
24
|
end
|
16
25
|
end
|
17
26
|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative '../lib/generators/files/rspec_file_generator'
|
2
|
+
require_relative 'spec_helper'
|
3
|
+
|
4
|
+
describe RubyRaider::RspecFileGenerator do
|
5
|
+
before(:all) do
|
6
|
+
@name = 'Cucumber-watir-2'
|
7
|
+
RubyRaider::CucumberProjectGenerator.generate_cucumber_project('watir', @name)
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'creates a feature file' do
|
11
|
+
expect(File.exist?("#{@name}/features/login.feature")).to be_truthy
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'creates a step definitions file' do
|
15
|
+
expect(File.exist?("#{@name}/features/step_definitions/login_steps.rb")).to be_truthy
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'creates an env file' do
|
19
|
+
expect(File.exist?("#{@name}/features/support/env.rb")).to be_truthy
|
20
|
+
end
|
21
|
+
|
22
|
+
after(:all) do
|
23
|
+
FileUtils.rm_rf(@name)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require_relative 'spec_helper'
|
2
|
+
|
3
|
+
describe RubyRaider::CucumberProjectGenerator do
|
4
|
+
before(:all) do
|
5
|
+
@name = 'Cucumber'
|
6
|
+
RubyRaider::CucumberProjectGenerator.generate_cucumber_project('selenium', @name)
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'creates a project folder' do
|
10
|
+
expect(Dir.exist?(@name)).to be_truthy
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'creates a features folder' do
|
14
|
+
expect(Dir.exist?("#{@name}/features")).to be_truthy
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'creates a config folder' do
|
18
|
+
expect(Dir.exist?("#{@name}/config")).to be_truthy
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'creates a page_objects object folder' do
|
22
|
+
expect(Dir.exist?("#{@name}/page_objects")).to be_truthy
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'creates an allure results folder' do
|
26
|
+
expect(Dir.exist?("#{@name}/allure-results")).to be_truthy
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'creates a step definitions folder' do
|
30
|
+
expect(Dir.exist?("#{@name}/features/step_definitions")).to be_truthy
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'creates a support folder' do
|
34
|
+
expect(Dir.exist?("#{@name}/features/support")).to be_truthy
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'creates a helpers folder' do
|
38
|
+
expect(Dir.exist?("#{@name}/features/support/helpers")).to be_truthy
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'creates an abstract folder' do
|
42
|
+
expect(Dir.exist?("#{@name}/page_objects/abstract")).to be_truthy
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'creates a pages folder' do
|
46
|
+
expect(Dir.exist?("#{@name}/page_objects/pages")).to be_truthy
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'creates a components folder' do
|
50
|
+
expect(Dir.exist?("#{@name}/page_objects/components")).to be_truthy
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'creates a screenshot folder' do
|
54
|
+
expect(Dir.exist?("#{@name}/allure-results/screenshots")).to be_truthy
|
55
|
+
end
|
56
|
+
|
57
|
+
after(:all) do
|
58
|
+
FileUtils.rm_rf(@name)
|
59
|
+
end
|
60
|
+
end
|
@@ -2,28 +2,70 @@ require_relative '../lib/generators/files/helpers_file_generator'
|
|
2
2
|
require_relative 'spec_helper'
|
3
3
|
|
4
4
|
describe RubyRaider::HelpersFileGenerator do
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
context 'When the users selects rspec' do
|
6
|
+
before(:all) do
|
7
|
+
@name = 'Rspec-watir-2'
|
8
|
+
RubyRaider::RspecProjectGenerator.generate_rspec_project('selenium', @name)
|
9
|
+
end
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
-
|
11
|
+
it 'creates a raider file' do
|
12
|
+
expect(File.exist?("#{@name}/helpers/raider.rb")).to be_truthy
|
13
|
+
end
|
12
14
|
|
13
|
-
|
14
|
-
|
15
|
-
|
15
|
+
it 'creates an allure helper file' do
|
16
|
+
expect(File.exist?("#{@name}/helpers/allure_helper.rb")).to be_truthy
|
17
|
+
end
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
19
|
+
it 'creates a driver helper file', :watir do
|
20
|
+
expect(File.exist?("#{@name}/helpers/driver_helper.rb")).to be_truthy
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'creates a pom helper file' do
|
24
|
+
expect(File.exist?("#{@name}/helpers/pom_helper.rb")).to be_truthy
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'creates a spec helper file' do
|
28
|
+
expect(File.exist?("#{@name}/helpers/spec_helper.rb")).to be_truthy
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'creates a watir helper file' do
|
32
|
+
expect(File.exist?("#{@name}/helpers/allure_helper.rb")).to be_truthy
|
33
|
+
end
|
20
34
|
|
21
|
-
|
22
|
-
|
35
|
+
after(:all) do
|
36
|
+
FileUtils.rm_rf(@name)
|
37
|
+
end
|
23
38
|
end
|
24
39
|
|
25
|
-
|
26
|
-
|
40
|
+
context 'when the user selects cucumber' do
|
41
|
+
before(:all) do
|
42
|
+
@name = 'Cucumber-watir-3'
|
43
|
+
RubyRaider::CucumberProjectGenerator.generate_cucumber_project('watir', @name)
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'creates a raider file' do
|
47
|
+
expect(File.exist?("#{@name}/features/support/helpers/raider.rb")).to be_truthy
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'creates an allure helper file' do
|
51
|
+
expect(File.exist?("#{@name}/features/support/helpers/allure_helper.rb")).to be_truthy
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'creates a browser helper file', :watir do
|
55
|
+
expect(File.exist?("#{@name}/features/support/helpers/browser_helper.rb")).to be_truthy
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'creates a pom helper file' do
|
59
|
+
expect(File.exist?("#{@name}/features/support/helpers/pom_helper.rb")).to be_truthy
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'creates a watir helper file' do
|
63
|
+
expect(File.exist?("#{@name}/features/support/helpers/allure_helper.rb")).to be_truthy
|
64
|
+
end
|
65
|
+
|
66
|
+
after(:all) do
|
67
|
+
FileUtils.rm_rf(@name)
|
68
|
+
end
|
27
69
|
end
|
28
70
|
end
|
29
71
|
|
@@ -2,11 +2,20 @@ require_relative '../lib/generators/files/rspec_file_generator'
|
|
2
2
|
require_relative 'spec_helper'
|
3
3
|
|
4
4
|
describe RubyRaider::RspecFileGenerator do
|
5
|
+
before(:all) do
|
6
|
+
@name = 'Rspec-watir-3'
|
7
|
+
RubyRaider::RspecProjectGenerator.generate_rspec_project('watir', @name)
|
8
|
+
end
|
9
|
+
|
5
10
|
it 'creates a spec file' do
|
6
|
-
expect(File.exist?("#{@
|
11
|
+
expect(File.exist?("#{@name}/spec/login_page_spec.rb")).to be_truthy
|
7
12
|
end
|
8
13
|
|
9
14
|
it 'creates the base spec file' do
|
10
|
-
expect(File.exist?("#{@
|
15
|
+
expect(File.exist?("#{@name}/spec/base_spec.rb")).to be_truthy
|
16
|
+
end
|
17
|
+
|
18
|
+
after(:all) do
|
19
|
+
FileUtils.rm_rf(@name)
|
11
20
|
end
|
12
21
|
end
|
@@ -1,39 +1,69 @@
|
|
1
1
|
require_relative 'spec_helper'
|
2
2
|
|
3
3
|
describe RubyRaider::RspecProjectGenerator do
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
context 'On a web project' do
|
5
|
+
before(:all) do
|
6
|
+
@name = 'Rspec'
|
7
|
+
RubyRaider::RspecProjectGenerator.generate_rspec_project('selenium', @name)
|
8
|
+
end
|
7
9
|
|
8
|
-
|
9
|
-
|
10
|
-
|
10
|
+
it 'creates a project folder' do
|
11
|
+
expect(Dir.exist?(@name)).to be_truthy
|
12
|
+
end
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
-
|
14
|
+
it 'creates a spec folder' do
|
15
|
+
expect(Dir.exist?("#{@name}/spec")).to be_truthy
|
16
|
+
end
|
15
17
|
|
16
|
-
|
17
|
-
|
18
|
-
|
18
|
+
it 'creates a page objects folder' do
|
19
|
+
expect(Dir.exist?("#{@name}/page_objects")).to be_truthy
|
20
|
+
end
|
19
21
|
|
20
|
-
|
21
|
-
|
22
|
-
|
22
|
+
it 'creates an abstract page object folder' do
|
23
|
+
expect(Dir.exist?("#{@name}/page_objects/abstract")).to be_truthy
|
24
|
+
end
|
23
25
|
|
24
|
-
|
25
|
-
|
26
|
-
|
26
|
+
it 'creates a pages folder' do
|
27
|
+
expect(Dir.exist?("#{@name}/page_objects/pages")).to be_truthy
|
28
|
+
end
|
27
29
|
|
28
|
-
|
29
|
-
|
30
|
-
|
30
|
+
it 'creates a components folder' do
|
31
|
+
expect(Dir.exist?("#{@name}/page_objects/components")).to be_truthy
|
32
|
+
end
|
31
33
|
|
32
|
-
|
33
|
-
|
34
|
+
it 'creates a helper folder' do
|
35
|
+
expect(Dir.exist?("#{@name}/helpers")).to be_truthy
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'creates a data folder' do
|
39
|
+
expect(Dir.exist?("#{@name}/data")).to be_truthy
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'creates a config folder' do
|
43
|
+
expect(Dir.exist?("#{@name}/config")).to be_truthy
|
44
|
+
end
|
45
|
+
|
46
|
+
after(:all) do
|
47
|
+
FileUtils.rm_rf(@name)
|
48
|
+
end
|
34
49
|
end
|
35
50
|
|
36
|
-
|
37
|
-
|
51
|
+
context 'On a mobile project' do
|
52
|
+
before(:all) do
|
53
|
+
@name = 'appium-ios-1'
|
54
|
+
RubyRaider::RspecProjectGenerator.generate_rspec_project('appium_ios', @name)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "doesn't creates a config folder" do
|
58
|
+
expect(Dir.exist?("#{@name}/config")).to be_falsey
|
59
|
+
end
|
60
|
+
|
61
|
+
it "doesn't creates a components folder" do
|
62
|
+
expect(Dir.exist?("#{@name}/page_objects/components")).to be_falsey
|
63
|
+
end
|
64
|
+
|
65
|
+
after(:all) do
|
66
|
+
FileUtils.rm_rf(@name)
|
67
|
+
end
|
38
68
|
end
|
39
69
|
end
|