Sha256: bd9bf425d0c8199be6c746944a1250e18301c54ece8eb0c08a2c4cd40b2e0bc4

Contents?: true

Size: 999 Bytes

Versions: 1

Compression:

Stored size: 999 Bytes

Contents

PageModels::Base.send(:include, RSpec::Matchers)

module PageModels
  module RSpecIntegration
    def open_page(page_model)
      page_model = page_model.new if page_model.is_a? Class
      $page_model = page_model
      $page_model.open!
    end
    
    def should_see_page(page_model)
      page_model = page_model.new if page_model.is_a? Class      
      $page_model = page_model
      $page_model._verify!
    end
    
  end
  
  module PageModelMethodDelegation
    def method_missing(name, *args, &block)
      if $page_model && $page_model.respond_to?(name)
        $page_model.send(name, *args, &block) 
      elsif config.driver.respond_to?(name)
        config.driver.send(name, *args, &block)         
      else
        super(name, *args, &block)
      end
    end
    
    private
    
    def config
      PageModels::Configuration.instance
    end
  end
end

Object.send(:include, PageModels::RSpecIntegration)
RSpec.configure { |c| c.include PageModels::PageModelMethodDelegation }

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pagemodels-0.2.2 lib/page_models/integration/rspec.rb