2026-01-02 13:41:09 +00:00
|
|
|
# Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/
|
2022-04-04 18:26:01 +00:00
|
|
|
|
|
|
|
|
RSpec.configure do |config|
|
|
|
|
|
config.after(:each, type: :system) do
|
|
|
|
|
next if page.driver.browser.browser != :chrome
|
|
|
|
|
|
2022-06-29 11:16:34 +00:00
|
|
|
logs = page.driver.browser.logs.get(:browser)
|
2024-02-28 12:21:57 +00:00
|
|
|
errors = logs.select { |m| m.level == 'SEVERE' && m.to_s =~ %r{EvalError|InternalError|RangeError|ReferenceError|SyntaxError|TypeError|URIError|E60(0|1)} }
|
2025-11-10 15:42:05 +00:00
|
|
|
# FIXME: Ignore certain unexplained JS errors that happen in some tests.
|
|
|
|
|
# - 1:37680 Uncaught TypeError: Cannot read properties of undefined (reading 'toUpperCase')
|
|
|
|
|
errors = errors.filter { |e| e.message !~ %r{Uncaught TypeError: Cannot read properties of undefined \(reading 'toUpperCase'\)$} }
|
|
|
|
|
|
2022-04-04 18:26:01 +00:00
|
|
|
if errors.present?
|
|
|
|
|
Rails.logger.error "JS ERRORS: #{errors.to_json}"
|
|
|
|
|
errors.each do |error|
|
|
|
|
|
puts "#{error.message}\n\n"
|
|
|
|
|
end
|
2022-05-20 09:07:57 +00:00
|
|
|
|
2022-09-27 14:24:19 +00:00
|
|
|
Rails.root.join('log/browser.log').write(logs.map { |l| "#{l.level}|#{l.message}" }.join("\n"))
|
2022-04-04 18:26:01 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
expect(errors.length).to eq(0)
|
|
|
|
|
end
|
|
|
|
|
end
|