diff --git a/app/models/domain.rb b/app/models/domain.rb index e36b68a05..e9849254c 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -125,13 +125,14 @@ class Domain < ActiveRecord::Base end def renew(cur_exp_date, period, unit='y') - if cur_exp_date == valid_to - valid_to = period.to_i.years + if cur_exp_date.to_date == valid_to + self.valid_to = self.valid_to + period.to_i.years + self.period = period + save else errors[:base] << {msg: I18n.t('errors.messages.epp_exp_dates_do_not_match'), obj: 'domain', val: cur_exp_date} + false end - - save end class << self diff --git a/spec/epp/domain_spec.rb b/spec/epp/domain_spec.rb index 44229f0b6..264f69a1b 100644 --- a/spec/epp/domain_spec.rb +++ b/spec/epp/domain_spec.rb @@ -134,7 +134,13 @@ describe 'EPP Domain', epp: true do context 'with valid domain' do before(:each) { Fabricate(:domain, name: 'example.ee') } - + it 'renews a domain' do + response = epp_request('domains/renew.xml') + exDate = response[:parsed].css('renData exDate').text + name = response[:parsed].css('renData name').text + expect(exDate).to eq ('2015-08-07 00:00:00 UTC') + expect(name).to eq ('example.ee') + end end it 'checks a domain' do diff --git a/spec/epp/requests/domains/renew.xml b/spec/epp/requests/domains/renew.xml index 1b8f89b0e..2ba7ea4a8 100644 --- a/spec/epp/requests/domains/renew.xml +++ b/spec/epp/requests/domains/renew.xml @@ -5,7 +5,7 @@ example.ee - 2000-04-03 + 2014-08-07 1 diff --git a/spec/fabricators/domain_fabricator.rb b/spec/fabricators/domain_fabricator.rb index 8c4c59698..5a3da4f25 100644 --- a/spec/fabricators/domain_fabricator.rb +++ b/spec/fabricators/domain_fabricator.rb @@ -1,5 +1,6 @@ Fabricator(:domain) do name { "#{Faker::Internet.domain_word}.ee" } + valid_to Date.new(2014, 8, 7) period 1 owner_contact(fabricator: :contact) end