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 post(*args)
|
|
|
|
super.tap do
|
|
|
|
@response = ActionDispatch::TestResponse.from_response(last_response)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
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
|
|
|
|
OmniAuth.config.on_failure = OmniAuth::FailureEndpoint
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
config.around(:all, type: :strategy) do |example|
|
|
|
|
StrategyHelpers.without_test_mode do
|
|
|
|
example.run
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|