ruby_raider 0.1.5 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/lib/generators/files/automation_file_generator.rb +53 -129
  4. data/lib/generators/files/common_file_generator.rb +24 -148
  5. data/lib/generators/files/cucumber_file_generator.rb +22 -70
  6. data/lib/generators/files/file_generator.rb +7 -5
  7. data/lib/generators/files/helpers_file_generator.rb +51 -225
  8. data/lib/generators/files/rspec_file_generator.rb +20 -49
  9. data/lib/generators/menu_generator.rb +44 -29
  10. data/lib/generators/projects/cucumber_project_generator.rb +25 -15
  11. data/lib/generators/projects/project_generator.rb +21 -5
  12. data/lib/generators/projects/rspec_project_generator.rb +17 -11
  13. data/lib/generators/templates/automation/abstract_component_template.rb +22 -0
  14. data/lib/generators/templates/automation/abstract_page_template.rb +82 -0
  15. data/lib/generators/templates/automation/appium_settings_template.rb +16 -0
  16. data/lib/generators/templates/automation/component_template.rb +16 -0
  17. data/lib/generators/templates/automation/confirmation_page_template.rb +26 -0
  18. data/lib/generators/templates/automation/home_page_template.rb +26 -0
  19. data/lib/generators/templates/automation/login_page_template.rb +113 -0
  20. data/lib/generators/templates/common/config_template.rb +9 -0
  21. data/lib/generators/templates/common/gemfile_template.rb +52 -0
  22. data/lib/generators/templates/common/rake_file_template.rb +16 -0
  23. data/lib/generators/templates/common/read_me_template.rb +104 -0
  24. data/lib/generators/templates/cucumber/env_template.rb +38 -0
  25. data/lib/generators/templates/cucumber/example_feature_template.rb +15 -0
  26. data/lib/generators/templates/cucumber/example_steps_template.rb +21 -0
  27. data/lib/generators/templates/helpers/allure_helper_template.rb +47 -0
  28. data/lib/generators/templates/helpers/browser_helper_template.rb +26 -0
  29. data/lib/generators/templates/helpers/driver_helper_template.rb +54 -0
  30. data/lib/generators/templates/helpers/pom_helper_template.rb +25 -0
  31. data/lib/generators/templates/helpers/raider_helper_template.rb +27 -0
  32. data/lib/generators/templates/helpers/selenium_helper_template.rb +42 -0
  33. data/lib/generators/templates/helpers/spec_helper_template.rb +74 -0
  34. data/lib/generators/templates/helpers/watir_helper_template.rb +24 -0
  35. data/lib/generators/templates/rspec/base_spec_template.rb +13 -0
  36. data/lib/generators/templates/rspec/example_spec_template.rb +56 -0
  37. data/lib/generators/templates/template.rb +14 -0
  38. data/ruby_raider.gemspec +1 -1
  39. data/spec/automation_file_generator_spec.rb +48 -14
  40. data/spec/common_file_generator_spec.rb +12 -3
  41. data/spec/cucumber_file_generator_spec.rb +26 -0
  42. data/spec/cucumber_project_generator_spec.rb +60 -0
  43. data/spec/helpers_file_generator_spec.rb +58 -16
  44. data/spec/rspec_file_generator_spec.rb +11 -2
  45. data/spec/rspec_project_generator_spec.rb +55 -25
  46. data/spec/spec_helper.rb +2 -12
  47. metadata +30 -4
  48. 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,13 @@
1
+ require_relative '../template'
2
+
3
+ class BaseSpecTemplate < Template
4
+ def body
5
+ <<~EOF
6
+ require_relative '../helpers/raider'
7
+
8
+ class BaseSpec
9
+ include Raider::SpecHelper
10
+ end
11
+ EOF
12
+ end
13
+ 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
@@ -0,0 +1,14 @@
1
+ require 'erb'
2
+
3
+ class Template
4
+ def initialize(args = {})
5
+ @automation = args[:automation]
6
+ @name = args[:name]
7
+ @framework = args[:framework]
8
+ end
9
+
10
+ def parsed_body
11
+ parsed_body = ERB.new body
12
+ parsed_body.result(binding)
13
+ end
14
+ 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.5'
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
- it 'creates a login page file' do
6
- expect(File.exist?("#{@project_name}/page_objects/pages/login_page.rb")).to be_truthy
7
- end
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
- it 'creates an abstract page file' do
10
- expect(File.exist?("#{@project_name}/page_objects/abstract/abstract_page.rb")).to be_truthy
11
- end
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
- it 'creates an abstract component file' do
14
- expect(File.exist?("#{@project_name}/page_objects/abstract/abstract_component.rb")).to be_truthy
15
- end
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
- it 'creates a component file' do
18
- expect(File.exist?("#{@project_name}/page_objects/components/header_component.rb")).to be_truthy
19
- end
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
- it 'creates a gemfile file' do
22
- expect(File.exist?("#{@project_name}/Gemfile")).to be_truthy
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?("#{@project_name}/config/config.yml")).to be_truthy
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?("#{@project_name}/Rakefile")).to be_truthy
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?("#{@project_name}/Readme.md")).to be_truthy
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
- it 'creates a raider file' do
6
- expect(File.exist?("#{@project_name}/helpers/raider.rb")).to be_truthy
7
- end
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
- it 'creates an allure helper file' do
10
- expect(File.exist?("#{@project_name}/helpers/allure_helper.rb")).to be_truthy
11
- end
11
+ it 'creates a raider file' do
12
+ expect(File.exist?("#{@name}/helpers/raider.rb")).to be_truthy
13
+ end
12
14
 
13
- it 'creates a browser helper file' do
14
- expect(File.exist?("#{@project_name}/helpers/browser_helper.rb")).to be_truthy
15
- end
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
- it 'creates a pom helper file' do
18
- expect(File.exist?("#{@project_name}/helpers/pom_helper.rb")).to be_truthy
19
- end
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
- it 'creates a spec helper file' do
22
- expect(File.exist?("#{@project_name}/helpers/spec_helper.rb")).to be_truthy
35
+ after(:all) do
36
+ FileUtils.rm_rf(@name)
37
+ end
23
38
  end
24
39
 
25
- it 'creates a watir helper file' do
26
- expect(File.exist?("#{@project_name}/helpers/allure_helper.rb")).to be_truthy
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?("#{@project_name}/spec/login_page_spec.rb")).to be_truthy
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?("#{@project_name}/spec/base_spec.rb")).to be_truthy
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
- it 'creates a project folder' do
5
- expect(Dir.exist?(@project_name)).to be_truthy
6
- end
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
- it 'creates a spec folder' do
9
- expect(Dir.exist?("#{@project_name}/spec")).to be_truthy
10
- end
10
+ it 'creates a project folder' do
11
+ expect(Dir.exist?(@name)).to be_truthy
12
+ end
11
13
 
12
- it 'creates a page objects folder' do
13
- expect(Dir.exist?("#{@project_name}/page_objects")).to be_truthy
14
- end
14
+ it 'creates a spec folder' do
15
+ expect(Dir.exist?("#{@name}/spec")).to be_truthy
16
+ end
15
17
 
16
- it 'creates an abstract page object folder' do
17
- expect(Dir.exist?("#{@project_name}/page_objects/abstract")).to be_truthy
18
- end
18
+ it 'creates a page objects folder' do
19
+ expect(Dir.exist?("#{@name}/page_objects")).to be_truthy
20
+ end
19
21
 
20
- it 'creates a pages folder' do
21
- expect(Dir.exist?("#{@project_name}/page_objects/pages")).to be_truthy
22
- end
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
- it 'creates a components folder' do
25
- expect(Dir.exist?("#{@project_name}/page_objects/components")).to be_truthy
26
- end
26
+ it 'creates a pages folder' do
27
+ expect(Dir.exist?("#{@name}/page_objects/pages")).to be_truthy
28
+ end
27
29
 
28
- it 'creates a helper folder' do
29
- expect(Dir.exist?("#{@project_name}/helpers")).to be_truthy
30
- end
30
+ it 'creates a components folder' do
31
+ expect(Dir.exist?("#{@name}/page_objects/components")).to be_truthy
32
+ end
31
33
 
32
- it 'creates a data folder' do
33
- expect(Dir.exist?("#{@project_name}/data")).to be_truthy
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
- it 'creates a config folder' do
37
- expect(Dir.exist?("#{@project_name}/config")).to be_truthy
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