diff --git a/app/models/epp_session.rb b/app/models/epp_session.rb index dd97a91a9..3d489e567 100644 --- a/app/models/epp_session.rb +++ b/app/models/epp_session.rb @@ -2,5 +2,5 @@ class EppSession < ActiveRecord::Base belongs_to :user, required: true belongs_to :registrar - validates :session_id, presence: true + validates :session_id, uniqueness: true, presence: true end diff --git a/test/models/epp_session_test.rb b/test/models/epp_session_test.rb index a6aca3eca..497bf441e 100644 --- a/test/models/epp_session_test.rb +++ b/test/models/epp_session_test.rb @@ -20,4 +20,18 @@ class EppSessionTest < ActiveSupport::TestCase @epp_session.validate assert @epp_session.invalid? end + + def test_invalid_if_persisted_record_with_the_same_session_id_exists + epp_session = EppSession.new(session_id: @epp_session.session_id, user: @epp_session.user) + epp_session.validate + assert epp_session.invalid? + end + + def test_database_session_id_unique_constraint + epp_session = EppSession.new(session_id: @epp_session.session_id, user: @epp_session.user) + + assert_raises ActiveRecord::RecordNotUnique do + epp_session.save(validate: false) + end + end end