diff options
Diffstat (limited to 'spec/views')
-rw-r--r-- | spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb | 135 |
1 files changed, 103 insertions, 32 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 d5320b2d044..7bb9570e90a 100644 --- a/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb +++ b/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb @@ -471,56 +471,71 @@ RSpec.describe 'layouts/nav/sidebar/_project' do end end - describe 'Serverless' do - it 'has a link to the serverless page' do - render - - expect(rendered).to have_link('Serverless', href: project_serverless_functions_path(project)) + context 'when feature flag :sidebar_refactor is disabled' do + before do + stub_feature_flags(sidebar_refactor: false) end - describe 'when the user does not have access' do - let(:user) { nil } - - it 'does not have a link to the serverless page' do + describe 'Serverless' do + it 'has a link to the serverless page' do render - expect(rendered).not_to have_link('Serverless') + page = Nokogiri::HTML.parse(rendered) + + expect(page.at_css('.shortcuts-operations').parent.css('[aria-label="Serverless"]')).not_to be_empty + expect(rendered).to have_link('Serverless', href: project_serverless_functions_path(project)) end - end - end - describe 'Terraform' do - it 'has a link to the terraform page' do - render + describe 'when the user does not have access' do + let(:user) { nil } - expect(rendered).to have_link('Terraform', href: project_terraform_index_path(project)) - end + it 'does not have a link to the serverless page' do + render - describe 'when the user does not have access' do - let(:user) { nil } + expect(rendered).not_to have_link('Serverless') + end + end + end - it 'does not have a link to the terraform page' do + describe 'Terraform' do + it 'has a link to the terraform page' do render - expect(rendered).not_to have_link('Terraform') + page = Nokogiri::HTML.parse(rendered) + + expect(page.at_css('.shortcuts-operations').parent.css('[aria-label="Terraform"]')).not_to be_empty + expect(rendered).to have_link('Terraform', href: project_terraform_index_path(project)) end - end - end - describe 'Kubernetes' do - it 'has a link to the kubernetes page' do - render + describe 'when the user does not have access' do + let(:user) { nil } - expect(rendered).to have_link('Kubernetes', href: project_clusters_path(project)) - end + it 'does not have a link to the terraform page' do + render - describe 'when the user does not have access' do - let(:user) { nil } + expect(rendered).not_to have_link('Terraform') + end + end + end - it 'does not have a link to the kubernetes page' do + describe 'Kubernetes' do + it 'has a link to the kubernetes page' do render - expect(rendered).not_to have_link('Kubernetes') + page = Nokogiri::HTML.parse(rendered) + + expect(page.at_css('.shortcuts-operations').parent.css('[aria-label="Kubernetes"]')).not_to be_empty + expect(rendered).to have_link('Kubernetes', href: project_clusters_path(project)) + end + + describe 'when the user does not have access' do + let(:user) { nil } + + it 'does not have a link to the kubernetes page' do + render + + expect(rendered).not_to have_link('Kubernetes') + end end end end @@ -580,6 +595,62 @@ RSpec.describe 'layouts/nav/sidebar/_project' do end end + describe 'Infrastructure' do + describe 'Serverless platform' do + it 'has a link to the serverless page' do + render + + expect(rendered).to have_link('Serverless platform', href: project_serverless_functions_path(project)) + end + + describe 'when the user does not have access' do + let(:user) { nil } + + it 'does not have a link to the serverless page' do + render + + expect(rendered).not_to have_link('Serverless platform') + end + end + end + + describe 'Terraform' do + it 'has a link to the terraform page' do + render + + expect(rendered).to have_link('Terraform', href: project_terraform_index_path(project)) + end + + describe 'when the user does not have access' do + let(:user) { nil } + + it 'does not have a link to the terraform page' do + render + + expect(rendered).not_to have_link('Terraform') + end + end + end + + describe 'Kubernetes clusters' do + it 'has a link to the kubernetes page' do + render + + expect(rendered).to have_link('Kubernetes clusters', href: project_clusters_path(project)) + end + + describe 'when the user does not have access' do + let(:user) { nil } + + it 'does not have a link to the kubernetes page' do + render + + expect(rendered).not_to have_link('Kubernetes clusters') + end + end + end + end + describe 'Packages and Registries' do let(:registry_enabled) { true } let(:packages_enabled) { true } |