lib/capybara/screenshot/diff.rb in capybara-screenshot-diff-1.8.3 vs lib/capybara/screenshot/diff.rb in capybara-screenshot-diff-1.9.0

- old
+ new

@@ -1,113 +1,3 @@ # frozen_string_literal: true -require "capybara/dsl" -require "capybara/screenshot/diff/version" -require "capybara/screenshot/diff/drivers/utils" -require "capybara/screenshot/diff/image_compare" -require "capybara/screenshot/diff/test_methods" -require "capybara/screenshot/diff/screenshoter" - -module Capybara - module Screenshot - mattr_accessor :add_driver_path - mattr_accessor :add_os_path - mattr_accessor :blur_active_element - mattr_accessor :enabled - mattr_accessor :hide_caret - mattr_reader(:root) { (defined?(Rails.root) && Rails.root) || Pathname(".").expand_path } - mattr_accessor :stability_time_limit - mattr_accessor :window_size - mattr_accessor(:save_path) { "doc/screenshots" } - mattr_accessor(:use_lfs) - - class << self - def root=(path) - @@root = Pathname(path).expand_path - end - - def active? - enabled || (enabled.nil? && Diff.enabled) - end - - def screenshot_area - parts = [Screenshot.save_path] - parts << Capybara.current_driver.to_s if Screenshot.add_driver_path - parts << Os.name if Screenshot.add_os_path - File.join(*parts) - end - - def screenshot_area_abs - root / screenshot_area - end - end - - # Module to track screen shot changes - module Diff - include Capybara::DSL - - mattr_accessor(:delayed) { true } - mattr_accessor :area_size_limit - mattr_accessor :color_distance_limit - mattr_accessor(:enabled) { true } - mattr_accessor :shift_distance_limit - mattr_accessor :skip_area - mattr_accessor(:driver) { :auto } - mattr_accessor :tolerance - - mattr_accessor(:screenshoter) { Screenshoter } - - AVAILABLE_DRIVERS = Utils.detect_available_drivers.freeze - ASSERTION = Utils.detect_test_framework_assert - - def self.default_options - { - area_size_limit: area_size_limit, - color_distance_limit: color_distance_limit, - driver: driver, - shift_distance_limit: shift_distance_limit, - skip_area: skip_area, - stability_time_limit: Screenshot.stability_time_limit, - tolerance: tolerance || ((driver == :vips) ? 0.001 : nil), - wait: Capybara.default_max_wait_time - } - end - - def self.included(klass) - klass.include TestMethods - klass.setup do - BrowserHelpers.resize_to(Screenshot.window_size) if Screenshot.window_size - end - - klass.teardown do - if Screenshot.active? && @test_screenshots.present? - track_failures(@test_screenshots) - @test_screenshots.clear - end - end - end - - private - - EMPTY_LINE = "\n\n" - - def track_failures(screenshots) - test_screenshot_errors = screenshots.map do |caller, name, compare| - assert_image_not_changed(caller, name, compare) - end - - test_screenshot_errors.compact! - - unless test_screenshot_errors.empty? - error = ASSERTION.new(test_screenshot_errors.join(EMPTY_LINE)) - error.set_backtrace([]) - - if is_a?(::Minitest::Runnable) - failures << error - else - raise error - end - end - end - end - end -end +require "capybara_screenshot_diff/minitest"