Commit 14d19dfa authored by Mark Lapierre's avatar Mark Lapierre

Validate page after visiting it

When `visit` is called with a block it now visits the page
before validating it, and then executes the block
parent c6152f3d
......@@ -5,7 +5,7 @@ module QA
class Address
attr_reader :address
def initialize(instance, page = nil)
def initialize(instance, page)
@instance = instance
@address = host + (page.is_a?(String) ? page : page&.path)
end
......
# frozen_string_literal: true
require 'rspec/core'
require 'rspec/expectations'
require 'capybara/rspec'
require 'capybara-screenshot/rspec'
require 'selenium-webdriver'
......@@ -27,13 +28,12 @@ module QA
# In case of an address that is a symbol we will try to guess address
# based on `Runtime::Scenario#something_address`.
#
def visit(address, page = nil, &block)
Browser::Session.new(address, page).perform(&block)
def visit(address, page_class, &block)
Browser::Session.new(address, page_class).perform(&block)
end
def self.visit(address, page = nil, &block)
new.visit(address, page, &block)
page.validate_elements_present!
def self.visit(address, page_class, &block)
new.visit(address, page_class, &block)
end
def self.configure!
......@@ -128,8 +128,11 @@ module QA
class Session
include Capybara::DSL
def initialize(instance, page = nil)
@session_address = Runtime::Address.new(instance, page)
attr_reader :page_class
def initialize(instance, page_class)
@session_address = Runtime::Address.new(instance, page_class)
@page_class = page_class
end
def url
......@@ -139,6 +142,8 @@ module QA
def perform(&block)
visit(url)
page_class.validate_elements_present!
if QA::Runtime::Env.qa_cookies
browser = Capybara.current_session.driver.browser
QA::Runtime::Env.qa_cookies.each do |cookie|
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment