diff options
Diffstat (limited to 'spec/models/pages/lookup_path_spec.rb')
-rw-r--r-- | spec/models/pages/lookup_path_spec.rb | 57 |
1 files changed, 23 insertions, 34 deletions
diff --git a/spec/models/pages/lookup_path_spec.rb b/spec/models/pages/lookup_path_spec.rb index 62152f9d3a4..08ba823f8fa 100644 --- a/spec/models/pages/lookup_path_spec.rb +++ b/spec/models/pages/lookup_path_spec.rb @@ -4,8 +4,10 @@ require 'spec_helper' RSpec.describe Pages::LookupPath, feature_category: :pages do let(:project) { create(:project, :pages_private, pages_https_only: true) } + let(:trim_prefix) { nil } + let(:domain) { nil } - subject(:lookup_path) { described_class.new(project) } + subject(:lookup_path) { described_class.new(project, trim_prefix: trim_prefix, domain: domain) } before do stub_pages_setting( @@ -30,11 +32,7 @@ RSpec.describe Pages::LookupPath, feature_category: :pages do end describe '#https_only' do - subject(:lookup_path) { described_class.new(project, domain: domain) } - context 'when no domain provided' do - let(:domain) { nil } - it 'delegates to Project#pages_https_only?' do expect(lookup_path.https_only).to eq(true) end @@ -101,41 +99,26 @@ RSpec.describe Pages::LookupPath, feature_category: :pages do end end end - - context 'when deployment were created during migration' do - before do - allow(deployment).to receive(:migrated?).and_return(true) - end - - it 'uses deployment from object storage' do - freeze_time do - expect(source).to eq( - type: 'zip', - path: deployment.file.url(expire_at: 1.day.from_now), - global_id: "gid://gitlab/PagesDeployment/#{deployment.id}", - sha256: deployment.file_sha256, - file_size: deployment.size, - file_count: deployment.file_count - ) - end - end - end end end describe '#prefix' do - it 'returns "/" for pages group root projects' do - project = instance_double(Project, full_path: "namespace/namespace.example.com") - lookup_path = described_class.new(project, trim_prefix: 'mygroup') + let(:trim_prefix) { 'mygroup' } + + context 'when pages group root projects' do + let(:project) { instance_double(Project, full_path: "namespace/namespace.example.com") } - expect(lookup_path.prefix).to eq('/') + it 'returns "/"' do + expect(lookup_path.prefix).to eq('/') + end end - it 'returns the project full path with the provided prefix removed' do - project = instance_double(Project, full_path: 'mygroup/myproject') - lookup_path = described_class.new(project, trim_prefix: 'mygroup') + context 'when pages in the given prefix' do + let(:project) { instance_double(Project, full_path: 'mygroup/myproject') } - expect(lookup_path.prefix).to eq('/myproject/') + it 'returns the project full path with the provided prefix removed' do + expect(lookup_path.prefix).to eq('/myproject/') + end end end @@ -157,12 +140,18 @@ RSpec.describe Pages::LookupPath, feature_category: :pages do expect(lookup_path.unique_host).to eq('unique-domain.example.com') end + + context 'when there is domain provided' do + let(:domain) { instance_double(PagesDomain) } + + it 'returns nil' do + expect(lookup_path.unique_host).to eq(nil) + end + end end end describe '#root_directory' do - subject(:lookup_path) { described_class.new(project) } - context 'when there is no deployment' do it 'returns nil' do expect(lookup_path.root_directory).to be_nil |