diff options
author | Vladimir Shushlin <vshushlin@gitlab.com> | 2019-04-30 12:05:54 +0000 |
---|---|---|
committer | Nick Thomas <nick@gitlab.com> | 2019-04-30 12:05:54 +0000 |
commit | ac744fd4fceb996dcafe7958dd35b081331f46fe (patch) | |
tree | eba5a21f6e074b2c83141dda4999034b3b7aec93 /spec/workers/pages_domain_removal_cron_worker_spec.rb | |
parent | 9e2958aed9fb634801d57acd2bd6f4500dec012e (diff) | |
download | gitlab-ce-ac744fd4fceb996dcafe7958dd35b081331f46fe.tar.gz |
Remove disabled pages domains
Domain will be removed by verification worker after 1 week
of being disabled
Diffstat (limited to 'spec/workers/pages_domain_removal_cron_worker_spec.rb')
-rw-r--r-- | spec/workers/pages_domain_removal_cron_worker_spec.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/spec/workers/pages_domain_removal_cron_worker_spec.rb b/spec/workers/pages_domain_removal_cron_worker_spec.rb new file mode 100644 index 00000000000..0e1171e8491 --- /dev/null +++ b/spec/workers/pages_domain_removal_cron_worker_spec.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe PagesDomainRemovalCronWorker do + subject(:worker) { described_class.new } + + describe '#perform' do + context 'when there is domain which should be removed' do + let!(:domain_for_removal) { create(:pages_domain, :should_be_removed) } + + before do + stub_feature_flags(remove_disabled_domains: true) + end + + it 'removes domain' do + expect { worker.perform }.to change { PagesDomain.count }.by(-1) + expect(PagesDomain.exists?).to eq(false) + end + + context 'when domain removal is disabled' do + before do + stub_feature_flags(remove_disabled_domains: false) + end + + it 'does not remove pages domain' do + expect { worker.perform }.not_to change { PagesDomain.count } + expect(PagesDomain.find_by(domain: domain_for_removal.domain)).to be_present + end + end + end + + context 'where there is a domain which scheduled for removal in the future' do + let!(:domain_for_removal) { create(:pages_domain, :scheduled_for_removal) } + + it 'does not remove pages domain' do + expect { worker.perform }.not_to change { PagesDomain.count } + expect(PagesDomain.find_by(domain: domain_for_removal.domain)).to be_present + end + end + end +end |