diff --git a/app/models/project.rb b/app/models/project.rb index 5271fbb138df92dddc2eb637e3ef6567d02d26fd..fcbef23bc4cd723ae7cb26f73e94b1787379fb1e 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -2143,8 +2143,8 @@ def pages_deployed? pages_metadatum&.deployed? end - def pages_url - return pages_unique_url if pages_unique_domain_enabled? + def pages_url(with_unique_domain: false) + return pages_unique_url if with_unique_domain && pages_unique_domain_enabled? url = pages_namespace_url url_path = full_path.partition('/').last diff --git a/app/views/projects/pages/_access.html.haml b/app/views/projects/pages/_access.html.haml index 28f04d788617ed10b89e477acf3d2938e078f848..7f2588134baa1f73739d21838c41a92205a4856f 100644 --- a/app/views/projects/pages/_access.html.haml +++ b/app/views/projects/pages/_access.html.haml @@ -1,4 +1,6 @@ - if @project.pages_deployed? + - pages_url = @project.pages_url(with_unique_domain: true) + = render Pajamas::CardComponent.new(card_options: { class: 'gl-mb-5', data: { qa_selector: 'access_page_container' } }, footer_options: { class: 'gl-alert-warning' }) do |c| - c.header do = s_('GitLabPages|Access pages') @@ -8,7 +10,7 @@ = s_('GitLabPages|Your pages are served under:') %p - = external_link(@project.pages_url, @project.pages_url) + = external_link(pages_url, pages_url) - @project.pages_domains.each do |domain| %p diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 412b72f08199478cb3482774f13afdd4751cde35..7959412e6ddcd30a5e8f85fe6f0486f60595476f 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -2727,34 +2727,73 @@ def has_external_wiki .and_return(['http://example.com', port].compact.join(':')) end - context 'when pages_unique_domain feature flag is disabled' do - before do - stub_feature_flags(pages_unique_domain: false) + context 'when not using pages_unique_domain' do + subject { project.pages_url(with_unique_domain: false) } + + context 'when pages_unique_domain feature flag is disabled' do + before do + stub_feature_flags(pages_unique_domain: false) + end + + it { is_expected.to eq('http://group.example.com/project') } end - it { is_expected.to eq('http://group.example.com/project') } - end + context 'when pages_unique_domain feature flag is enabled' do + before do + stub_feature_flags(pages_unique_domain: true) - context 'when pages_unique_domain feature flag is enabled' do - before do - stub_feature_flags(pages_unique_domain: true) + project.project_setting.update!( + pages_unique_domain_enabled: pages_unique_domain_enabled, + pages_unique_domain: 'unique-domain' + ) + end - project.project_setting.update!( - pages_unique_domain_enabled: pages_unique_domain_enabled, - pages_unique_domain: 'unique-domain' - ) + context 'when pages_unique_domain_enabled is false' do + let(:pages_unique_domain_enabled) { false } + + it { is_expected.to eq('http://group.example.com/project') } + end + + context 'when pages_unique_domain_enabled is true' do + let(:pages_unique_domain_enabled) { true } + + it { is_expected.to eq('http://group.example.com/project') } + end end + end + + context 'when using pages_unique_domain' do + subject { project.pages_url(with_unique_domain: true) } - context 'when pages_unique_domain_enabled is false' do - let(:pages_unique_domain_enabled) { false } + context 'when pages_unique_domain feature flag is disabled' do + before do + stub_feature_flags(pages_unique_domain: false) + end it { is_expected.to eq('http://group.example.com/project') } end - context 'when pages_unique_domain_enabled is false' do - let(:pages_unique_domain_enabled) { true } + context 'when pages_unique_domain feature flag is enabled' do + before do + stub_feature_flags(pages_unique_domain: true) - it { is_expected.to eq('http://unique-domain.example.com') } + project.project_setting.update!( + pages_unique_domain_enabled: pages_unique_domain_enabled, + pages_unique_domain: 'unique-domain' + ) + end + + context 'when pages_unique_domain_enabled is false' do + let(:pages_unique_domain_enabled) { false } + + it { is_expected.to eq('http://group.example.com/project') } + end + + context 'when pages_unique_domain_enabled is true' do + let(:pages_unique_domain_enabled) { true } + + it { is_expected.to eq('http://unique-domain.example.com') } + end end end