diff options
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.rb | 65 |
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 |