Skip to content

Commit 9d2ad5e

Browse files
authored
Merge pull request #263 from ewilloughby/ruby-saml-1.18
Dependency-vulnerability: ruby-saml to 1.18, updates for tests to pass
2 parents 248d8b6 + 69d0bbb commit 9d2ad5e

15 files changed

+78
-98
lines changed

.github/workflows/ci.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,22 @@ jobs:
1414
fail-fast: false
1515
matrix:
1616
ruby:
17+
- "3.4"
1718
- "3.3"
1819
- "3.2"
19-
- "3.1"
20-
- "3.0"
2120
gemfile:
2221
- Gemfile
23-
- spec/support/Gemfile.rails6.1
24-
- spec/support/Gemfile.rails7
22+
- spec/support/Gemfile.rails7.1
23+
- spec/support/Gemfile.rails7.2
2524
bundler:
2625
- "2"
2726
runs-on: ubuntu-latest
2827
env:
2928
BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}
3029
steps:
3130
- uses: actions/checkout@v4
32-
- uses: ruby/setup-ruby@v1
31+
- name: Set up Ruby
32+
uses: ruby/setup-ruby@v1
3333
with:
3434
bundler: ${{ matrix.bundler }}
3535
ruby-version: ${{ matrix.ruby }}

.ruby-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.2.2
1+
3.3.7

Gemfile

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,13 @@ gemspec
66
group :test do
77
gem 'rake'
88
gem 'rspec', '~> 3.0'
9-
gem 'rails', '~> 7.1.0'
9+
gem 'rails', '~> 8.0.0'
1010
gem 'rspec-rails'
11-
gem 'sqlite3', '~> 1.4'
11+
gem 'sqlite3', '~> 2.6.0'
1212
gem 'capybara'
1313
gem 'selenium-webdriver'
14-
15-
if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new("3.0")
16-
gem 'webrick'
17-
end
18-
19-
if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new("3.1")
20-
gem 'net-smtp', require: false
21-
gem 'net-imap', require: false
22-
gem 'net-pop', require: false
23-
end
14+
gem 'webrick'
15+
gem 'net-smtp', require: false
16+
gem 'net-imap', require: false
17+
gem 'net-pop', require: false
2418
end

devise_saml_authenticatable.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@ Gem::Specification.new do |gem|
1919
gem.required_ruby_version = ">= 2.6.0"
2020

2121
gem.add_dependency("devise","> 2.0.0")
22-
gem.add_dependency("ruby-saml","~> 1.17")
22+
gem.add_dependency("ruby-saml","~> 1.18")
2323
end

spec/features/saml_authentication_spec.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@
1010
options.add_argument('--headless')
1111
options.add_argument('--allow-insecure-localhost')
1212
options.add_argument('--ignore-certificate-errors')
13+
# Headless Chrome 134 is failing randomly - optimizing here to try and avoid it
14+
options.add_argument('--disable-background-timer-throttling')
15+
options.add_argument('--disable-backgrounding-occluded-windows')
16+
options.add_argument('--disable-renderer-backgrounding')
17+
options.add_argument('--no-sandbox')
18+
options.add_argument('--password-store=basic');
19+
options.add_argument('--suppress-message-center-popups');
1320

1421
Capybara::Selenium::Driver.new(
1522
app,

spec/rails_helper.rb

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,25 @@
66
require "#{working_directory}/sp/config/environment"
77
require 'rspec/rails'
88

9+
# Starting from Rails 8.0, routes are lazy-loaded by default in test and development environments.
10+
# However, Devise's mappings are built during the routes loading phase.
11+
# To ensure it works correctly, we need to load the routes first before accessing @@mappings.
12+
if defined?(Rails) && Gem::Version.new(Rails.version) > Gem::Version.new('7.2')
13+
require 'devise'
14+
module Devise
15+
def self.mappings
16+
Rails.application.try(:reload_routes_unless_loaded)
17+
@@mappings
18+
end
19+
end
20+
end
21+
922
ActiveRecord::Migration.verbose = false
1023
ActiveRecord::Base.logger = Logger.new(nil)
1124
if ActiveRecord::Base.connection.respond_to?(:migration_context)
1225
ActiveRecord::Base.connection.migration_context.migrate
1326
else
14-
ActiveRecord::Migrator.migrate("#{working_directory}/sp/db/migrate/")
27+
ActiveRecord::MigrationContext.new("#{working_directory}/sp/db/migrate/").migrate
1528
end
1629

1730
RSpec.configure do |config|

spec/spec_helper.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
require "fileutils"
2+
require 'capybara/rspec'
23

34
RSpec.configure do |config|
45
config.run_all_when_everything_filtered = true
56
config.filter_run :focus
67
config.order = 'random'
8+
# Specify a longer timeout for Capybara to allow for slower CI environments causing failing tests
9+
Capybara.default_max_wait_time = 10 #
710

811
config.expect_with :rspec do |expectations|
912
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
@@ -37,6 +40,6 @@
3740
end
3841

3942
require 'support/rails_app'
40-
43+
require 'logger'
4144
require "action_controller" # https://github.com/heartcombo/responders/pull/95
4245
require 'devise_saml_authenticatable'

spec/support/Gemfile.rails6.1

Lines changed: 0 additions & 24 deletions
This file was deleted.

spec/support/Gemfile.rails7

Lines changed: 0 additions & 24 deletions
This file was deleted.

spec/support/Gemfile.rails5.2 renamed to spec/support/Gemfile.rails7.1

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,13 @@ gemspec path: '../..'
66
group :test do
77
gem 'rake'
88
gem 'rspec', '~> 3.0'
9-
gem 'rails', '~> 5.2.0'
10-
gem 'rspec-rails', '~> 3.9'
11-
gem 'sqlite3', '~> 1.3.6'
9+
gem 'rails', '~> 7.1.0'
10+
gem 'rspec-rails', '~> 7.1'
11+
gem 'sqlite3', '~> 2.6.0'
1212
gem 'capybara'
1313
gem 'selenium-webdriver'
14+
gem 'webrick'
15+
gem 'net-smtp', require: false
16+
gem 'net-imap', require: false
17+
gem 'net-pop', require: false
1418
end

0 commit comments

Comments
 (0)