b40ff63412
When there are no groups defined in the auth hash attributes, `Gitlab::Saml::AuthHash#groups` should return an empty array, and `Gitlab::Saml::User#find_user` should not mark the user as external. Closes gitlab-org/gitlab-ce#38923.
40 lines
1,003 B
Ruby
40 lines
1,003 B
Ruby
require 'spec_helper'
|
|
|
|
describe Gitlab::Saml::AuthHash do
|
|
include LoginHelpers
|
|
|
|
let(:raw_info_attr) { { 'groups' => %w(Developers Freelancers) } }
|
|
subject(:saml_auth_hash) { described_class.new(omniauth_auth_hash) }
|
|
|
|
let(:info_hash) do
|
|
{
|
|
name: 'John',
|
|
email: 'john@mail.com'
|
|
}
|
|
end
|
|
|
|
let(:omniauth_auth_hash) do
|
|
OmniAuth::AuthHash.new(uid: 'my-uid',
|
|
provider: 'saml',
|
|
info: info_hash,
|
|
extra: { raw_info: OneLogin::RubySaml::Attributes.new(raw_info_attr) } )
|
|
end
|
|
|
|
before do
|
|
stub_saml_group_config(%w(Developers Freelancers Designers))
|
|
end
|
|
|
|
describe '#groups' do
|
|
it 'returns array of groups' do
|
|
expect(saml_auth_hash.groups).to eq(%w(Developers Freelancers))
|
|
end
|
|
|
|
context 'raw info hash attributes empty' do
|
|
let(:raw_info_attr) { {} }
|
|
|
|
it 'returns an empty array' do
|
|
expect(saml_auth_hash.groups).to be_a(Array)
|
|
end
|
|
end
|
|
end
|
|
end
|