Multiple ok statuses fix

This commit is contained in:
Martin Lensment 2014-12-09 11:36:49 +02:00
parent a95927c22f
commit 4615e99527
2 changed files with 23 additions and 1 deletions

View file

@ -301,7 +301,7 @@ class Domain < ActiveRecord::Base
def manage_automatic_statuses def manage_automatic_statuses
if domain_statuses.empty? && valid? if domain_statuses.empty? && valid?
domain_statuses.create(value: DomainStatus::OK) domain_statuses.create(value: DomainStatus::OK)
else elsif domain_statuses.length > 1 || !valid?
domain_statuses.find_by(value: DomainStatus::OK).try(:destroy) domain_statuses.find_by(value: DomainStatus::OK).try(:destroy)
end end
end end

View file

@ -95,6 +95,28 @@ describe Domain do
d = Fabricate(:domain) d = Fabricate(:domain)
expect(d.auth_info).to_not be_empty expect(d.auth_info).to_not be_empty
end end
it 'manages statuses automatically' do
d = Fabricate(:domain)
expect(d.domain_statuses.count).to eq(1)
expect(d.domain_statuses.first.value).to eq(DomainStatus::OK)
d.period = 2
d.save
d.reload
expect(d.domain_statuses.count).to eq(1)
expect(d.domain_statuses.first.reload.value).to eq(DomainStatus::OK)
d.domain_statuses.build(value: DomainStatus::CLIENT_DELETE_PROHIBITED)
d.save
d.reload
expect(d.domain_statuses.count).to eq(1)
expect(d.domain_statuses.first.value).to eq(DomainStatus::CLIENT_DELETE_PROHIBITED)
end
end end
with_versioning do with_versioning do