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.
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