diff options
Diffstat (limited to 'spec/models/pages_domain_spec.rb')
-rw-r--r-- | spec/models/pages_domain_spec.rb | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/spec/models/pages_domain_spec.rb b/spec/models/pages_domain_spec.rb index 89a837dc812..4b65bf032d1 100644 --- a/spec/models/pages_domain_spec.rb +++ b/spec/models/pages_domain_spec.rb @@ -160,7 +160,7 @@ describe PagesDomain do end context 'when curve is set explicitly by parameters' do - it 'adds errors to private key', :quarantine do + it 'adds errors to private key' do domain = build(:pages_domain, :explicit_ecdsa) expect(domain).to be_invalid @@ -293,11 +293,13 @@ describe PagesDomain do describe "#https?" do context "when a certificate is present" do subject { build(:pages_domain) } + it { is_expected.to be_https } end context "when no certificate is present" do subject { build(:pages_domain, :without_certificate) } + it { is_expected.not_to be_https } end end @@ -557,15 +559,35 @@ describe PagesDomain do end end - describe '.pages_virtual_domain' do - let(:project) { build(:project) } + describe '#pages_virtual_domain' do + let(:project) { create(:project) } + let(:pages_domain) { create(:pages_domain, project: project) } + + context 'when there are no pages deployed for the project' do + it 'returns nil' do + expect(pages_domain.pages_virtual_domain).to be_nil + end + end + + context 'when there are pages deployed for the project' do + before do + generic_commit_status = create(:generic_commit_status, :success, stage: 'deploy', name: 'pages:deploy') + generic_commit_status.update!(project: project) + project.pages_metadatum.destroy! + project.reload + end - subject(:pages_domain) { build(:pages_domain, project: project) } + it 'returns the virual domain' do + expect(Pages::VirtualDomain).to receive(:new).with([project], domain: pages_domain).and_call_original - it 'returns instance of Pages::VirtualDomain' do - expect(Pages::VirtualDomain).to receive(:new).with([project], domain: pages_domain).and_call_original + expect(pages_domain.pages_virtual_domain).to be_an_instance_of(Pages::VirtualDomain) + end - expect(pages_domain.pages_virtual_domain).to be_a(Pages::VirtualDomain) + it 'migrates project pages metadata' do + expect { pages_domain.pages_virtual_domain }.to change { + project.reload.pages_metadatum&.deployed + }.from(nil).to(true) + end end end end |