50 lines
1.4 KiB
Ruby
50 lines
1.4 KiB
Ruby
# 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
|