mastodon/spec/support/javascript_errors.rb
Claire b0abca0bdc
Some checks failed
Check formatting / lint (push) Has been cancelled
Ruby Linting / lint (push) Has been cancelled
Historical data migration test / pre_job (push) Has been cancelled
Ruby Testing / build (production) (push) Has been cancelled
Ruby Testing / build (test) (push) Has been cancelled
Historical data migration test / test (14-alpine) (push) Has been cancelled
Historical data migration test / test (15-alpine) (push) Has been cancelled
Ruby Testing / test (.ruby-version) (push) Has been cancelled
Ruby Testing / test (3.1) (push) Has been cancelled
Ruby Testing / test (3.2) (push) Has been cancelled
Ruby Testing / Libvips tests (.ruby-version) (push) Has been cancelled
Ruby Testing / Libvips tests (3.1) (push) Has been cancelled
Ruby Testing / Libvips tests (3.2) (push) Has been cancelled
Ruby Testing / End to End testing (.ruby-version) (push) Has been cancelled
Ruby Testing / End to End testing (3.1) (push) Has been cancelled
Ruby Testing / End to End testing (3.2) (push) Has been cancelled
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Has been cancelled
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:8.10.2) (push) Has been cancelled
Ruby Testing / Elastic Search integration testing (.ruby-version, opensearchproject/opensearch:2) (push) Has been cancelled
Ruby Testing / Elastic Search integration testing (3.1, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Has been cancelled
Ruby Testing / Elastic Search integration testing (3.2, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Has been cancelled
Additional logging for flaky end-to-end tests
2024-06-25 09:54:28 +02:00

30 lines
955 B
Ruby

# frozen_string_literal: true
RSpec.configure do |config|
config.after(:each, :js, type: :system) do
performance_logs = page.driver.browser.logs.get(:performance).map(&:message)
errors = page.driver.browser.logs.get(:browser)
# Save performance logs to capybara directory for further inspection
if performance_logs.present? && errors.present? && errors.any? { |error| error.level == 'SEVERE' }
path = File.join(Capybara.save_path, "performance-log-#{SecureRandom.hex(10)}.json")
warn "WARN: saving performance logs to #{path}"
File.write(path, "[#{performance_logs.join(',')}]")
end
if errors.present?
aggregate_failures 'javascript errrors' do
errors.each do |error|
expect(error.level).to_not eq('SEVERE'), error.message
next unless error.level == 'WARNING'
warn 'WARN: javascript warning'
warn error.message
end
end
end
end
end