Sha256: 72f018dfa04aa47f8a5c10ef8641a24d36bf42a6f71dd116e96990c718d58520

Contents?: true

Size: 1.45 KB

Versions: 3

Compression:

Stored size: 1.45 KB

Contents

# frozen_string_literal: true

require 'database_cleaner/active_record'
require 'factory_bot'
require 'faker'
require 'omniauth'
require 'pry'
require 'rack/test'
require 'rspec'
require 'webmock/rspec'

ENV['RACK_ENV'] = 'test'
ENV['SESSION_SECRET'] = 'supersecret'

require File.expand_path '../lib/osso.rb', __dir__

module RSpecMixin
  include Rack::Test::Methods

  def app
    Rack::URLMap.new(
      '/admin' => Osso::Admin,
      '/auth' => Osso::Auth,
      '/oauth' => Osso::Oauth,
    )
  end

  def mock_saml_omniauth(email: 'user@enterprise.com', id: SecureRandom.uuid)
    OmniAuth.config.add_mock(:saml,
      extra: {
        response_object: {
          attributes: {
            'id': id,
            'email': email,
          },
        },
      })
  end

  def last_json_response
    JSON.parse(last_response.body, symbolize_names: true)
  end

  def spec_views
    File.dirname(__FILE__) + '/support/views'
  end
end

RSpec.configure do |config|
  config.include RSpecMixin
  config.include FactoryBot::Syntax::Methods

  config.before(:suite) do
    ActiveRecord::Base.establish_connection
    FactoryBot.find_definitions
    DatabaseCleaner.strategy = :transaction
    DatabaseCleaner.clean_with(:truncation)
  end

  config.around(:each) do |example|
    DatabaseCleaner.cleaning do
      example.run
    end
  end

  OmniAuth.config.test_mode = true
  OmniAuth.config.logger = Logger.new('/dev/null')
  WebMock.disable_net_connect!(allow_localhost: true)
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
osso-0.0.3.4 spec/spec_helper.rb
osso-0.0.3.2 spec/spec_helper.rb
osso-0.0.3.1 spec/spec_helper.rb