From 46fc0f99489cedaf5a1c0510eae121c421a5e1b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20G=C3=BCnther?= Date: Thu, 2 Nov 2023 16:37:09 +0100 Subject: [PATCH] Add spec for admin mapping --- .../strategies/openid_connect_test.rb | 24 +++++++++++++++++++ test/strategy_test_case.rb | 5 ++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/test/lib/omniauth/strategies/openid_connect_test.rb b/test/lib/omniauth/strategies/openid_connect_test.rb index f642f41..1fe3ba4 100644 --- a/test/lib/omniauth/strategies/openid_connect_test.rb +++ b/test/lib/omniauth/strategies/openid_connect_test.rb @@ -363,6 +363,30 @@ def test_info_custom_mapping assert_equal 'bar', info[:login] end + def test_info_boolean_mapping_false + strategy.options.attribute_map = { admin: 'isAdmin' } + + info = strategy.info + + assert_equal user_info.name, info[:name] + assert_equal user_info.email, info[:email] + assert_equal false, info[:admin] + end + + def test_info_boolean_mapping_true + azure_userinfo = ::OpenIDConnect::ResponseObject::UserInfo.new( + sub: SecureRandom.hex(16), + name: Faker::Name.name, + isAdmin: true + ) + strategy.stubs(:user_info).returns(azure_userinfo) + strategy.options.attribute_map = { admin: 'isAdmin' } + + info = strategy.info + + assert_equal true, info[:admin] + end + def test_info_mail_unique_mapping azure_userinfo = ::OpenIDConnect::ResponseObject::UserInfo.new( sub: SecureRandom.hex(16), diff --git a/test/strategy_test_case.rb b/test/strategy_test_case.rb index 2c2be59..9c23e14 100644 --- a/test/strategy_test_case.rb +++ b/test/strategy_test_case.rb @@ -1,4 +1,4 @@ -class StrategyTestCase < MiniTest::Test +class StrategyTestCase < Minitest::Test class DummyApp def call(env); end end @@ -28,7 +28,8 @@ def user_info phone_number: Faker::PhoneNumber.phone_number, website: Faker::Internet.url, # custom claim - foobar: 'bar' + foobar: 'bar', + isAdmin: false ) end