mirror of
https://github.com/internetee/registry.git
synced 2025-05-28 16:39:55 +02:00
Move expiration logic from domain's callback to epp::domain.new_from_epp
#186
This commit is contained in:
parent
ad0220088a
commit
0de7512adc
4 changed files with 37 additions and 15 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
34
spec/models/epp/domain_spec.rb
Normal file
34
spec/models/epp/domain_spec.rb
Normal 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
|
|
@ -1,7 +0,0 @@
|
|||
require 'rails_helper'
|
||||
|
||||
describe Epp::Domain do
|
||||
context 'with sufficient settings' do
|
||||
let(:domain) { Fabricate(:epp_domain) }
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue