Sha256: 377efc74b3554ccaf92aca8401436841e7a12edf8602b528f5a1845e5e3618f9

Contents?: true

Size: 1017 Bytes

Versions: 15

Compression:

Stored size: 1017 Bytes

Contents

require "capybara"

module Konacha
  class Runner
    def self.start
      Capybara.server_port = Konacha.runner_port
      new.run
    end

    attr_reader :reporter

    def initialize(session = nil)
      @session = session
      @reporter = Konacha::Reporter.new(*Konacha.formatters)
    end

    def run(path = '/')
      session.visit path

      events_consumed = 0
      done = false
      begin
        sleep 0.1
        events = JSON.parse(session.evaluate_script('window.top.Konacha.getEvents()'))
        if events.present?
          events[events_consumed..-1].each do |event|
            done = true if event['event'] == 'end'
            reporter.process_mocha_event(event)
          end

          events_consumed = events.length
        end
      end until done

      reporter.passed?
    rescue => e
      raise e, "Error communicating with browser process: #{e}", e.backtrace
    end

    def session
      @session ||= Capybara::Session.new(Konacha.driver, Konacha.application)
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
konacha-4.0.0 lib/konacha/runner.rb
konacha-3.7.0 lib/konacha/runner.rb
konacha-3.6.0 lib/konacha/runner.rb
konacha-3.5.1 lib/konacha/runner.rb
konacha-3.5.0 lib/konacha/runner.rb
konacha-3.4.0 lib/konacha/runner.rb
konacha-3.3.0 lib/konacha/runner.rb
konacha-3.2.5 lib/konacha/runner.rb
konacha-3.2.4 lib/konacha/runner.rb
konacha-3.2.3 lib/konacha/runner.rb
konacha-3.2.2 lib/konacha/runner.rb
konacha-3.2.1 lib/konacha/runner.rb
konacha-3.2.0 lib/konacha/runner.rb
konacha-3.1.0 lib/konacha/runner.rb
konacha-3.0.0 lib/konacha/runner.rb