require 'rails_helper' describe 'EPP Domain', epp: true do let(:server) { server = Epp::Server.new({server: 'localhost', tag: 'gitlab', password: 'ghyt9e4fu', port: 701}) } context 'with valid user' do before(:each) { Fabricate(:epp_user) } # incomplete it 'creates a domain' do response = epp_request('domains/create.xml') expect(response[:result_code]).to eq('1000') expect(response[:msg]).to eq('Command completed successfully') expect(response[:clTRID]).to eq('ABC-12345') expect(Domain.first.registrar.name).to eq('Zone Media OÜ') end it 'does not create duplicate domain' do epp_request('domains/create.xml') response = epp_request('domains/create.xml') expect(response[:result_code]).to eq('2302') expect(response[:msg]).to eq('Domain name already exists') expect(response[:clTRID]).to eq('ABC-12345') end it 'checks a domain' do response = epp_request('domains/check.xml') expect(response[:result_code]).to eq('1000') expect(response[:msg]).to eq('Command completed successfully') domain = response[:parsed].css('resData chkData cd name').first expect(domain.text).to eq('one.ee') expect(domain[:avail]).to eq('1') Fabricate(:domain, name: 'one.ee') response = epp_request('domains/check.xml') domain = response[:parsed].css('resData chkData cd').first name = domain.css('name').first reason = domain.css('reason').first expect(name.text).to eq('one.ee') expect(name[:avail]).to eq('0') expect(reason.text).to eq('in use') #confirm this with current API end it 'checks multiple domains' do response = epp_request('domains/check_multiple.xml') expect(response[:result_code]).to eq('1000') expect(response[:msg]).to eq('Command completed successfully') domain = response[:parsed].css('resData chkData cd name').first expect(domain.text).to eq('one.ee') expect(domain[:avail]).to eq('1') domain = response[:parsed].css('resData chkData cd name').last expect(domain.text).to eq('three.ee') expect(domain[:avail]).to eq('1') end it 'checks invalid format domain' do response = epp_request('domains/check_multiple_with_invalid.xml') expect(response[:result_code]).to eq('1000') expect(response[:msg]).to eq('Command completed successfully') domain = response[:parsed].css('resData chkData cd name').first expect(domain.text).to eq('one.ee') expect(domain[:avail]).to eq('1') domain = response[:parsed].css('resData chkData cd').last name = domain.css('name').first reason = domain.css('reason').first expect(name.text).to eq('notcorrectdomain') expect(name[:avail]).to eq('0') expect(reason.text).to eq('invalid format') end end end