ruby_raider 0.1.7 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/.reek.yml +3 -0
  3. data/.rubocop.yml +6 -0
  4. data/Rakefile +2 -0
  5. data/bin/raider +1 -0
  6. data/lib/generators/automation_generator.rb +43 -0
  7. data/lib/generators/common_generator.rb +31 -0
  8. data/lib/generators/cucumber_generator.rb +19 -0
  9. data/lib/generators/generator.rb +16 -0
  10. data/lib/generators/helper_generator.rb +48 -0
  11. data/lib/generators/menu_generator.rb +59 -31
  12. data/lib/generators/rspec_generator.rb +16 -0
  13. data/lib/generators/templates/automation/abstract_component.tt +7 -0
  14. data/lib/generators/templates/automation/abstract_page.tt +10 -0
  15. data/lib/generators/templates/automation/appium_settings.tt +8 -0
  16. data/lib/generators/templates/automation/component.tt +9 -0
  17. data/lib/generators/templates/automation/confirmation_page.tt +19 -0
  18. data/lib/generators/templates/automation/home_page.tt +20 -0
  19. data/lib/generators/templates/automation/login_page.tt +8 -0
  20. data/lib/generators/templates/automation/partials/appium_login.tt +28 -0
  21. data/lib/generators/templates/automation/partials/driver_selector.tt +9 -0
  22. data/lib/generators/templates/automation/partials/element.tt +5 -0
  23. data/lib/generators/templates/automation/partials/require_raider.tt +5 -0
  24. data/lib/generators/templates/automation/partials/selenium_login.tt +40 -0
  25. data/lib/generators/templates/automation/partials/url_methods.tt +13 -0
  26. data/lib/generators/templates/automation/partials/visit_method.tt +9 -0
  27. data/lib/generators/templates/automation/partials/watir_login.tt +41 -0
  28. data/lib/generators/templates/common/config.tt +1 -0
  29. data/lib/generators/templates/common/gemfile.tt +21 -0
  30. data/lib/generators/templates/common/partials/automation_gems.tt +10 -0
  31. data/lib/generators/templates/common/rakefile.tt +10 -0
  32. data/lib/generators/templates/common/read_me.tt +99 -0
  33. data/lib/generators/templates/cucumber/env.tt +8 -0
  34. data/lib/generators/templates/cucumber/feature.tt +6 -0
  35. data/lib/generators/templates/cucumber/partials/appium_env.tt +13 -0
  36. data/lib/generators/templates/cucumber/partials/mobile_steps.tt +17 -0
  37. data/lib/generators/templates/cucumber/partials/selenium_appium_env.tt +13 -0
  38. data/lib/generators/templates/cucumber/partials/watir_env.tt +13 -0
  39. data/lib/generators/templates/cucumber/partials/web_steps.tt +15 -0
  40. data/lib/generators/templates/cucumber/steps.tt +5 -0
  41. data/lib/generators/templates/helpers/allure_helper.tt +32 -0
  42. data/lib/generators/templates/helpers/browser_helper.tt +19 -0
  43. data/lib/generators/templates/helpers/driver_helper.tt +18 -0
  44. data/lib/generators/templates/helpers/partials/allure_imports.tt +5 -0
  45. data/lib/generators/templates/helpers/partials/allure_requirements.tt +6 -0
  46. data/lib/generators/templates/helpers/partials/driver_requirements.tt +14 -0
  47. data/lib/generators/templates/helpers/partials/new_driver.tt +11 -0
  48. data/lib/generators/templates/helpers/partials/quit_driver.tt +8 -0
  49. data/lib/generators/templates/helpers/partials/require_automation.tt +5 -0
  50. data/lib/generators/templates/helpers/partials/screenshot.tt +8 -0
  51. data/lib/generators/templates/helpers/pom_helper.tt +19 -0
  52. data/lib/generators/templates/helpers/raider_helper.tt +15 -0
  53. data/lib/generators/templates/helpers/selenium_helper.tt +36 -0
  54. data/lib/generators/templates/helpers/spec_helper.tt +37 -0
  55. data/lib/generators/templates/helpers/watir_helper.tt +16 -0
  56. data/lib/generators/templates/rspec/base_spec.tt +5 -0
  57. data/lib/generators/templates/rspec/spec.tt +37 -0
  58. data/lib/ruby_raider.rb +5 -4
  59. data/ruby_raider.gemspec +7 -1
  60. data/spec/automation_generator_spec.rb +192 -0
  61. data/spec/common_generator_spec.rb +141 -0
  62. data/spec/cucumber_generator_spec.rb +71 -0
  63. data/spec/helpers_generator_spec.rb +133 -0
  64. data/spec/rspec_generator_spec.rb +63 -0
  65. data/spec/spec_helper.rb +3 -3
  66. metadata +117 -41
  67. data/lib/generators/files/automation_file_generator.rb +0 -38
  68. data/lib/generators/files/common_file_generator.rb +0 -34
  69. data/lib/generators/files/cucumber_file_generator.rb +0 -33
  70. data/lib/generators/files/file_generator.rb +0 -11
  71. data/lib/generators/files/helpers_file_generator.rb +0 -63
  72. data/lib/generators/files/rspec_file_generator.rb +0 -28
  73. data/lib/generators/projects/cucumber_project_generator.rb +0 -26
  74. data/lib/generators/projects/project_generator.rb +0 -13
  75. data/lib/generators/projects/rspec_project_generator.rb +0 -22
  76. data/lib/generators/templates/automation/abstract_component_template.rb +0 -22
  77. data/lib/generators/templates/automation/abstract_page_template.rb +0 -48
  78. data/lib/generators/templates/automation/component_template.rb +0 -16
  79. data/lib/generators/templates/automation/page_template.rb +0 -51
  80. data/lib/generators/templates/common/config_template.rb +0 -9
  81. data/lib/generators/templates/common/gemfile_template.rb +0 -29
  82. data/lib/generators/templates/common/rake_file_template.rb +0 -16
  83. data/lib/generators/templates/common/read_me_template.rb +0 -104
  84. data/lib/generators/templates/cucumber/env_template.rb +0 -38
  85. data/lib/generators/templates/cucumber/example_feature_template.rb +0 -15
  86. data/lib/generators/templates/cucumber/example_steps_template.rb +0 -21
  87. data/lib/generators/templates/helpers/allure_helper_template.rb +0 -47
  88. data/lib/generators/templates/helpers/browser_helper_template.rb +0 -26
  89. data/lib/generators/templates/helpers/driver_helper_template.rb +0 -24
  90. data/lib/generators/templates/helpers/pom_helper_template.rb +0 -25
  91. data/lib/generators/templates/helpers/raider_helper_template.rb +0 -15
  92. data/lib/generators/templates/helpers/selenium_helper_template.rb +0 -42
  93. data/lib/generators/templates/helpers/spec_helper_template.rb +0 -35
  94. data/lib/generators/templates/helpers/watir_helper_template.rb +0 -24
  95. data/lib/generators/templates/rspec/base_spec_template.rb +0 -13
  96. data/lib/generators/templates/rspec/example_spec_template.rb +0 -33
  97. data/lib/generators/templates/template.rb +0 -14
  98. data/spec/automation_file_generator_spec.rb +0 -34
  99. data/spec/common_file_generator_spec.rb +0 -27
  100. data/spec/cucumber_file_generator_spec.rb +0 -26
  101. data/spec/cucumber_project_generator_spec.rb +0 -60
  102. data/spec/helpers_file_generator_spec.rb +0 -73
  103. data/spec/rspec_file_generator_spec.rb +0 -21
  104. data/spec/rspec_project_generator_spec.rb +0 -48
@@ -1,16 +0,0 @@
1
- require_relative '../template'
2
-
3
- class RakeFileTemplate < Template
4
- def body
5
- <<~EOF
6
- require 'yaml'
7
-
8
- desc 'Selects browser for automation run'
9
- task :select_browser, [:browser] do |_t, args|
10
- config = YAML.load_file('config/config.yml')
11
- config['browser'] = args.browser
12
- File.write('config/config.yml', config.to_yaml)
13
- end
14
- EOF
15
- end
16
- end
@@ -1,104 +0,0 @@
1
- require_relative '../template'
2
-
3
- class ReadMeTemplate < Template
4
- def body
5
- <<~EOF
6
- What is Raider?
7
- ===========
8
-
9
- Raider is a tool to make the setup and start of automation projects in ruby easier, with one command you are
10
- ready to go
11
-
12
- # Pre-requisites:
13
-
14
- Install RVM:
15
- https://rvm.io/rvm/install
16
-
17
- # How to use the framework:
18
-
19
- If you want to run all the tests from your terminal do:
20
- *rspec spec/*
21
-
22
- If you want to run all the tests in parallel do:
23
- *parallel_rspec spec/*
24
-
25
- # How are specs organized:
26
-
27
- We use 'context' as the highest grouping level to indicate in which part of the application we are as an example:
28
-
29
- *context 'On the login page'/*
30
-
31
- We use 'describe' from the user perspective to describe an action that the user can or cannot take:
32
-
33
- *describe 'A user can'/*
34
-
35
- or
36
-
37
- *describe 'A user cannot'/*
38
-
39
- This saves us repetition and forces us into an structure
40
-
41
- At last we use 'it' for the specific action the user can or cannot perform:
42
-
43
- it 'login with right credentials'
44
-
45
- If we group all of this together it will look like
46
-
47
- ```ruby
48
- context 'On the login page' do
49
- describe 'A user can' do
50
- it 'login with the right credentials' do
51
- end
52
- #{' '}
53
- end
54
- #{' '}
55
- describe 'A user cannot' do
56
- it 'login with the wrong credentials' do
57
- end
58
- end
59
- end
60
- ```
61
- #{' '}
62
- This is readed as 'On the login page a user can login with the right credentials' and 'On the login page a user cannot login with the wrong credentials'
63
-
64
- # How pages are organized:
65
-
66
- ```ruby#{' '}
67
- require_relative '../abstract/base_page'
68
-
69
- class MainPage < BasePage
70
-
71
- using Raider::WatirHelper
72
-
73
- def url(_page)
74
- '/'
75
- end
76
-
77
- # Actions
78
-
79
- def change_currency(currency)
80
- currency_dropdown.select currency
81
- end
82
-
83
- # Validations
84
-
85
- def validate_currency(currency)
86
- expect(currency_dropdown.include?(currency)).to be true
87
- end
88
-
89
- private
90
-
91
- # Elements
92
-
93
- def currency_dropdown
94
- browser.select(class: %w[dropdown-menu currency])
95
- end
96
- end
97
- ```
98
-
99
- Pages are organized in Actions (things a user can perform on the page), Validations (assertions), and Elements.
100
- Each page has to have a url define, and each page is using the module WatirHelper to add methods on runtime to the Watir elements
101
-
102
- EOF
103
- end
104
- end
@@ -1,38 +0,0 @@
1
- require_relative '../template'
2
-
3
- class EnvTemplate < Template
4
- def body
5
-
6
- if @automation == 'watir'
7
- helper = 'helpers/browser_helper'
8
- browser = 'Raider::BrowserHelper.new_browser'
9
- get_browser = 'browser = Raider::BrowserHelper.new_browser'
10
- screenshot = 'browser.screenshot.save("allure-results/screenshots/#{scenario.name}.png")'
11
- quit = 'browser.quit'
12
- else
13
- helper = 'helpers/driver_helper'
14
- browser = 'Raider::DriverHelper.new_driver'
15
- get_browser = 'driver = Raider::DriverHelper.driver'
16
- screenshot = 'driver.save_screenshot("allure-results/screenshots/#{scenario.name}.png")'
17
- quit = 'driver.quit'
18
- end
19
-
20
- <<~EOF
21
- require 'active_support/all'
22
- require_relative 'helpers/allure_helper'
23
- require_relative '#{helper}'
24
-
25
- Before do
26
- Raider::AllureHelper.configure
27
- #{browser}
28
- end
29
-
30
- After do |scenario|
31
- #{get_browser}
32
- #{screenshot}
33
- Raider::AllureHelper.add_screenshot(scenario.name)
34
- #{quit}
35
- end
36
- EOF
37
- end
38
- end
@@ -1,15 +0,0 @@
1
- require_relative '../template'
2
-
3
- class ExampleFeatureTemplate < Template
4
- def body
5
- <<~EOF
6
- Feature: Login Page
7
-
8
- Scenario: A user can login
9
- Given I'm a registered user on the login page
10
- When I login with my credentials
11
- Then I can see the main page
12
-
13
- EOF
14
- end
15
- end
@@ -1,21 +0,0 @@
1
- require_relative '../template'
2
-
3
- class ExampleStepsTemplate < Template
4
- def body
5
- <<~EOF
6
- require_relative '../../page_objects/pages/login_page'
7
-
8
- Given("I'm a registered user on the login page") do
9
- LoginPage.visit
10
- end
11
-
12
- When('I login with my credentials') do
13
- LoginPage.login('aguspe', '12341234')
14
- end
15
-
16
- When('I can see the main page') do
17
- expect(LoginPage.header.customer_name).to eq 'Welcome back Agustin'
18
- end
19
- EOF
20
- end
21
- end
@@ -1,47 +0,0 @@
1
- require_relative '../template'
2
-
3
- class AllureHelperTemplate < Template
4
- def body
5
- if @framework == 'cucumber'
6
- gems = "require 'allure-cucumber'"
7
- allure = 'AllureCucumber'
8
- else
9
- gems = "require 'allure-ruby-commons'
10
- require 'allure-rspec'"
11
- allure = 'AllureRspec'
12
- end
13
- <<~EOF
14
- #{gems}
15
-
16
- module Raider
17
- module AllureHelper
18
- class << self
19
-
20
- def configure
21
- #{allure}.configure do |config|
22
- config.results_directory = 'allure-results'
23
- config.clean_results_directory = true
24
- end
25
- end
26
-
27
- def add_screenshot(screenshot_name)
28
- Allure.add_attachment(
29
- name: name,
30
- source: "File.open(allure-results/screenshots/\#{screenshot_name}.png)",
31
- type: Allure::ContentType::PNG,
32
- test_case: true
33
- )
34
- end
35
-
36
- #{
37
- if @framework == 'rspec'
38
- 'def formatter
39
- AllureRspecFormatter
40
- end'
41
- end }
42
- end
43
- end
44
- end
45
- EOF
46
- end
47
- end
@@ -1,26 +0,0 @@
1
- require_relative '../template'
2
-
3
- class BrowserHelperTemplate < Template
4
- def body
5
- <<~EOF
6
- require 'yaml'
7
- require 'selenium-webdriver'
8
- require 'watir'
9
- require 'webdrivers'
10
-
11
- module Raider
12
- module BrowserHelper
13
- class << self
14
- attr_reader :browser
15
-
16
- def new_browser
17
- config = YAML.load_file('config/config.yml')
18
- @browser = Watir::Browser.new config['browser']
19
- end
20
- end
21
- end
22
- end
23
-
24
- EOF
25
- end
26
- end
@@ -1,24 +0,0 @@
1
- require_relative '../template'
2
-
3
- class DriverHelperTemplate < Template
4
- def body
5
- <<~EOF
6
- require 'selenium-webdriver'
7
- require 'watir'
8
- require 'webdrivers'
9
- require 'yaml'
10
-
11
- module Raider
12
- module DriverHelper
13
- class << self
14
- attr_reader :driver
15
-
16
- def new_driver
17
- @driver = Selenium::WebDriver.for :chrome
18
- end
19
- end
20
- end
21
- end
22
- EOF
23
- end
24
- end
@@ -1,25 +0,0 @@
1
- require_relative '../template'
2
-
3
- class PomHelperTemplate < Template
4
- def body
5
- <<~EOF
6
- module Raider
7
- module PomHelper
8
- def instance
9
- @instance ||= new
10
- end
11
-
12
- def method_missing(message, *args, &block)
13
- return super unless instance.respond_to?(message)
14
-
15
- instance.public_send(message, *args, &block)
16
- end
17
-
18
- def respond_to_missing?(method, *_args, &block)
19
- instance.respond_to?(method) || super
20
- end
21
- end
22
- end
23
- EOF
24
- end
25
- end
@@ -1,15 +0,0 @@
1
- require_relative '../template'
2
-
3
- class RaiderHelperTemplate < Template
4
- def body
5
- <<~EOF
6
- module Raider
7
- #{"require_relative 'spec_helper'" if @framework == 'rspec'}
8
- require_relative '#{@automation}_helper'
9
- require_relative 'pom_helper'
10
- require_relative '#{@automation == 'watir' ? 'browser_helper' : 'driver_helper'}'
11
- require_relative 'allure_helper'
12
- end
13
- EOF
14
- end
15
- end
@@ -1,42 +0,0 @@
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
@@ -1,35 +0,0 @@
1
- require_relative '../template'
2
-
3
- class SpecHelperTemplate < Template
4
- def body
5
- <<~EOF
6
- require 'active_support/all'
7
- require 'rspec'
8
- require_relative 'allure_helper'
9
- require_relative '#{@automation == 'watir' ? 'browser_helper' : 'driver_helper'}'
10
-
11
- module Raider
12
- module SpecHelper
13
-
14
- AllureHelper.configure
15
-
16
- RSpec.configure do |config|
17
- config.formatter = AllureHelper.formatter
18
- config.before(:each) do
19
- #{@automation == 'watir' ? 'BrowserHelper.new_browser' : 'DriverHelper.new_driver'}
20
- end
21
-
22
- config.after(:each) do
23
- #{@automation == 'watir' ? 'browser = BrowserHelper.browser' : 'driver = DriverHelper.driver'}
24
- example_name = self.class.descendant_filtered_examples.first.description
25
- status = self.class.descendant_filtered_examples.first.execution_result.status
26
- #{@automation == 'watir' ? 'browser' : 'driver'}.save_screenshot("allure-results/screenshots/#\{example_name}.png") if status == :failed
27
- AllureHelper.add_screenshot example_name if status == :failed
28
- #{@automation == 'watir' ? 'browser.quit' : 'driver.quit'}
29
- end
30
- end
31
- end
32
- end
33
- EOF
34
- end
35
- end
@@ -1,24 +0,0 @@
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
@@ -1,13 +0,0 @@
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
@@ -1,33 +0,0 @@
1
- require_relative '../template'
2
-
3
- class ExampleSpecTemplate < Template
4
- def body
5
- <<~EOF
6
- require_relative 'base_spec'
7
- require_relative '../page_objects/pages/login_page'
8
-
9
- class LoginSpec < BaseSpec
10
- context 'On the Login Page' do
11
-
12
- before(:each) do
13
- LoginPage.visit
14
- end
15
-
16
- describe 'A user can' do
17
- it 'login with the right credentials', :JIRA_123 do
18
- LoginPage.login('aguspe', '12341234')
19
- expect(LoginPage.header.customer_name).to eq 'Welcome back Agustin'
20
- end
21
- end
22
-
23
- describe 'A user cannot' do
24
- it 'login with the wrong credentials', :JIRA_123 do
25
- LoginPage.login('aguspe', 'wrongPassword')
26
- expect(LoginPage.header.customer_name).to be_empty
27
- end
28
- end
29
- end
30
- end
31
- EOF
32
- end
33
- end
@@ -1,14 +0,0 @@
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
@@ -1,34 +0,0 @@
1
- require_relative '../lib/generators/files/automation_file_generator'
2
- require_relative 'spec_helper'
3
-
4
- describe RubyRaider::AutomationFileGenerator do
5
- before(:all) do
6
- @name = 'Rspec-watir-1'
7
- RubyRaider::RspecProjectGenerator.generate_rspec_project(@name, automation: 'watir')
8
- end
9
-
10
- it 'creates a login page file' do
11
- expect(File.exist?("#{@name}/page_objects/pages/login_page.rb")).to be_truthy
12
- end
13
-
14
- it 'creates an abstract page file' do
15
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_page.rb")).to be_truthy
16
- end
17
-
18
- it 'creates an abstract component file' do
19
- expect(File.exist?("#{@name}/page_objects/abstract/abstract_component.rb")).to be_truthy
20
- end
21
-
22
- it 'creates a component file' do
23
- expect(File.exist?("#{@name}/page_objects/components/header_component.rb")).to be_truthy
24
- end
25
-
26
- it 'creates a gemfile file' do
27
- expect(File.exist?("#{@name}/Gemfile")).to be_truthy
28
- end
29
-
30
- after(:all) do
31
- FileUtils.rm_rf(@name)
32
- end
33
- end
34
-
@@ -1,27 +0,0 @@
1
- require_relative '../lib/generators/files/common_file_generator'
2
- require_relative 'spec_helper'
3
-
4
- describe RubyRaider::CommonFileGenerator do
5
- before(:all) do
6
- @name = 'Cucumber-watir-1'
7
- RubyRaider::CucumberProjectGenerator.generate_cucumber_project(@name, automation: 'watir')
8
- end
9
-
10
- it 'creates a config file' do
11
- expect(File.exist?("#{@name}/config/config.yml")).to be_truthy
12
- end
13
-
14
- it 'creates a rake file' do
15
- expect(File.exist?("#{@name}/Rakefile")).to be_truthy
16
- end
17
-
18
- it 'creates a readMe file' do
19
- expect(File.exist?("#{@name}/Readme.md")).to be_truthy
20
- end
21
-
22
- after(:all) do
23
- FileUtils.rm_rf(@name)
24
- end
25
- end
26
-
27
-
@@ -1,26 +0,0 @@
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(@name, automation: 'watir')
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
-
@@ -1,60 +0,0 @@
1
- require_relative 'spec_helper'
2
-
3
- describe RubyRaider::CucumberProjectGenerator do
4
- before(:all) do
5
- @name = 'Cucumber'
6
- RubyRaider::CucumberProjectGenerator.generate_cucumber_project(@name, automation: 'selenium')
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