diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-05-14 21:10:34 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-05-14 21:10:34 +0300 |
commit | 7d4b2ed7bf75d316577b718c71a9fdef19184539 (patch) | |
tree | d709e00c4f2ab60901749883f324f9069343037c /spec/views/layouts | |
parent | 7172fb10313a9a7790f8e033b347e77df4987154 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/views/layouts')
-rw-r--r-- | spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb | 148 |
1 files changed, 134 insertions, 14 deletions
diff --git a/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb b/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb index 694ba0f1f4f..d633a3d7a9d 100644 --- a/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb +++ b/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb @@ -66,10 +66,20 @@ RSpec.describe 'layouts/nav/sidebar/_project' do end describe 'Releases' do - it 'has a link to the project releases path' do + it 'does not have a link to the project releases path' do render - expect(rendered).to have_link('Releases', href: project_releases_path(project), class: 'shortcuts-project-releases') + expect(rendered).not_to have_link('Releases', href: project_releases_path(project), class: 'shortcuts-project-releases') + end + + context 'when feature flag :sidebar refactor is disabled' do + it 'has a link to the project releases path' do + stub_feature_flags(sidebar_refactor: false) + + render + + expect(rendered).to have_link('Releases', href: project_releases_path(project), class: 'shortcuts-project-releases') + end end end @@ -417,6 +427,86 @@ RSpec.describe 'layouts/nav/sidebar/_project' do end end + describe 'Deployments' do + let(:page) { Nokogiri::HTML.parse(rendered) } + + describe 'Feature Flags' do + it 'has a link to the feature flags page' do + render + + expect(page.at_css('.shortcuts-deployments').parent.css('[aria-label="Feature Flags"]')).not_to be_empty + expect(rendered).to have_link('Feature Flags', href: project_feature_flags_path(project)) + end + + describe 'when the user does not have access' do + let(:user) { nil } + + it 'does not have a link to the feature flags page' do + render + + expect(rendered).not_to have_link('Feature Flags') + end + end + + context 'when feature flag :sidebar_refactor is disabled' do + it 'does not have a Feature Flags menu item' do + stub_feature_flags(sidebar_refactor: false) + + render + + expect(rendered).not_to have_selector('.shortcuts-deployments') + end + end + end + + describe 'Environments' do + it 'has a link to the environments page' do + render + + expect(page.at_css('.shortcuts-deployments').parent.css('[aria-label="Environments"]')).not_to be_empty + expect(rendered).to have_link('Environments', href: project_environments_path(project)) + end + + describe 'when the user does not have access' do + let(:user) { nil } + + it 'does not have a link to the environments page' do + render + + expect(rendered).not_to have_link('Environments') + end + end + + context 'when feature flag :sidebar_refactor is disabled' do + it 'does not have a Environments menu item' do + stub_feature_flags(sidebar_refactor: false) + + render + + expect(rendered).not_to have_selector('.shortcuts-deployments') + end + end + end + + describe 'Releases' do + it 'has a link to the project releases path' do + render + + expect(rendered).to have_link('Releases', href: project_releases_path(project), class: 'shortcuts-deployments-releases') + end + + context 'when feature flag :sidebar refactor is disabled' do + it 'does not have a link to the project releases path' do + stub_feature_flags(sidebar_refactor: false) + + render + + expect(rendered).not_to have_link('Releases', href: project_releases_path(project), class: 'shortcuts-deployments-releases') + end + end + end + end + describe 'Operations' do it 'top level navigation link is visible for user with permissions' do render @@ -610,37 +700,67 @@ RSpec.describe 'layouts/nav/sidebar/_project' do end describe 'Environments' do - it 'has a link to the environments page' do + let(:page) { Nokogiri::HTML.parse(rendered) } + + it 'does not have a link to the environments page' do render - expect(rendered).to have_link('Environments', href: project_environments_path(project)) + expect(page.at_css('.shortcuts-operations').parent.css('[aria-label="Environments"]')).to be_empty end - describe 'when the user does not have access' do - let(:user) { nil } + context 'when feature flag :sidebar_refactor is disabled' do + before do + stub_feature_flags(sidebar_refactor: false) + end - it 'does not have a link to the environments page' do + it 'has a link to the environments page' do render - expect(rendered).not_to have_link('Environments') + expect(page.at_css('.shortcuts-operations').parent.css('[aria-label="Environments"]')).not_to be_empty + expect(rendered).to have_link('Environments', href: project_environments_path(project)) + end + + describe 'when the user does not have access' do + let(:user) { nil } + + it 'does not have a link to the environments page' do + render + + expect(rendered).not_to have_link('Environments') + end end end end describe 'Feature Flags' do - it 'has a link to the feature flags page' do + let(:page) { Nokogiri::HTML.parse(rendered) } + + it 'does not have a link to the feature flags page' do render - expect(rendered).to have_link('Feature Flags', href: project_feature_flags_path(project)) + expect(page.at_css('.shortcuts-operations').parent.css('[aria-label="Feature Flags"]')).to be_empty end - describe 'when the user does not have access' do - let(:user) { nil } + context 'when feature flag :sidebar_refactor is disabled' do + before do + stub_feature_flags(sidebar_refactor: false) + end - it 'does not have a link to the feature flags page' do + it 'has a link to the feature flags page' do render - expect(rendered).not_to have_link('Feature Flags') + expect(page.at_css('.shortcuts-operations').parent.css('[aria-label="Feature Flags"]')).not_to be_empty + expect(rendered).to have_link('Feature Flags', href: project_feature_flags_path(project)) + end + + describe 'when the user does not have access' do + let(:user) { nil } + + it 'does not have a link to the feature flags page' do + render + + expect(rendered).not_to have_link('Feature Flags') + end end end end |