DEV: Summarize JS deprecations at end of system spec run (#24824)
This commit is contained in:
parent
c9cf3f5a52
commit
6731eec42a
|
@ -17,6 +17,35 @@ module TurboTests
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
js_deprecation_totals = {}
|
||||||
|
notification.examples.each do |example|
|
||||||
|
example.metadata[:js_deprecations]&.each do |id, count|
|
||||||
|
js_deprecation_totals[id] ||= 0
|
||||||
|
js_deprecation_totals[id] += count
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if js_deprecation_totals.present?
|
||||||
|
max_id_length = js_deprecation_totals.keys.map(&:length).max
|
||||||
|
output.puts "\n[Deprecation Counter] Test run completed with deprecations:\n\n"
|
||||||
|
|
||||||
|
table = ""
|
||||||
|
table += "| #{"id".ljust(max_id_length)} | count |\n"
|
||||||
|
table += "| #{"-" * max_id_length} | ----- |\n"
|
||||||
|
js_deprecation_totals.each do |id, count|
|
||||||
|
table += "| #{id.ljust(max_id_length)} | #{count.to_s.ljust(5)} |\n"
|
||||||
|
end
|
||||||
|
|
||||||
|
output.puts table
|
||||||
|
|
||||||
|
if ENV["GITHUB_ACTIONS"] && ENV["GITHUB_STEP_SUMMARY"]
|
||||||
|
job_summary = "### ⚠️ JS Deprecations\n\nTest run completed with deprecations:\n\n"
|
||||||
|
job_summary += table
|
||||||
|
job_summary += "\n\n"
|
||||||
|
File.write(ENV["GITHUB_STEP_SUMMARY"], job_summary)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
super(notification)
|
super(notification)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -19,6 +19,7 @@ module TurboTests
|
||||||
extra_failure_lines: @rspec_example.metadata[:extra_failure_lines],
|
extra_failure_lines: @rspec_example.metadata[:extra_failure_lines],
|
||||||
run_duration_ms: @rspec_example.metadata[:run_duration_ms],
|
run_duration_ms: @rspec_example.metadata[:run_duration_ms],
|
||||||
process_pid: Process.pid,
|
process_pid: Process.pid,
|
||||||
|
js_deprecations: @rspec_example.metadata[:js_deprecations],
|
||||||
},
|
},
|
||||||
location_rerun_argument: @rspec_example.location_rerun_argument,
|
location_rerun_argument: @rspec_example.location_rerun_argument,
|
||||||
}
|
}
|
||||||
|
|
|
@ -377,7 +377,7 @@ RSpec.configure do |config|
|
||||||
end
|
end
|
||||||
|
|
||||||
# possible values: OFF, SEVERE, WARNING, INFO, DEBUG, ALL
|
# possible values: OFF, SEVERE, WARNING, INFO, DEBUG, ALL
|
||||||
browser_log_level = ENV["SELENIUM_BROWSER_LOG_LEVEL"] || "SEVERE"
|
browser_log_level = ENV["SELENIUM_BROWSER_LOG_LEVEL"] || "WARNING"
|
||||||
|
|
||||||
chrome_browser_options =
|
chrome_browser_options =
|
||||||
Selenium::WebDriver::Chrome::Options
|
Selenium::WebDriver::Chrome::Options
|
||||||
|
@ -531,6 +531,8 @@ RSpec.configure do |config|
|
||||||
lines << "~~~~~ END DRIVER LOGS ~~~~~"
|
lines << "~~~~~ END DRIVER LOGS ~~~~~"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
js_logs = page.driver.browser.logs.get(:browser)
|
||||||
|
|
||||||
# Recommended that this is not disabled, since it makes debugging
|
# Recommended that this is not disabled, since it makes debugging
|
||||||
# failed system tests a lot trickier.
|
# failed system tests a lot trickier.
|
||||||
if ENV["SELENIUM_DISABLE_VERBOSE_JS_LOGS"].blank?
|
if ENV["SELENIUM_DISABLE_VERBOSE_JS_LOGS"].blank?
|
||||||
|
@ -547,11 +549,10 @@ RSpec.configure do |config|
|
||||||
|
|
||||||
if !skip_js_errors
|
if !skip_js_errors
|
||||||
lines << "~~~~~~~ JS LOGS ~~~~~~~"
|
lines << "~~~~~~~ JS LOGS ~~~~~~~"
|
||||||
logs = page.driver.browser.logs.get(:browser)
|
if js_logs.empty?
|
||||||
if logs.empty?
|
|
||||||
lines << "(no logs)"
|
lines << "(no logs)"
|
||||||
else
|
else
|
||||||
logs.each do |log|
|
js_logs.each do |log|
|
||||||
# System specs are full of image load errors that are just noise, no need
|
# System specs are full of image load errors that are just noise, no need
|
||||||
# to log this.
|
# to log this.
|
||||||
if (
|
if (
|
||||||
|
@ -569,6 +570,16 @@ RSpec.configure do |config|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
js_logs.each do |log|
|
||||||
|
next if log.level != "WARNING"
|
||||||
|
deprecation_id = log.message[/\[deprecation id: ([^\]]+)\]/, 1]
|
||||||
|
next if deprecation_id.nil?
|
||||||
|
|
||||||
|
deprecations = RSpec.current_example.metadata[:js_deprecations] ||= {}
|
||||||
|
deprecations[deprecation_id] ||= 0
|
||||||
|
deprecations[deprecation_id] += 1
|
||||||
|
end
|
||||||
|
|
||||||
page.execute_script("if (typeof MessageBus !== 'undefined') { MessageBus.stop(); }")
|
page.execute_script("if (typeof MessageBus !== 'undefined') { MessageBus.stop(); }")
|
||||||
MessageBus.backend_instance.reset! # Clears all existing backlog from memory backend
|
MessageBus.backend_instance.reset! # Clears all existing backlog from memory backend
|
||||||
Scheduler::Defer.do_all_work # Process everything that was added to the defer queue when running the test
|
Scheduler::Defer.do_all_work # Process everything that was added to the defer queue when running the test
|
||||||
|
|
Loading…
Reference in New Issue