Class: SpecHelperTemplate

Inherits:
Template show all
Defined in:
lib/generators/templates/helpers/spec_helper_template.rb

Instance Method Summary collapse

Methods inherited from Template

#initialize, #parsed_body

Constructor Details

This class inherits a constructor from Template

Instance Method Details

#before_configurationObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/generators/templates/helpers/spec_helper_template.rb', line 12

def before_configuration
  driver_setup = if %w[selenium watir].include?(@automation)
                   select_helper
                 else
                   <<-EOF.chomp
#{select_helper}
       DriverHelper.driver.start_driver
                   EOF
                 end

  <<-EOF.chomp

    config.before(:each) do
      #{driver_setup}
    end
  EOF
end

#bodyObject



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/generators/templates/helpers/spec_helper_template.rb', line 46

def body
  <<~EOF
    require 'active_support/all'
    require 'rspec'
    require_relative 'allure_helper'
    #{require_driver}

    module Raider
      module SpecHelper

        AllureHelper.configure

        RSpec.configure do |config|
          config.formatter = AllureHelper.formatter
          #{before_configuration}

          config.after(:each) do
            example_name = self.class.descendant_filtered_examples.first.description
            status = self.class.descendant_filtered_examples.first.execution_result.status
            #{save_screenshot}
            AllureHelper.add_screenshot example_name if status == :failed
            #{quit_driver}
          end
        end
      end
    end
  EOF
end

#quit_driverObject



30
31
32
33
34
35
36
37
38
39
# File 'lib/generators/templates/helpers/spec_helper_template.rb', line 30

def quit_driver
  case @automation
  when 'selenium'
    'DriverHelper.driver.quit'
  when 'watir'
    'BrowserHelper.browser.quit'
  else
    'DriverHelper.driver.quit_driver'
  end
end

#require_driverObject



4
5
6
# File 'lib/generators/templates/helpers/spec_helper_template.rb', line 4

def require_driver
  "require_relative '#{@automation == 'watir' ? 'browser_helper' : 'driver_helper'}'"
end

#save_screenshotObject



41
42
43
44
# File 'lib/generators/templates/helpers/spec_helper_template.rb', line 41

def save_screenshot
  driver = @automation == 'watir' ? 'browser' : 'driver'
  "#{driver}.save_screenshot(\"allure-results/screenshots/\#{example_name}.png\") if status == :failed"
end

#select_helperObject



8
9
10
# File 'lib/generators/templates/helpers/spec_helper_template.rb', line 8

def select_helper
  @automation == 'watir' ? 'BrowserHelper.new_browser' : 'DriverHelper.new_driver'
end