mirror of
https://github.com/internetee/registry.git
synced 2025-07-23 19:20:37 +02:00
parent
59db269240
commit
d695d95ad7
15 changed files with 184 additions and 30 deletions
|
@ -129,6 +129,51 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest
|
|||
symbolize_names: true)
|
||||
end
|
||||
|
||||
def test_disclose_private_persons_data
|
||||
@contact.update!(ident_type: Contact::PRIV,
|
||||
disclosed_attributes: %w[])
|
||||
|
||||
patch api_v1_registrant_contact_path(@contact.uuid), { disclosed_attributes: %w[name] }.to_json,
|
||||
'HTTP_AUTHORIZATION' => auth_token,
|
||||
'Accept' => Mime::JSON,
|
||||
'Content-Type' => Mime::JSON.to_s
|
||||
@contact.reload
|
||||
|
||||
assert_response :ok
|
||||
assert_equal %w[name], @contact.disclosed_attributes
|
||||
end
|
||||
|
||||
def test_conceal_private_persons_data
|
||||
@contact.update!(ident_type: Contact::PRIV, disclosed_attributes: %w[name])
|
||||
|
||||
patch api_v1_registrant_contact_path(@contact.uuid), { disclosed_attributes: [] }.to_json,
|
||||
{ 'HTTP_AUTHORIZATION' => auth_token,
|
||||
'Accept' => Mime::JSON,
|
||||
'Content-Type' => Mime::JSON.to_s }
|
||||
|
||||
@contact.reload
|
||||
|
||||
assert_response :ok
|
||||
assert_empty @contact.disclosed_attributes
|
||||
end
|
||||
|
||||
def test_legal_persons_data_cannot_be_concealed
|
||||
@contact.update!(ident_type: Contact::ORG,
|
||||
disclosed_attributes: %w[])
|
||||
|
||||
assert_no_changes -> { @contact.disclosed_attributes } do
|
||||
patch api_v1_registrant_contact_path(@contact.uuid), { disclosed_attributes: %w[name] }.to_json,
|
||||
'HTTP_AUTHORIZATION' => auth_token,
|
||||
'Accept' => Mime::JSON,
|
||||
'Content-Type' => Mime::JSON.to_s
|
||||
@contact.reload
|
||||
end
|
||||
assert_response :bad_request
|
||||
error_msg = "Legal person's data cannot be concealed. Please remove this parameter."
|
||||
assert_equal ({ errors: [{ disclosed_attributes: [error_msg] }] }),
|
||||
JSON.parse(response.body, symbolize_names: true)
|
||||
end
|
||||
|
||||
def test_return_contact_details
|
||||
patch api_v1_registrant_contact_path(@contact.uuid), { name: 'new name' }.to_json,
|
||||
'HTTP_AUTHORIZATION' => auth_token,
|
||||
|
@ -153,7 +198,9 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest
|
|||
country_code: @contact.country_code,
|
||||
},
|
||||
auth_info: @contact.auth_info,
|
||||
statuses: @contact.statuses }), JSON.parse(response.body, symbolize_names: true)
|
||||
statuses: @contact.statuses,
|
||||
disclosed_attributes: @contact.disclosed_attributes }),
|
||||
JSON.parse(response.body, symbolize_names: true)
|
||||
end
|
||||
|
||||
def test_errors
|
||||
|
|
39
test/models/contact/disclosable_test.rb
Normal file
39
test/models/contact/disclosable_test.rb
Normal file
|
@ -0,0 +1,39 @@
|
|||
require 'test_helper'
|
||||
|
||||
class ContactDisclosableTest < ActiveSupport::TestCase
|
||||
setup do
|
||||
@contact = contacts(:john)
|
||||
@original_disclosable_attributes = Contact.disclosable_attributes
|
||||
end
|
||||
|
||||
teardown do
|
||||
Contact.disclosable_attributes = @original_disclosable_attributes
|
||||
end
|
||||
|
||||
def test_no_disclosed_attributes_by_default
|
||||
assert_empty Contact.new.disclosed_attributes
|
||||
end
|
||||
|
||||
def test_disclosable_attributes
|
||||
assert_equal %w[name email], Contact.disclosable_attributes
|
||||
end
|
||||
|
||||
def test_valid_without_disclosed_attributes
|
||||
@contact.disclosed_attributes = []
|
||||
assert @contact.valid?
|
||||
end
|
||||
|
||||
def test_invalid_when_attribute_is_not_disclosable
|
||||
Contact.disclosable_attributes = %w[some disclosable]
|
||||
@contact.disclosed_attributes = %w[some undisclosable]
|
||||
|
||||
assert @contact.invalid?
|
||||
assert_includes @contact.errors.get(:disclosed_attributes), 'contain unsupported attribute(s)'
|
||||
end
|
||||
|
||||
def test_valid_when_attribute_is_disclosable
|
||||
Contact.disclosable_attributes = %w[some disclosable]
|
||||
@contact.disclosed_attributes = %w[disclosable]
|
||||
assert @contact.valid?
|
||||
end
|
||||
end
|
|
@ -6,7 +6,7 @@ class ContactTest < ActiveSupport::TestCase
|
|||
end
|
||||
|
||||
def test_valid_fixture
|
||||
assert @contact.valid?
|
||||
assert @contact.valid?, proc { @contact.errors.full_messages }
|
||||
end
|
||||
|
||||
def test_invalid_without_email
|
||||
|
@ -48,4 +48,4 @@ class ContactTest < ActiveSupport::TestCase
|
|||
assert_equal 'EE', @contact.country_code
|
||||
assert_equal address, @contact.address
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -39,12 +39,13 @@ class WhoisRecordTest < ActiveSupport::TestCase
|
|||
end
|
||||
|
||||
def test_generates_json_with_registrant
|
||||
registrant = contacts(:john).becomes(Registrant)
|
||||
registrant.update!(name: 'John', kind: 'priv', email: 'john@shop.test',
|
||||
updated_at: Time.zone.parse('2010-07-05'))
|
||||
contact = contacts(:john)
|
||||
contact.update!(name: 'John', kind: 'priv', email: 'john@shop.test',
|
||||
updated_at: Time.zone.parse('2010-07-05'),
|
||||
disclosed_attributes: %w[name])
|
||||
|
||||
domain = domains(:shop)
|
||||
domain.update!(registrant: registrant)
|
||||
domain.update!(registrant: contact.becomes(Registrant))
|
||||
|
||||
whois_record = whois_records(:shop)
|
||||
whois_record.update!(json: {})
|
||||
|
@ -54,12 +55,14 @@ class WhoisRecordTest < ActiveSupport::TestCase
|
|||
assert_equal 'priv', generated_json[:registrant_kind]
|
||||
assert_equal 'john@shop.test', generated_json[:email]
|
||||
assert_equal '2010-07-05T00:00:00+03:00', generated_json[:registrant_changed]
|
||||
assert_equal %w[name], generated_json[:registrant_disclosed_attributes]
|
||||
end
|
||||
|
||||
def test_generates_json_with_admin_contacts
|
||||
contact = contacts(:john)
|
||||
contact.update!(name: 'John', email: 'john@shop.test',
|
||||
updated_at: Time.zone.parse('2010-07-05'))
|
||||
updated_at: Time.zone.parse('2010-07-05'),
|
||||
disclosed_attributes: %w[name])
|
||||
|
||||
domain = domains(:shop)
|
||||
domain.admin_contacts = [contact]
|
||||
|
@ -71,12 +74,14 @@ class WhoisRecordTest < ActiveSupport::TestCase
|
|||
assert_equal 'John', admin_contact_json[:name]
|
||||
assert_equal 'john@shop.test', admin_contact_json[:email]
|
||||
assert_equal '2010-07-05T00:00:00+03:00', admin_contact_json[:changed]
|
||||
assert_equal %w[name], admin_contact_json[:disclosed_attributes]
|
||||
end
|
||||
|
||||
def test_generates_json_with_tech_contacts
|
||||
contact = contacts(:john)
|
||||
contact.update!(name: 'John', email: 'john@shop.test',
|
||||
updated_at: Time.zone.parse('2010-07-05'))
|
||||
updated_at: Time.zone.parse('2010-07-05'),
|
||||
disclosed_attributes: %w[name])
|
||||
|
||||
domain = domains(:shop)
|
||||
domain.tech_contacts = [contact]
|
||||
|
@ -88,5 +93,6 @@ class WhoisRecordTest < ActiveSupport::TestCase
|
|||
assert_equal 'John', tech_contact_json[:name]
|
||||
assert_equal 'john@shop.test', tech_contact_json[:email]
|
||||
assert_equal '2010-07-05T00:00:00+03:00', tech_contact_json[:changed]
|
||||
assert_equal %w[name], tech_contact_json[:disclosed_attributes]
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue