Create tests for jobs triggered by registrant confirmations

This commit is contained in:
Karl Erik Õunapuu 2020-07-30 13:10:13 +03:00
parent 8d3fc07754
commit 78d473f3e6
4 changed files with 86 additions and 8 deletions

View file

@ -166,6 +166,7 @@ test:
lhv_keystore: 'test/fixtures/files/keystore.jks' lhv_keystore: 'test/fixtures/files/keystore.jks'
lhv_keystore_password: 'testtest' lhv_keystore_password: 'testtest'
lhv_keystore_alias: 'testtest' lhv_keystore_alias: 'testtest'
legal_documents_dir: 'test/fixtures/files'
# Airbrake // Errbit: # Airbrake // Errbit:
airbrake_host: "https://your-errbit-host.ee" airbrake_host: "https://your-errbit-host.ee"

BIN
test/fixtures/files/legaldoc.pdf vendored Normal file

Binary file not shown.

View file

@ -1,17 +1,11 @@
require "test_helper" require "test_helper"
class DomainDeleteConfirmJobTest < ActiveSupport::TestCase class DomainDeleteConfirmJobTest < ActiveSupport::TestCase
def setup setup do
super @legal_doc_path = 'test/fixtures/files/legaldoc.pdf'
@domain = domains(:shop) @domain = domains(:shop)
@new_registrant = contacts(:william) @new_registrant = contacts(:william)
@user = users(:api_bestnames) @user = users(:api_bestnames)
@domain.update!(pending_json: { new_registrant_id: @new_registrant.id,
new_registrant_name: @new_registrant.name,
new_registrant_email: @new_registrant.email,
current_user_id: @user.id })
end end
def teardown def teardown
@ -19,6 +13,11 @@ class DomainDeleteConfirmJobTest < ActiveSupport::TestCase
end end
def test_rejected_registrant_verification_notifies_registrar def test_rejected_registrant_verification_notifies_registrar
@domain.update!(pending_json: { new_registrant_id: @new_registrant.id,
new_registrant_name: @new_registrant.name,
new_registrant_email: @new_registrant.email,
current_user_id: @user.id })
DomainDeleteConfirmJob.enqueue(@domain.id, RegistrantVerification::REJECTED) DomainDeleteConfirmJob.enqueue(@domain.id, RegistrantVerification::REJECTED)
last_registrar_notification = @domain.registrar.notifications.last last_registrar_notification = @domain.registrar.notifications.last
@ -27,10 +26,57 @@ class DomainDeleteConfirmJobTest < ActiveSupport::TestCase
end end
def test_accepted_registrant_verification_notifies_registrar def test_accepted_registrant_verification_notifies_registrar
@domain.update!(pending_json: { new_registrant_id: @new_registrant.id,
new_registrant_name: @new_registrant.name,
new_registrant_email: @new_registrant.email,
current_user_id: @user.id })
DomainDeleteConfirmJob.enqueue(@domain.id, RegistrantVerification::CONFIRMED) DomainDeleteConfirmJob.enqueue(@domain.id, RegistrantVerification::CONFIRMED)
last_registrar_notification = @domain.registrar.notifications.last last_registrar_notification = @domain.registrar.notifications.last
assert_equal(last_registrar_notification.attached_obj_id, @domain.id) assert_equal(last_registrar_notification.attached_obj_id, @domain.id)
assert_equal(last_registrar_notification.text, 'Registrant confirmed domain deletion: shop.test') assert_equal(last_registrar_notification.text, 'Registrant confirmed domain deletion: shop.test')
end end
def test_marks_domain_as_pending_delete_after_acceptance
epp_xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<epp>\n <command>\n <delete>\n" \
" <delete verified=\"no\">\n <name>#{@domain.name}</name>\n </delete>\n </delete>\n <extension>\n" \
" <extdata>\n <legalDocument type=\"pdf\">#{@legal_doc_path}</legalDocument>\n" \
" </extdata>\n </extension>\n <clTRID>20alla-1594212240</clTRID>\n </command>\n</epp>\n"
@domain.registrant_verification_asked!(epp_xml, @user.id)
@domain.pending_delete!
@domain.reload
assert @domain.registrant_delete_confirmable?(@domain.registrant_verification_token)
assert_equal @user.id, @domain.pending_json['current_user_id']
DomainDeleteConfirmJob.enqueue(@domain.id, RegistrantVerification::CONFIRMED)
@domain.reload
assert @domain.statuses.include? DomainStatus::PENDING_DELETE
assert @domain.statuses.include? DomainStatus::SERVER_HOLD
assert_not @domain.statuses.include? DomainStatus::PENDING_DELETE_CONFIRMATION
end
def test_clears_pending_flags_after_delete_denial
epp_xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<epp>\n <command>\n <delete>\n" \
" <delete verified=\"no\">\n <name>#{@domain.name}</name>\n </delete>\n </delete>\n <extension>\n" \
" <extdata>\n <legalDocument type=\"pdf\">#{@legal_doc_path}</legalDocument>\n" \
" </extdata>\n </extension>\n <clTRID>20alla-1594212240</clTRID>\n </command>\n</epp>\n"
@domain.registrant_verification_asked!(epp_xml, @user.id)
@domain.pending_delete!
@domain.reload
assert @domain.registrant_delete_confirmable?(@domain.registrant_verification_token)
assert_equal @user.id, @domain.pending_json['current_user_id']
DomainDeleteConfirmJob.enqueue(@domain.id, RegistrantVerification::REJECTED)
@domain.reload
assert_equal ['ok'], @domain.statuses
assert_not @domain.statuses.include? DomainStatus::PENDING_DELETE_CONFIRMATION
assert_not @domain.statuses.include? DomainStatus::PENDING_DELETE
end
end end

View file

@ -7,6 +7,7 @@ class DomainUpdateConfirmJobTest < ActiveSupport::TestCase
@domain = domains(:shop) @domain = domains(:shop)
@new_registrant = contacts(:william) @new_registrant = contacts(:william)
@user = users(:api_bestnames) @user = users(:api_bestnames)
@legal_doc_path = 'test/fixtures/files/legaldoc.pdf'
@domain.update!(pending_json: { new_registrant_id: @new_registrant.id, @domain.update!(pending_json: { new_registrant_id: @new_registrant.id,
new_registrant_name: @new_registrant.name, new_registrant_name: @new_registrant.name,
@ -33,4 +34,34 @@ class DomainUpdateConfirmJobTest < ActiveSupport::TestCase
assert_equal(last_registrar_notification.attached_obj_id, @domain.id) assert_equal(last_registrar_notification.attached_obj_id, @domain.id)
assert_equal(last_registrar_notification.text, 'Registrant confirmed domain update: shop.test') assert_equal(last_registrar_notification.text, 'Registrant confirmed domain update: shop.test')
end end
def test_changes_domain_registrant_after_approval
epp_xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<epp>\n <command>\n <update>\n <update>\n <name>#{@domain.name}</name>\n" \
" <chg>\n <registrant>#{@new_registrant.code}</registrant>\n </chg>\n </update>\n </update>\n <extension>\n <update/>\n" \
" <extdata>\n <legalDocument type=\"pdf\">#{@legal_doc_path}</legalDocument>\n </extdata>\n" \
" </extension>\n <clTRID>20alla-1594199756</clTRID>\n </command>\n</epp>\n"
@domain.pending_json['frame'] = epp_xml
@domain.update(pending_json: @domain.pending_json)
@domain.reload
DomainUpdateConfirmJob.enqueue(@domain.id, RegistrantVerification::CONFIRMED)
@domain.reload
assert_equal @domain.registrant.code, @new_registrant.code
end
def test_clears_pending_update_after_denial
epp_xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<epp>\n <command>\n <update>\n <update>\n <name>#{@domain.name}</name>\n" \
" <chg>\n <registrant>#{@new_registrant.code}</registrant>\n </chg>\n </update>\n </update>\n <extension>\n <update/>\n" \
" <extdata>\n <legalDocument type=\"pdf\">#{@legal_doc_path}</legalDocument>\n </extdata>\n" \
" </extension>\n <clTRID>20alla-1594199756</clTRID>\n </command>\n</epp>\n"
@domain.pending_json['frame'] = epp_xml
@domain.update(pending_json: @domain.pending_json)
DomainUpdateConfirmJob.enqueue(@domain.id, RegistrantVerification::REJECTED)
@domain.reload
assert_not @domain.statuses.include? DomainStatus::PENDING_DELETE_CONFIRMATION
assert_not @domain.statuses.include? DomainStatus::PENDING_DELETE
end
end end