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

_sidebar.html.haml_spec.rb « nav « shared « views « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 268d2952683f92a60240c1dfeba7292b0c9e74dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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