summaryrefslogtreecommitdiff
path: root/spec/views/projects/merge_requests/_commits.html.haml_spec.rb
blob: f0273c1716f661c94508dd778fbd3d5da8db972e (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
45
46
47
48
49
50
51
52
53
54
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe 'projects/merge_requests/_commits.html.haml', :sidekiq_might_not_need_inline do
  include Devise::Test::ControllerHelpers
  include ProjectForksHelper

  let(:user) { create(:user) }
  let(:target_project) { create(:project, :public, :repository) }
  let(:source_project) { fork_project(target_project, user, repository: true) }

  let(:merge_request) do
    create(:merge_request, :simple,
      source_project: source_project,
      target_project: target_project,
      author: user)
  end

  before do
    controller.prepend_view_path('app/views/projects')

    assign(:merge_request, merge_request)
    assign(:commits, merge_request.commits(load_from_gitaly: true))
    assign(:hidden_commit_count, 0)
  end

  it 'shows commits from source project' do
    render

    commit = merge_request.commits.first # HEAD
    href = diffs_project_merge_request_path(target_project, merge_request, commit_id: commit)

    expect(rendered).to have_link(href: href)
  end

  it 'shows signature verification badge' do
    render

    expect(rendered).to have_css('.gpg-status-box')
  end

  context 'when there are hidden commits' do
    before do
      assign(:hidden_commit_count, 1)
    end

    it 'shows notice about omitted commits' do
      render

      expect(rendered).to match(/1 additional commit has been omitted to prevent performance issues/)
    end
  end
end