diff options
Diffstat (limited to 'spec/workers/update_merge_requests_worker_spec.rb')
-rw-r--r-- | spec/workers/update_merge_requests_worker_spec.rb | 49 |
1 files changed, 34 insertions, 15 deletions
diff --git a/spec/workers/update_merge_requests_worker_spec.rb b/spec/workers/update_merge_requests_worker_spec.rb index bd0dc2f9ef4..64fcc2bd388 100644 --- a/spec/workers/update_merge_requests_worker_spec.rb +++ b/spec/workers/update_merge_requests_worker_spec.rb @@ -3,28 +3,47 @@ require 'spec_helper' RSpec.describe UpdateMergeRequestsWorker do - include RepoHelpers + 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(:project) { create(:project, :repository) } - let(:user) { create(:user) } - - subject { described_class.new } + let(:worker) { described_class.new } describe '#perform' do - let(:oldrev) { "123456" } - let(:newrev) { "789012" } - let(:ref) { "refs/heads/test" } - - def perform - subject.perform(project.id, user.id, oldrev, newrev, ref) - end + 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) do |refresh_service| - expect(refresh_service).to receive(:execute).with(oldrev, newrev, ref) + 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 - perform + 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 |