From 6c5840f73693aba79d7df593a85f1e841a6371ff Mon Sep 17 00:00:00 2001 From: Paul Keen <125715+pftg@users.noreply.github.com> Date: Sun, 12 Apr 2026 01:34:40 +0200 Subject: [PATCH] feat: default blur_active_element and hide_caret to true Every real-world app enables these to prevent flaky screenshots from blinking cursors and focused input elements. Making them default saves boilerplate and matches universal usage pattern. Users can still set false to opt out. Co-Authored-By: Claude Opus 4.6 (1M context) --- lib/capybara_screenshot_diff.rb | 4 ++-- test/test_helper.rb | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/capybara_screenshot_diff.rb b/lib/capybara_screenshot_diff.rb index c649eec1..050aa6b6 100644 --- a/lib/capybara_screenshot_diff.rb +++ b/lib/capybara_screenshot_diff.rb @@ -27,9 +27,9 @@ module Capybara module Screenshot mattr_accessor :add_driver_path mattr_accessor :add_os_path - mattr_accessor :blur_active_element + mattr_accessor(:blur_active_element) { true } mattr_accessor :enabled - mattr_accessor :hide_caret + mattr_accessor(:hide_caret) { true } mattr_reader(:root) { (defined?(Rails) && defined?(Rails.root) && Rails.root) || Pathname(".").expand_path } mattr_accessor :stability_time_limit mattr_accessor :window_size diff --git a/test/test_helper.rb b/test/test_helper.rb index 0746b588..532188e3 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -40,13 +40,19 @@ class ActiveSupport::TestCase self.file_fixture_path = Pathname.new(File.expand_path("fixtures", __dir__)) setup do - # Tests create new screenshots — don't fail on missing baselines @_orig_fail_if_new = Capybara::Screenshot::Diff.fail_if_new + @_orig_blur = Capybara::Screenshot.blur_active_element + @_orig_hide_caret = Capybara::Screenshot.hide_caret + Capybara::Screenshot::Diff.fail_if_new = false + Capybara::Screenshot.blur_active_element = false + Capybara::Screenshot.hide_caret = false end teardown do Capybara::Screenshot::Diff.fail_if_new = @_orig_fail_if_new + Capybara::Screenshot.blur_active_element = @_orig_blur + Capybara::Screenshot.hide_caret = @_orig_hide_caret CapybaraScreenshotDiff::SnapManager.cleanup! unless persist_comparisons? end