require 'rails_helper'
RSpec.describe 'EPP domain:renew' do
let(:request) { post '/epp/command/renew', frame: request_xml }
let!(:user) { create(:api_user_epp, registrar: registrar) }
let!(:registrar) { create(:registrar_with_unlimited_balance) }
let!(:zone) { create(:zone, origin: 'test') }
let!(:price) { create(:price,
duration: '1 year',
price: Money.from_amount(1),
operation_category: 'renew',
valid_from: Time.zone.parse('05.07.2010'),
valid_to: Time.zone.parse('05.07.2010'),
zone: zone)
}
before :example do
Setting.days_to_renew_domain_before_expire = 0
travel_to Time.zone.parse('05.07.2010')
sign_in_to_epp_area(user: user)
end
context 'when given expire time and current match' do
let!(:domain) { create(:domain,
registrar: registrar,
name: 'test.test',
expire_time: Time.zone.parse('05.07.2010'))
}
let(:request_xml) { <<-XML
test.test
2010-07-05
1
XML
}
it 'renews domain' do
request
domain.reload
expect(domain.expire_time).to eq(Time.zone.parse('05.07.2011'))
end
specify do
request
expect(response).to have_code_of(1000)
end
end
context 'when given expire time and current do not match' do
let!(:domain) { create(:domain,
registrar: registrar,
name: 'test.test',
expire_time: Time.zone.parse('05.07.2010'))
}
let(:request_xml) { <<-XML
test.test
2010-07-04
1
XML
}
it 'does not renew domain' do
expect { request; domain.reload }.to_not change { domain.expire_time }
end
specify do
request
expect(response).to have_code_of(2306)
end
end
end