Sha256: 294d28058ff0de226175b0861b01f8c0359760e58b7ce8c9dccdb52ffe9cc0ea

Contents?: true

Size: 854 Bytes

Versions: 2

Compression:

Stored size: 854 Bytes

Contents

# frozen_string_literal: true

require "capybara/rails"

module ActionDispatch
  class IntegrationTest
    include Capybara::DSL

    setup do
      Capybara.reset_sessions!
      Capybara.use_default_driver
    end

    def self.use_javascript!(raise_on_javascript_errors: true)
      setup do
        Capybara.current_driver = Capybara.javascript_driver
      end

      teardown do
        next if failures.any?
        next unless raise_on_javascript_errors

        errors = page.driver.browser.manage.logs.get(:browser).select do |log|
          log.level == "SEVERE"
        end

        next unless errors.any?

        messages = errors
                   .map(&:message)
                   .map {|message| message[/(\d+:\d+ .*?)$/, 1] }
                   .join("\n")

        raise "JavaScript Errors\n#{messages}"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
minitest-utils-0.4.8 lib/minitest/utils/rails/capybara.rb
minitest-utils-0.4.7 lib/minitest/utils/rails/capybara.rb