require 'test_helper'
class EppContactCreateBaseTest < EppTestCase
def test_creates_new_contact_with_required_attributes
name = 'new'
email = 'new@registrar.test'
phone = '+1.2'
request_xml = <<-XML
#{name}
#{phone}
#{email}
any
XML
assert_difference 'Contact.count' do
post epp_create_path, params: { frame: request_xml },
headers: { 'HTTP_COOKIE' => 'session=api_bestnames' }
end
assert_epp_response :completed_successfully
contact = Contact.find_by(name: name)
assert_equal name, contact.name
assert_equal email, contact.email
assert_equal phone, contact.phone
assert_not_empty contact.code
end
def test_respects_custom_code
name = 'new'
code = 'custom-id'
session = epp_sessions(:api_bestnames)
request_xml = <<-XML
#{code}
#{name}
+1.2
any@any.test
any
XML
post epp_create_path, params: { frame: request_xml },
headers: { 'HTTP_COOKIE' => "session=#{session.session_id}" }
contact = Contact.find_by(name: name)
assert_equal "#{session.user.registrar.code}:#{code}".upcase, contact.code
end
def test_fails_when_required_attributes_are_missing
request_xml = <<-XML
\s
+123.4
new@inbox.test
test
XML
assert_no_difference 'Contact.count' do
post epp_create_path, params: { frame: request_xml },
headers: { 'HTTP_COOKIE' => 'session=api_bestnames' }
end
assert_epp_response :required_parameter_missing
end
end