Sha256: 57c334a12dd7f4c016b305ea76a153645ac3842566a2306bc2424d440d997294

Contents?: true

Size: 1.85 KB

Versions: 5

Compression:

Stored size: 1.85 KB

Contents

# frozen_string_literal: true

require 'test_helper'

class OmniAuthConfigTest < ActiveSupport::TestCase
  class MyStrategy
    include OmniAuth::Strategy
  end

  test 'strategy_name returns provider if no options given' do
    config = Devise::OmniAuth::Config.new :facebook, [{}]
    assert_equal :facebook, config.strategy_name
  end

  test 'strategy_name returns provider if no name option are given' do
    config = Devise::OmniAuth::Config.new :facebook, [{ other: :option }]
    assert_equal :facebook, config.strategy_name
  end

  test 'returns name option when have a name' do
    config = Devise::OmniAuth::Config.new :facebook, [{ name: :github }]
    assert_equal :github, config.strategy_name
  end

  test "finds contrib strategies" do
    config = Devise::OmniAuth::Config.new :facebook, [{}]
    assert_equal OmniAuth::Strategies::Facebook, config.strategy_class
  end

  class NamedTestStrategy
    include OmniAuth::Strategy
    option :name, :the_one
  end

  test "finds the strategy in OmniAuth's list by name" do
    config = Devise::OmniAuth::Config.new :the_one, [{}]
    assert_equal NamedTestStrategy, config.strategy_class
  end

  class UnNamedTestStrategy
    include OmniAuth::Strategy
  end

  test "finds the strategy in OmniAuth's list by class name" do
    config = Devise::OmniAuth::Config.new :un_named_test_strategy, [{}]
    assert_equal UnNamedTestStrategy, config.strategy_class
  end

  test 'raises an error if strategy cannot be found' do
    config = Devise::OmniAuth::Config.new :my_other_strategy, [{}]
    assert_raise Devise::OmniAuth::StrategyNotFound do
      config.strategy_class
    end
  end

  test 'allows the user to define a custom require path' do
    config = Devise::OmniAuth::Config.new :my_strategy, [{strategy_class: MyStrategy}]
    config_class = config.strategy_class
    assert_equal MyStrategy, config_class
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
devise-4.5.0 test/omniauth/config_test.rb
devise-4.4.3 test/omniauth/config_test.rb
devise-4.4.2 test/omniauth/config_test.rb
devise-4.4.1 test/omniauth/config_test.rb
devise-4.4.0 test/omniauth/config_test.rb