Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Setup tests for 7.2 and 8.0 #1647

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,17 @@ jobs:
- '3.0'
- 3.1
- 3.2
- 3.3
gemfile:
- gemfiles/rails_4_2.gemfile
- gemfiles/rails_5_0.gemfile
- gemfiles/rails_5_1.gemfile
- gemfiles/rails_5_2.gemfile
- gemfiles/rails_6_0.gemfile
- gemfiles/rails_7_0.gemfile
- gemfiles/rails_7_1.gemfile
- gemfiles/rails_7_2.gemfile
- gemfiles/rails_8_0.gemfile
db:
- sqlite
- mysql
Expand Down Expand Up @@ -51,6 +55,7 @@ jobs:
- ruby: 3.2
gemfile: gemfiles/rails_7_0_mongoid_7.gemfile
devise-token-auth-orm: mongoid
# TODO: add mongoid for rails 7.2
exclude:
- ruby: 2.7
gemfile: gemfiles/rails_4_2.gemfile
Expand All @@ -60,6 +65,10 @@ jobs:
gemfile: gemfiles/rails_5_1.gemfile
- ruby: 2.7
gemfile: gemfiles/rails_5_2.gemfile
- ruby: 2.7
gemfile: gemfiles/rails_7_2.gemfile
- ruby: 2.7
gemfile: gemfiles/rails_8_0.gemfile
- ruby: '3.0'
gemfile: gemfiles/rails_4_2.gemfile
- ruby: '3.0'
Expand All @@ -70,6 +79,12 @@ jobs:
gemfile: gemfiles/rails_5_2.gemfile
- ruby: '3.0'
gemfile: gemfiles/rails_6_0.gemfile
- ruby: '3.0'
gemfile: gemfiles/rails_7_2.gemfile
- ruby: '3.0'
gemfile: gemfiles/rails_8_0.gemfile
- ruby: '3.0'
gemfile: gemfiles/rails_7_1.gemfile
- ruby: 3.1
gemfile: gemfiles/rails_4_2.gemfile
- ruby: 3.1
Expand All @@ -90,6 +105,17 @@ jobs:
gemfile: gemfiles/rails_5_2.gemfile
- ruby: 3.2
gemfile: gemfiles/rails_6_0.gemfile
- ruby: 3.3
gemfile: gemfiles/rails_4_2.gemfile
- ruby: 3.3
gemfile: gemfiles/rails_5_0.gemfile
- ruby: 3.3
gemfile: gemfiles/rails_5_1.gemfile
- ruby: 3.3
gemfile: gemfiles/rails_5_2.gemfile
- ruby: 3.3
gemfile: gemfiles/rails_6_0.gemfile


services:
mysql:
Expand Down
3 changes: 2 additions & 1 deletion Appraisals
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ end
{ name: '5-2', ruby: '2.6.2', rails: '5.2', mongoid: '7.0' },
{ name: '6-0', ruby: '2.7.0', rails: '6.0', mongoid: '7.0' },
{ name: '6-0', ruby: '3.1.2', rails: '6.0', mongoid: '7.0' },
{ name: '7-0', ruby: '3.1.2', rails: '7.0', mongoid: '7.0' }
{ name: '7-0', ruby: '3.1.2', rails: '7.0', mongoid: '7.0' },
{ name: '7-1', ruby: '3.1.2', rails: '7.1', mongoid: '7.0' }
].each do |set|
appraise "rails-#{set[:name]}-mongoid-#{set[:mongoid][0]}" do
gem 'rails', "~> #{set[:rails]}"
Expand Down
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ gem 'omniauth-rails_csrf_protection'
# To use debugger
# gem 'debugger'

gem 'concurrent-ruby', '1.3.4'

group :development, :test do
gem 'attr_encrypted'
Expand Down
2 changes: 1 addition & 1 deletion devise_token_auth.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ Gem::Specification.new do |s|
s.add_development_dependency 'sqlite3', '~> 1.4'
s.add_development_dependency 'pg'
s.add_development_dependency 'mysql2'
s.add_development_dependency 'mongoid', '>= 4', '< 8'
s.add_development_dependency 'mongoid', '>= 4', '< 10'
s.add_development_dependency 'mongoid-locker', '~> 2.0'
end
2 changes: 1 addition & 1 deletion gemfiles/rails_7_0.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ source "https://rubygems.org"

gem "omniauth", "~> 2.0"
gem "omniauth-rails_csrf_protection"
gem "rails", "~> 7.0"
gem "rails", "~> 7.0.8"
gem "sqlite3", "~> 1.4.1"
gem "mysql2"
gem "pg"
Expand Down
47 changes: 47 additions & 0 deletions gemfiles/rails_7_1.gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# This file was generated by Appraisal

source "https://rubygems.org"

gem "omniauth", "~> 2.0"
gem "omniauth-rails_csrf_protection"
gem 'rails', '~> 7.1.5'
gem "sqlite3", "~> 1.4.1"
gem "mysql2"
gem "pg"

group :development, :test do
gem "attr_encrypted"
gem "figaro", "~> 1.2"
gem "omniauth-facebook"
gem "omniauth-github"
gem "omniauth-google-oauth2"
gem 'omniauth-apple'
gem "rack-cors"
gem "thor", "~> 1.2"
gem "database_cleaner"
gem "factory_bot_rails"
gem "faker", "~> 2.16"
gem "fuzz_ball"
gem "guard"
gem "guard-minitest"
gem "minitest"
gem "minitest-focus"
gem "minitest-rails", "~> 7"
gem "minitest-reporters"
gem "mocha", ">= 1.5"
gem "pry"
gem "pry-byebug"
gem "pry-remote"
gem "rubocop", require: false
end

group :test do
gem "rails-controller-testing"
gem "simplecov", require: false
end

group :development do
gem "github_changelog_generator"
end

gemspec path: "../"
47 changes: 47 additions & 0 deletions gemfiles/rails_7_2.gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# This file was generated by Appraisal

source "https://rubygems.org"

gem "omniauth", "~> 2.0"
gem "omniauth-rails_csrf_protection"
gem 'rails', '~> 7.2.1.2'
gem "sqlite3", "~> 1.4.1"
gem "mysql2"
gem "pg"

group :development, :test do
gem "attr_encrypted"
gem "figaro", "~> 1.2"
gem "omniauth-facebook"
gem "omniauth-github"
gem "omniauth-google-oauth2"
gem 'omniauth-apple'
gem "rack-cors"
gem "thor", "~> 1.2"
gem "database_cleaner"
gem "factory_bot_rails"
gem "faker", "~> 2.16"
gem "fuzz_ball"
gem "guard"
gem "guard-minitest"
gem "minitest"
gem "minitest-focus"
gem "minitest-rails", "~> 7"
gem "minitest-reporters"
gem "mocha", ">= 1.5"
gem "pry"
gem "pry-byebug"
gem "pry-remote"
gem "rubocop", require: false
end

group :test do
gem "rails-controller-testing"
gem "simplecov", require: false
end

group :development do
gem "github_changelog_generator"
end

gemspec path: "../"
48 changes: 48 additions & 0 deletions gemfiles/rails_8_0.gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# This file was generated by Appraisal

source "https://rubygems.org"

gem "omniauth", "~> 2.0"
gem "omniauth-rails_csrf_protection"
gem "rails", "~> 8.0.0.rc1"
gem "sqlite3", "~> 1.4.1"
gem "mysql2"
gem "pg"
gem "mongoid", git: "https://github.com/comandeo-mongo/mongoid/5818-rails-8"

group :development, :test do
gem "attr_encrypted"
gem "figaro", "~> 1.2"
gem "omniauth-facebook"
gem "omniauth-github"
gem "omniauth-google-oauth2"
gem 'omniauth-apple'
gem "rack-cors"
gem "thor", "~> 1.2"
gem "database_cleaner"
gem "factory_bot_rails"
gem "faker", "~> 2.16"
gem "fuzz_ball"
gem "guard"
gem "guard-minitest"
gem "minitest"
gem "minitest-focus"
gem "minitest-rails", "~> 7"
gem "minitest-reporters"
gem "mocha", ">= 1.5"
gem "pry"
gem "pry-byebug"
gem "pry-remote"
gem "rubocop", require: false
end

group :test do
gem "rails-controller-testing"
gem "simplecov", require: false
end

group :development do
gem "github_changelog_generator"
end

gemspec path: "../"
Original file line number Diff line number Diff line change
Expand Up @@ -340,8 +340,10 @@ def get_success(params = {})

test 'request using non-whitelisted redirect fail' do
post '/auth/facebook',
params: { auth_origin_url: @bad_redirect_url,
omniauth_window_type: 'newWindow' }
params: {
auth_origin_url: @bad_redirect_url,
omniauth_window_type: 'newWindow'
}

follow_all_redirects!

Expand Down
8 changes: 6 additions & 2 deletions test/dummy/config/environments/test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
(config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }) :
(config.static_cache_control = 'public, max-age=3600')

if Rails::VERSION::MAJOR > 6 && ENV['DEVISE_TOKEN_AUTH_ORM'] != 'mongoid'
if Rails::VERSION::MAJOR < 7 && ENV['DEVISE_TOKEN_AUTH_ORM'] != 'mongoid'
config.active_record.legacy_connection_handling = false
end

Expand All @@ -32,7 +32,11 @@
config.action_controller.perform_caching = false

# Raise exceptions instead of rendering exception templates.
config.action_dispatch.show_exceptions = false
if Rails::VERSION::MAJOR >= 7 && Rails::VERSION::MINOR > 0
config.action_dispatch.show_exceptions = :none
else
config.action_dispatch.show_exceptions = false
end

# Disable request forgery protection in test environment.
config.action_controller.allow_forgery_protection = false
Expand Down
6 changes: 6 additions & 0 deletions test/dummy/config/initializers/omniauth.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# frozen_string_literal: true

OmniAuth.config.path_prefix = '/auth'
OmniAuth.config.request_validation_phase = nil # This might be needed for Rails 7.1

Rails.application.config.middleware.use OmniAuth::Builder do |b|
provider :github, ENV['GITHUB_KEY'], ENV['GITHUB_SECRET'], scope: 'email,profile'
provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET']
Expand All @@ -9,3 +12,6 @@
fields: [:first_name, :last_name],
uid_field: :last_name
end

# Allow POST requests to OmniAuth
# OmniAuth.config.allowed_request_methods = [:post, :get]
10 changes: 8 additions & 2 deletions test/test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,20 @@

class ActionDispatch::IntegrationTest
def follow_all_redirects!
follow_redirect! while response.status.to_s =~ /^3\d{2}/
while response.status.to_s =~ /^3\d{2}/
original_params = request.params.to_h
follow_redirect! do |req|
# Preserve all original parameters through redirects
req.params.merge!(original_params)
end
end
end
end

class ActiveSupport::TestCase
include FactoryBot::Syntax::Methods

ActiveRecord::Migration.check_pending! if DEVISE_TOKEN_AUTH_ORM == :active_record
# ActiveRecord::Migration.check_pending! if DEVISE_TOKEN_AUTH_ORM == :active_record

strategies = { active_record: :transaction,
mongoid: :deletion }
Expand Down
Loading