summaryrefslogtreecommitdiff
path: root/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb')
-rw-r--r--spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb65
1 files changed, 52 insertions, 13 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 99d7dfc8acb..f4a5fcc13bb 100644
--- a/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb
+++ b/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb
@@ -5,16 +5,61 @@ require 'spec_helper'
RSpec.describe 'layouts/nav/sidebar/_project' do
let_it_be_with_reload(:project) { create(:project, :repository) }
+ let(:user) { project.owner }
+
before do
assign(:project, project)
assign(:repository, project.repository)
- allow(view).to receive(:current_ref).and_return('master')
+ allow(view).to receive(:current_ref).and_return('master')
allow(view).to receive(:can?).and_return(true)
+ allow(view).to receive(:current_user).and_return(user)
end
it_behaves_like 'has nav sidebar'
+ describe 'Project Overview' do
+ it 'has a link to the project path' do
+ render
+
+ expect(rendered).to have_link('Project overview', href: project_path(project), class: %w(shortcuts-project rspec-project-link))
+ end
+
+ describe 'Details' do
+ it 'has a link to the projects path' do
+ render
+
+ expect(rendered).to have_link('Details', href: project_path(project), class: 'shortcuts-project')
+ end
+ end
+
+ describe 'Activity' do
+ it 'has a link to the project activity path' do
+ render
+
+ expect(rendered).to have_link('Activity', href: activity_project_path(project), class: 'shortcuts-project-activity')
+ 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-project-releases')
+ end
+ end
+ end
+
+ describe 'Learn GitLab' do
+ it 'has a link to the learn GitLab experiment' do
+ allow(view).to receive(:learn_gitlab_experiment_enabled?).and_return(true)
+
+ render
+
+ expect(rendered).to have_link('Learn GitLab', href: project_learn_gitlab_path(project))
+ end
+ end
+
describe 'issue boards' do
it 'has board tab' do
render
@@ -99,19 +144,11 @@ RSpec.describe 'layouts/nav/sidebar/_project' do
end
end
- describe 'releases entry' do
- it 'renders releases link' do
- render
-
- expect(rendered).to have_link('Releases', href: project_releases_path(project))
- end
- end
-
describe 'wiki entry tab' do
let(:can_read_wiki) { true }
before do
- allow(view).to receive(:can?).with(nil, :read_wiki, project).and_return(can_read_wiki)
+ allow(view).to receive(:can?).with(user, :read_wiki, project).and_return(can_read_wiki)
end
describe 'when wiki is enabled' do
@@ -146,7 +183,7 @@ RSpec.describe 'layouts/nav/sidebar/_project' do
it 'shows the external wiki tab with the external wiki service link' do
render
- expect(rendered).to have_link('External Wiki', href: properties['external_wiki_url'])
+ expect(rendered).to have_link('External wiki', href: properties['external_wiki_url'])
end
end
@@ -156,7 +193,7 @@ RSpec.describe 'layouts/nav/sidebar/_project' do
it 'does not show the external wiki tab' do
render
- expect(rendered).not_to have_link('External Wiki')
+ expect(rendered).not_to have_link('External wiki')
end
end
end
@@ -299,7 +336,7 @@ RSpec.describe 'layouts/nav/sidebar/_project' do
let(:read_cycle_analytics) { true }
before do
- allow(view).to receive(:can?).with(nil, :read_cycle_analytics, project).and_return(read_cycle_analytics)
+ allow(view).to receive(:can?).with(user, :read_cycle_analytics, project).and_return(read_cycle_analytics)
end
describe 'when value stream analytics is enabled' do
@@ -346,4 +383,6 @@ RSpec.describe 'layouts/nav/sidebar/_project' do
end
end
end
+
+ it_behaves_like 'sidebar includes snowplow attributes', 'render', 'projects_side_navigation', 'projects_side_navigation'
end