Disable inaccessible navigation links upon archiving a project

This commit is contained in:
Elias Werberich 2019-03-31 16:09:51 +02:00
parent afbc827465
commit de6bab915c
No known key found for this signature in database
GPG key ID: F6DD3413A7F973DE
3 changed files with 59 additions and 2 deletions

View file

@ -357,12 +357,12 @@
= link_to project_settings_repository_path(@project), title: _('Repository') do = link_to project_settings_repository_path(@project), title: _('Repository') do
%span %span
= _('Repository') = _('Repository')
- if @project.feature_available?(:builds, current_user) - if !@project.archived? && @project.feature_available?(:builds, current_user)
= nav_link(controller: :ci_cd) do = nav_link(controller: :ci_cd) do
= link_to project_settings_ci_cd_path(@project), title: _('CI / CD') do = link_to project_settings_ci_cd_path(@project), title: _('CI / CD') do
%span %span
= _('CI / CD') = _('CI / CD')
- if settings_operations_available? - if !@project.archived? && settings_operations_available?
= nav_link(controller: [:operations]) do = nav_link(controller: [:operations]) do
= link_to project_settings_operations_path(@project), title: _('Operations') do = link_to project_settings_operations_path(@project), title: _('Operations') do
= _('Operations') = _('Operations')

View file

@ -0,0 +1,5 @@
---
title: "Disable inaccessible navigation links upon archiving a project"
merge_request: 26020
author: Elias Werberich
type: fixed

View file

@ -113,4 +113,56 @@ describe 'layouts/nav/sidebar/_project' do
end end
end end
end end
describe 'ci/cd settings tab' do
before do
project.update!(archived: project_archived)
end
context 'when project is archived' do
let(:project_archived) { true }
it 'does not show the ci/cd settings tab' do
render
expect(rendered).not_to have_link('CI / CD', href: project_settings_ci_cd_path(project))
end
end
context 'when project is active' do
let(:project_archived) { false }
it 'shows the ci/cd settings tab' do
render
expect(rendered).to have_link('CI / CD', href: project_settings_ci_cd_path(project))
end
end
end
describe 'operations settings tab' do
before do
project.update!(archived: project_archived)
end
context 'when project is archived' do
let(:project_archived) { true }
it 'does not show the operations settings tab' do
render
expect(rendered).not_to have_link('Operations', href: project_settings_operations_path(project))
end
end
context 'when project is active' do
let(:project_archived) { false }
it 'shows the operations settings tab' do
render
expect(rendered).to have_link('Operations', href: project_settings_operations_path(project))
end
end
end
end end