2019-09-30 11:08:09 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2019-08-19 09:19:19 -04:00
|
|
|
module StrategyHelpers
|
|
|
|
include Rack::Test::Methods
|
|
|
|
include ActionDispatch::Assertions::ResponseAssertions
|
|
|
|
include Shoulda::Matchers::ActionController
|
|
|
|
include OmniAuth::Test::StrategyTestCase
|
|
|
|
|
|
|
|
def auth_hash
|
|
|
|
last_request.env['omniauth.auth']
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.without_test_mode
|
|
|
|
original_mode = OmniAuth.config.test_mode
|
|
|
|
original_on_failure = OmniAuth.config.on_failure
|
|
|
|
|
|
|
|
OmniAuth.config.test_mode = false
|
2021-06-29 14:07:04 -04:00
|
|
|
OmniAuth.config.on_failure = proc do |env|
|
|
|
|
OmniAuth::FailureEndpoint.new(env).redirect_to_failure
|
|
|
|
end
|
2019-08-19 09:19:19 -04:00
|
|
|
|
|
|
|
yield
|
|
|
|
ensure
|
|
|
|
OmniAuth.config.test_mode = original_mode
|
|
|
|
OmniAuth.config.on_failure = original_on_failure
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
RSpec.configure do |config|
|
|
|
|
config.include StrategyHelpers, type: :strategy
|
|
|
|
|
2021-06-30 02:07:17 -04:00
|
|
|
config.around(type: :strategy) do |example|
|
2019-08-19 09:19:19 -04:00
|
|
|
StrategyHelpers.without_test_mode do
|
|
|
|
example.run
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|