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