Changeset View
Changeset View
Standalone View
Standalone View
spec/unit/puppet/type/keycloak_identity_provider_spec.rb
Show First 20 Lines • Show All 46 Lines • ▼ Show 20 Lines | it 'handles componsite name' do | ||||
expect(component[:alias]).to eq('foo') | expect(component[:alias]).to eq('foo') | ||||
expect(component[:realm]).to eq('test') | expect(component[:realm]).to eq('test') | ||||
end | end | ||||
it 'defaults to provider_id=oidc' do | it 'defaults to provider_id=oidc' do | ||||
expect(resource[:provider_id]).to eq('oidc') | expect(resource[:provider_id]).to eq('oidc') | ||||
end | end | ||||
it 'allows keycloak-oidc' do | |||||
config[:provider_id] = 'keycloak-oidc' | |||||
expect(resource[:provider_id]).to eq('keycloak-oidc') | |||||
end | |||||
it 'does not allow invalid provider_id' do | it 'does not allow invalid provider_id' do | ||||
config[:provider_id] = 'foo' | config[:provider_id] = 'foo' | ||||
expect { | expect { | ||||
resource | resource | ||||
}.to raise_error(%r{foo}) | }.to raise_error(%r{foo}) | ||||
end | end | ||||
it 'defaults to update_profile_first_login_mode=on' do | it 'defaults to update_profile_first_login_mode=on' do | ||||
▲ Show 20 Lines • Show All 45 Lines • ▼ Show 20 Lines | [ | ||||
:client_id, | :client_id, | ||||
:token_url, | :token_url, | ||||
:authorization_url, | :authorization_url, | ||||
:logout_url, | :logout_url, | ||||
:issuer, | :issuer, | ||||
:default_scope, | :default_scope, | ||||
:allowed_clock_skew, | :allowed_clock_skew, | ||||
:forward_parameters, | :forward_parameters, | ||||
:jwks_url, | |||||
].each do |p| | ].each do |p| | ||||
it "should accept a #{p}" do | it "should accept a #{p}" do | ||||
config[p] = 'foo' | config[p] = 'foo' | ||||
expect(resource[p]).to eq('foo') | expect(resource[p]).to eq('foo') | ||||
end | end | ||||
next unless defaults[p] | next unless defaults[p] | ||||
it "should have default for #{p}" do | it "should have default for #{p}" do | ||||
expect(resource[p]).to eq(defaults[p]) | expect(resource[p]).to eq(defaults[p]) | ||||
end | end | ||||
end | end | ||||
end | end | ||||
describe 'integer properties' do | |||||
# Test integer properties | |||||
[ | |||||
:gui_order, | |||||
].each do |p| | |||||
it "should accept a #{p}" do | |||||
config[p] = 100 | |||||
expect(resource[p]).to eq('100') | |||||
end | |||||
next unless defaults[p] | |||||
it "should have default for #{p}" do | |||||
expect(resource[p]).to eq(defaults[p]) | |||||
end | |||||
end | |||||
end | |||||
describe 'boolean properties' do | describe 'boolean properties' do | ||||
# Test boolean properties | # Test boolean properties | ||||
[ | [ | ||||
:enabled, | :enabled, | ||||
:trust_email, | :trust_email, | ||||
:store_token, | :store_token, | ||||
:add_read_token_role_on_create, | :add_read_token_role_on_create, | ||||
:authenticate_by_default, | :authenticate_by_default, | ||||
▲ Show 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | describe 'client_auth_method' do | ||||
end | end | ||||
it 'does not accept invalid values' do | it 'does not accept invalid values' do | ||||
config[:client_auth_method] = 'foo' | config[:client_auth_method] = 'foo' | ||||
expect { resource }.to raise_error(%r{Invalid}) | expect { resource }.to raise_error(%r{Invalid}) | ||||
end | end | ||||
end | end | ||||
describe 'sync_mode' do | |||||
[ | |||||
'IMPORT', 'LEGACY', 'FORCE' | |||||
].each do |v| | |||||
it "accepts #{v}" do | |||||
config[:sync_mode] = v | |||||
expect(resource[:sync_mode]).to eq(v) | |||||
end | |||||
end | |||||
it 'does not accept invalid values' do | |||||
config[:sync_mode] = 'foo' | |||||
expect { resource }.to raise_error(%r{Invalid}) | |||||
end | |||||
end | |||||
it 'autorequires keycloak_conn_validator' do | it 'autorequires keycloak_conn_validator' do | ||||
keycloak_conn_validator = Puppet::Type.type(:keycloak_conn_validator).new(name: 'keycloak') | keycloak_conn_validator = Puppet::Type.type(:keycloak_conn_validator).new(name: 'keycloak') | ||||
catalog = Puppet::Resource::Catalog.new | catalog = Puppet::Resource::Catalog.new | ||||
catalog.add_resource resource | catalog.add_resource resource | ||||
catalog.add_resource keycloak_conn_validator | catalog.add_resource keycloak_conn_validator | ||||
rel = resource.autorequire[0] | rel = resource.autorequire[0] | ||||
expect(rel.source.ref).to eq(keycloak_conn_validator.ref) | expect(rel.source.ref).to eq(keycloak_conn_validator.ref) | ||||
expect(rel.target.ref).to eq(resource.ref) | expect(rel.target.ref).to eq(resource.ref) | ||||
Show All 14 Lines | it 'autorequires keycloak_realm' do | ||||
catalog = Puppet::Resource::Catalog.new | catalog = Puppet::Resource::Catalog.new | ||||
catalog.add_resource resource | catalog.add_resource resource | ||||
catalog.add_resource keycloak_realm | catalog.add_resource keycloak_realm | ||||
rel = resource.autorequire[0] | rel = resource.autorequire[0] | ||||
expect(rel.source.ref).to eq(keycloak_realm.ref) | expect(rel.source.ref).to eq(keycloak_realm.ref) | ||||
expect(rel.target.ref).to eq(resource.ref) | expect(rel.target.ref).to eq(resource.ref) | ||||
end | end | ||||
it 'autorequires browser flow' do | |||||
config[:first_broker_login_flow_alias] = 'foo' | |||||
flow = Puppet::Type.type(:keycloak_flow).new(name: 'foo', realm: 'test') | |||||
catalog = Puppet::Resource::Catalog.new | |||||
catalog.add_resource resource | |||||
catalog.add_resource flow | |||||
rel = resource.autorequire[0] | |||||
expect(rel.source.ref).to eq(flow.ref) | |||||
expect(rel.target.ref).to eq(resource.ref) | |||||
end | |||||
it 'requires realm' do | it 'requires realm' do | ||||
config[:ensure] = :present | config[:ensure] = :present | ||||
config[:provider_id] = 'oidc' | config[:provider_id] = 'oidc' | ||||
config.delete(:realm) | config.delete(:realm) | ||||
expect { resource }.to raise_error(Puppet::Error, %r{realm is required}) | expect { resource }.to raise_error(Puppet::Error, %r{realm is required}) | ||||
end | end | ||||
it 'requires authorization_url' do | it 'requires authorization_url' do | ||||
Show All 27 Lines |