From 0fb4e26cfe2fd7518c56694d46c1f6c8fc4ec3f5 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Mon, 12 Jan 2026 04:38:00 -0500 Subject: [PATCH] Add details to JS browser error spec failure helpers (#37441) --- spec/support/browser_errors.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/spec/support/browser_errors.rb b/spec/support/browser_errors.rb index 6c101540a3..860c8bd731 100644 --- a/spec/support/browser_errors.rb +++ b/spec/support/browser_errors.rb @@ -4,6 +4,10 @@ module BrowserErrorsHelpers def ignore_js_error(error) @ignored_js_errors_for_spec << error end + + def error_message(error) + error.keys.map { |key| "#{key.to_s.titleize}: #{error[key]}" }.join("\n") + end end RSpec.configure do |config| @@ -15,7 +19,7 @@ RSpec.configure do |config| example.metadata[:js_console_messages] ||= [] Capybara.current_session.driver.with_playwright_page do |page| page.on('console', lambda { |msg| - example.metadata[:js_console_messages] << { type: msg.type, text: msg.text, location: msg.location } + example.metadata[:js_console_messages] << { type: msg.type, text: msg.text, location: msg.location, page: msg.page.url } }) end end @@ -34,7 +38,7 @@ RSpec.configure do |config| if errors.present? aggregate_failures 'browser errrors' do errors.each do |error| - expect(error[:type]).to_not eq('error'), error[:text] + expect(error[:type]).to_not eq('error'), error_message(error) next unless error[:type] == 'warning' warn 'WARN: browser warning'