diff --git a/gemfiles/Gemfile.rails61 b/gemfiles/Gemfile.rails61 index ff27abf..8fdb206 100644 --- a/gemfiles/Gemfile.rails61 +++ b/gemfiles/Gemfile.rails61 @@ -7,3 +7,6 @@ gem 'rails', '~> 6.1.0' # Rails 6.1 does not support sqlite3 2.x; it specifies gem "sqlite3", "~> 1.4" # in lib/active_record/connection_adapters/sqlite3_adapter.rb gem 'sqlite3', '~> 1.7' + +# Latest concurrent-ruby breaks Rails < 7.1. See https://github.com/rails/rails/issues/54260 +gem 'concurrent-ruby', '1.3.4' diff --git a/gemfiles/Gemfile.rails70 b/gemfiles/Gemfile.rails70 index 1792693..085807e 100644 --- a/gemfiles/Gemfile.rails70 +++ b/gemfiles/Gemfile.rails70 @@ -7,3 +7,6 @@ gem 'rails', '~> 7.0.0' # Rails 7.0 does not support sqlite3 2.x; it specifies gem "sqlite3", "~> 1.4" # in lib/active_record/connection_adapters/sqlite3_adapter.rb gem 'sqlite3', '~> 1.7' + +# Latest concurrent-ruby breaks Rails < 7.1. See https://github.com/rails/rails/issues/54260 +gem 'concurrent-ruby', '1.3.4' diff --git a/ndr_error.gemspec b/ndr_error.gemspec index 25a2b70..b3cec27 100644 --- a/ndr_error.gemspec +++ b/ndr_error.gemspec @@ -3,7 +3,9 @@ $LOAD_PATH.push File.expand_path('lib', __dir__) # Maintain your gem's version: require 'ndr_error/version' -# Describe your gem and declare its dependencies: +# We list development dependencies for all Rails versions here. +# Rails version-specific dependencies can go in the relevant Gemfile. +# rubocop:disable Gemspec/DevelopmentDependencies Gem::Specification.new do |s| s.name = 'ndr_error' s.version = NdrError::VERSION @@ -28,7 +30,7 @@ Gem::Specification.new do |s| s.add_dependency 'will_paginate' - s.add_dependency 'ndr_ui' + s.add_dependency 'ndr_ui', '< 5.0' s.add_development_dependency 'pry' s.add_development_dependency 'puma' @@ -38,6 +40,11 @@ Gem::Specification.new do |s| # cf. gemfiles/Gemfile.rails70 s.add_development_dependency 'sqlite3' + # Workaround build issue on GitHub Actions with ruby <= 3.1 when installing sass-embedded + # gem version 1.81.0: NoMethodError: undefined method `parse' for # + # https://bugs.ruby-lang.org/issues/19371 + s.add_development_dependency 'psych', '< 5' + s.add_development_dependency 'mocha' s.add_development_dependency 'test-unit', '~> 3.0' @@ -45,3 +52,4 @@ Gem::Specification.new do |s| s.add_development_dependency 'ndr_dev_support', '>= 5.10' s.add_development_dependency 'simplecov' end +# rubocop:enable Gemspec/DevelopmentDependencies diff --git a/test/test_helper.rb b/test/test_helper.rb index 968a4cb..7935061 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -33,6 +33,23 @@ # Instead, insert fixtures afresh between each test: setup { DatabaseCleaner.start } teardown { DatabaseCleaner.clean } + + # assert_current_path is brittle with Chrome 132 on capybara 3.40.0 + # Retry up to 3 times on error + def assert_current_path(path, **options, &optional_filter_block) + failures = 0 + begin + super + rescue Selenium::WebDriver::Error::WebDriverError => e + failures += 1 + if e.message.start_with?('aborted by navigation: loader has changed ' \ + "while resolving nodes\n") && failures <= 3 + # puts "Retrying after failure #{failures}: #{e.class} #{e.message}" + retry + end + raise + end + end end # Include all capybara + poltergeist config