summaryrefslogtreecommitdiff
path: root/spec/support/shared_examples/ci/auto_merge_merge_requests_examples.rb
blob: c11448ffe0f99bfe88d902900f800ac6a610ac00 (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
# frozen_string_literal: true

shared_examples 'aborted merge requests for MWPS' do
  let(:aborted_message) do
    /aborted the automatic merge because target branch was updated/
  end

  it 'aborts auto_merge' do
    expect(merge_request.auto_merge_enabled?).to be_falsey
    expect(merge_request.notes.last.note).to match(aborted_message)
  end

  it 'removes merge_user' do
    expect(merge_request.merge_user).to be_nil
  end

  it 'does not add todos for merge user' do
    expect(user.todos.for_target(merge_request)).to be_empty
  end

  it 'adds todos for merge author' do
    expect(author.todos.for_target(merge_request)).to be_present.and be_all(&:pending?)
  end
end

shared_examples 'maintained merge requests for MWPS' do
  it 'does not cancel auto merge' do
    expect(merge_request.auto_merge_enabled?).to be_truthy
    expect(merge_request.notes).to be_empty
  end

  it 'does not change merge_user' do
    expect(merge_request.merge_user).to eq(user)
  end

  it 'does not add todos' do
    expect(author.todos.for_target(merge_request)).to be_empty
    expect(user.todos.for_target(merge_request)).to be_empty
  end
end