summaryrefslogtreecommitdiff
path: root/spec/models/pages_domain_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/pages_domain_spec.rb')
-rw-r--r--spec/models/pages_domain_spec.rb36
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