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

update_merge_requests_worker_spec.rb « workers « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 64fcc2bd388040968a2fc213ede7fb5403ea7266 (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
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe UpdateMergeRequestsWorker do
  let_it_be(:project) { create(:project, :repository) }
  let_it_be(:user)    { create(:user) }
  let_it_be(:oldrev)  { "123456" }
  let_it_be(:newrev)  { "789012" }
  let_it_be(:ref)     { "refs/heads/test" }

  let(:worker) { described_class.new }

  describe '#perform' do
    subject { worker.perform(project.id, user.id, oldrev, newrev, ref) }

    it 'executes MergeRequests::RefreshService with expected values' do
      expect_next_instance_of(MergeRequests::RefreshService,
        project: project,
        current_user: user,
        params: { push_options: nil }) do |service|
        expect(service)
          .to receive(:execute)
          .with(oldrev, newrev, ref)
      end

      subject
    end

    context 'when push options are passed as Hash' do
      let(:extra_params) { { 'push_options' => { 'ci' => { 'skip' => true } } } }

      subject { worker.perform(project.id, user.id, oldrev, newrev, ref, extra_params) }

      it 'executes MergeRequests::RefreshService with expected values' do
        expect_next_instance_of(MergeRequests::RefreshService,
          project: project,
          current_user: user,
          params: { push_options: { ci: { skip: true } } }) do |service|
          expect(service)
            .to receive(:execute)
            .with(oldrev, newrev, ref)
        end

        subject
      end
    end
  end
end