Move expiration logic from domain's callback to epp::domain.new_from_epp

#186
This commit is contained in:
Artur Beljajev 2016-10-28 14:55:29 +03:00
parent ad0220088a
commit 0de7512adc
4 changed files with 37 additions and 15 deletions

View file

@ -77,7 +77,6 @@ class Domain < ActiveRecord::Base
end
before_create :generate_auth_info
before_create :set_validity_dates
before_create -> { self.reserved = in_reserved_list?; nil }
before_save :manage_automatic_statuses
@ -546,13 +545,6 @@ class Domain < ActiveRecord::Base
end
# rubocop:enable Lint/Loop
def set_validity_dates
self.registered_at = Time.zone.now
self.valid_from = Time.zone.now
# we need + 1 day as this is more correct from juridical side
self.valid_to = valid_from.utc.beginning_of_day + self.class.convert_period_to_time(period, period_unit) + 1.day
end
# rubocop:disable Metrics/AbcSize
# rubocop:disable Metrics/MethodLength
def set_force_delete

View file

@ -51,6 +51,9 @@ class Epp::Domain < Domain
class << self
def new_from_epp(frame, current_user)
domain = Epp::Domain.new
domain.registered_at = Time.zone.now
domain.valid_from = Time.zone.now
domain.expire_time = domain.valid_from.beginning_of_day + convert_period_to_time(domain.period, domain.period_unit) + 1.day
domain.attributes = domain.attrs_from(frame, current_user)
domain.attach_default_contacts
domain

View file

@ -0,0 +1,34 @@
require 'rails_helper'
RSpec.describe Epp::Domain, db: false do
describe '::new_from_epp' do
let(:domain_blueprint) { described_class.new }
subject(:domain) { described_class.new_from_epp(nil, nil) }
before :example do
travel_to Time.zone.parse('05.07.2010')
domain_blueprint.period = 1
domain_blueprint.period_unit = 'y'
expect(described_class).to receive(:new).and_return(domain_blueprint)
expect(domain_blueprint).to receive(:attrs_from).and_return({})
expect(domain_blueprint).to receive(:attach_default_contacts)
end
describe 'domain' do
it 'has :registered_at set to now' do
expect(domain.registered_at).to eq(Time.zone.parse('05.07.2010'))
end
it 'has :valid_from set to now' do
expect(domain.valid_from).to eq(Time.zone.parse('05.07.2010'))
end
it 'has :expire_time set to now' do
expire_time = Time.zone.parse('05.07.2010') + 1.year + 1.day
expect(domain.expire_time).to eq(expire_time)
end
end
end
end

View file

@ -1,7 +0,0 @@
require 'rails_helper'
describe Epp::Domain do
context 'with sufficient settings' do
let(:domain) { Fabricate(:epp_domain) }
end
end