diff --git a/app/services/agency_identity_linker.rb b/app/services/agency_identity_linker.rb index 5c25e7078ae..81ec64f25aa 100644 --- a/app/services/agency_identity_linker.rb +++ b/app/services/agency_identity_linker.rb @@ -51,7 +51,7 @@ def find_or_create_agency_identity def create_agency_identity_for_sp return unless agency_id - AgencyIdentity.create( + AgencyIdentity.create_or_find_by( agency_id: agency_id, user_id: @sp_identity.user_id, uuid: @sp_identity.uuid, diff --git a/spec/services/agency_identity_linker_spec.rb b/spec/services/agency_identity_linker_spec.rb index 505a2079df0..6af4e0c9e77 100644 --- a/spec/services/agency_identity_linker_spec.rb +++ b/spec/services/agency_identity_linker_spec.rb @@ -7,9 +7,12 @@ it 'links identities from 2 sps' do sp1 = create_service_provider_identity(user, 'http://localhost:3000', 'UUID1') - create_service_provider_identity(user, 'urn:gov:gsa:openidconnect:test', 'UUID2') + sp2 = create_service_provider_identity(user, 'urn:gov:gsa:openidconnect:test', 'UUID2') ai = AgencyIdentityLinker.new(sp1).link_identity + ai2 = AgencyIdentityLinker.new(sp2).link_identity expect(ai.uuid).to eq('UUID1') + expect(ai2.uuid).to eq('UUID1') + ai = AgencyIdentity.where(user_id: user.id).first expect(ai.uuid).to eq('UUID1') end