35 lines
1,023 B
Ruby
35 lines
1,023 B
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
RSpec.describe Ci::CancelUserPipelinesService do
|
|
describe '#execute' do
|
|
let(:user) { create(:user) }
|
|
|
|
subject { described_class.new.execute(user) }
|
|
|
|
context 'when user has running CI pipelines' do
|
|
let(:pipeline) { create(:ci_pipeline, :running, user: user) }
|
|
let!(:build) { create(:ci_build, :running, pipeline: pipeline) }
|
|
|
|
it 'cancels all running pipelines and related jobs', :sidekiq_might_not_need_inline do
|
|
subject
|
|
|
|
expect(pipeline.reload).to be_canceled
|
|
expect(build.reload).to be_canceled
|
|
end
|
|
end
|
|
|
|
context 'when an error ocurrs' do
|
|
it 'raises a service level error' do
|
|
service = double(execute: ServiceResponse.error(message: 'Error canceling pipeline'))
|
|
allow(::Ci::CancelUserPipelinesService).to receive(:new).and_return(service)
|
|
|
|
result = subject
|
|
|
|
expect(result).to be_a(ServiceResponse)
|
|
expect(result).to be_error
|
|
end
|
|
end
|
|
end
|
|
end
|