show.html.haml_spec.rb 1.21 KB
Newer Older
1 2 3 4 5
require 'spec_helper'

describe 'projects/merge_requests/show.html.haml' do
  include Devise::TestHelpers

Katarzyna Kobierska's avatar
Katarzyna Kobierska committed
6
  let(:user) { create(:user) }
7 8
  let(:project) { create(:project) }
  let(:fork_project) { create(:project, forked_from_project: project) }
Katarzyna Kobierska's avatar
Katarzyna Kobierska committed
9
  let(:unlink_project) { Projects::UnlinkForkService.new(fork_project, user) }
Katarzyna Kobierska's avatar
Katarzyna Kobierska committed
10 11 12

  let(:closed_merge_request) do
    create(:closed_merge_request,
13
      source_project: fork_project,
Katarzyna Kobierska's avatar
Katarzyna Kobierska committed
14 15
      target_project: project,
      author: user)
16 17 18 19
  end

  before do
    assign(:project, project)
Katarzyna Kobierska's avatar
Katarzyna Kobierska committed
20
    assign(:merge_request, closed_merge_request)
21 22 23 24 25
    assign(:commits_count, 0)

    allow(view).to receive(:can?).and_return(true)
  end

Katarzyna Kobierska's avatar
Katarzyna Kobierska committed
26 27
  context 'when the merge request is closed' do
    it 'shows the "Reopen" button' do
28 29 30 31 32 33
      render

      expect(rendered).to have_css('a', visible: true, text: 'Reopen')
      expect(rendered).to have_css('a', visible: false, text: 'Close')
    end

Katarzyna Kobierska's avatar
Katarzyna Kobierska committed
34
    it 'does not show the "Reopen" button when the source project does not exist' do
Katarzyna Kobierska's avatar
Katarzyna Kobierska committed
35 36
      unlink_project.execute
      closed_merge_request.reload
Katarzyna Kobierska's avatar
Katarzyna Kobierska committed
37

38 39 40 41 42 43 44
      render

      expect(rendered).to have_css('a', visible: false, text: 'Reopen')
      expect(rendered).to have_css('a', visible: false, text: 'Close')
    end
  end
end