Skip to content

Commit 46fc0f9

Browse files
Add spec for admin mapping
1 parent 6f6464c commit 46fc0f9

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

test/lib/omniauth/strategies/openid_connect_test.rb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,30 @@ def test_info_custom_mapping
363363
assert_equal 'bar', info[:login]
364364
end
365365

366+
def test_info_boolean_mapping_false
367+
strategy.options.attribute_map = { admin: 'isAdmin' }
368+
369+
info = strategy.info
370+
371+
assert_equal user_info.name, info[:name]
372+
assert_equal user_info.email, info[:email]
373+
assert_equal false, info[:admin]
374+
end
375+
376+
def test_info_boolean_mapping_true
377+
azure_userinfo = ::OpenIDConnect::ResponseObject::UserInfo.new(
378+
sub: SecureRandom.hex(16),
379+
name: Faker::Name.name,
380+
isAdmin: true
381+
)
382+
strategy.stubs(:user_info).returns(azure_userinfo)
383+
strategy.options.attribute_map = { admin: 'isAdmin' }
384+
385+
info = strategy.info
386+
387+
assert_equal true, info[:admin]
388+
end
389+
366390
def test_info_mail_unique_mapping
367391
azure_userinfo = ::OpenIDConnect::ResponseObject::UserInfo.new(
368392
sub: SecureRandom.hex(16),

test/strategy_test_case.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
class StrategyTestCase < MiniTest::Test
1+
class StrategyTestCase < Minitest::Test
22
class DummyApp
33
def call(env); end
44
end
@@ -28,7 +28,8 @@ def user_info
2828
phone_number: Faker::PhoneNumber.phone_number,
2929
website: Faker::Internet.url,
3030
# custom claim
31-
foobar: 'bar'
31+
foobar: 'bar',
32+
isAdmin: false
3233
)
3334
end
3435

0 commit comments

Comments
 (0)