Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/views/shared/nav/_sidebar.html.haml_spec.rb')
-rw-r--r--spec/views/shared/nav/_sidebar.html.haml_spec.rb44
1 files changed, 44 insertions, 0 deletions
diff --git a/spec/views/shared/nav/_sidebar.html.haml_spec.rb b/spec/views/shared/nav/_sidebar.html.haml_spec.rb
new file mode 100644
index 00000000000..268d2952683
--- /dev/null
+++ b/spec/views/shared/nav/_sidebar.html.haml_spec.rb
@@ -0,0 +1,44 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'shared/nav/_sidebar.html.haml' do
+ let(:project) { build(:project, id: non_existing_record_id) }
+ let(:context) { Sidebars::Projects::Context.new(current_user: nil, container: project)}
+ let(:sidebar) { Sidebars::Projects::Panel.new(context) }
+
+ before do
+ assign(:project, project)
+ assign(:sidebar, sidebar)
+
+ allow(sidebar).to receive(:renderable_menus).and_return([])
+ end
+
+ context 'when sidebar has a scope menu' do
+ it 'renders the scope menu' do
+ render
+
+ expect(rendered).to render_template('shared/nav/_scope_menu')
+ end
+ end
+
+ context 'when sidebar does not have a scope menu' do
+ let(:scope_menu_view_path) { 'shared/nav/' }
+ let(:scope_menu_view_name) { 'scope_menu.html.haml' }
+ let(:scope_menu_view) { "#{scope_menu_view_path}#{scope_menu_view_name}" }
+ let(:scope_menu_partial) { "#{scope_menu_view_path}_#{scope_menu_view_name}" }
+ let(:content) { 'Custom test content' }
+
+ context 'when sidebar has a custom scope menu partial defined' do
+ it 'renders the custom partial' do
+ allow(sidebar).to receive(:render_raw_scope_menu_partial).and_return(scope_menu_view)
+ allow(sidebar).to receive(:scope_menu).and_return(nil)
+ stub_template(scope_menu_partial => content)
+
+ render
+
+ expect(rendered).to have_text(content)
+ end
+ end
+ end
+end