Class: AbstractPageTemplate

Inherits:
Template show all
Defined in:
lib/generators/templates/automation/abstract_page_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

#bodyObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/generators/templates/automation/abstract_page_template.rb', line 4

def body
  browser = "def browser
  Raider::BrowserHelper.browser
end"
  driver = "def driver
  Raider::DriverHelper.driver
end"

  visit = @automation == 'watir' ? 'browser.goto full_url(page.first)' : 'driver.navigate.to full_url(page.first)'
  raider = if @framework == 'rspec'
             "require_relative '../../helpers/raider'"
           else
             "require_relative '../../features/support/helpers/raider'"
           end

  <<~EOF
      require 'rspec'
      #{raider}

      class AbstractPage

        include RSpec::Matchers
        extend Raider::PomHelper

        #{@automation == 'watir' ? browser : driver}

        def visit(*page)
          #{visit}
        end

        def full_url(*page)
          "#\{base_url}#\{url(*page)}"
        end

        def base_url
          'https://automationteststore.com/'
        end

        def url(_page)
          raise 'Url must be defined on child pages'
        end
      end
  EOF
end