42 lines
		
	
	
		
			982 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			982 B
		
	
	
	
		
			Ruby
		
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
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
 |