Skip to content
代码片段 群组 项目
未验证 提交 bc974a19 编辑于 作者: Pedro Pombeiro's avatar Pedro Pombeiro
浏览文件

Return ServiceResponse from runner services

上级 ea5acb5d
No related branches found
No related tags found
无相关合并请求
......@@ -31,7 +31,7 @@ def resolve(**runner_attrs)
runners = find_all_runners_by_ids(model_ids_of(ids))
result = ::Ci::Runners::BulkDeleteRunnersService.new(runners: runners).execute
result.slice(:deleted_count, :deleted_ids).merge(errors: [])
result.payload.slice(:deleted_count, :deleted_ids).merge(errors: [])
else
{ errors: [] }
end
......
......@@ -15,10 +15,10 @@ def initialize(runners:)
def execute
if @runners
# Delete a few runners immediately
return delete_runners
return ServiceResponse.success(payload: delete_runners)
end
{ deleted_count: 0, deleted_ids: [] }
ServiceResponse.success(payload: { deleted_count: 0, deleted_ids: [] })
end
private
......
......@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe ::Ci::Runners::BulkDeleteRunnersService, '#execute' do
subject { described_class.new(**service_args).execute }
subject(:execute) { described_class.new(**service_args).execute }
let(:service_args) { { runners: runners_arg } }
let(:runners_arg) { }
......@@ -17,7 +17,8 @@
it 'destroys runners', :aggregate_failures do
expect { subject }.to change { Ci::Runner.count }.by(-2)
is_expected.to eq({ deleted_count: 2, deleted_ids: [instance_runner.id, project_runner.id] })
is_expected.to be_success
expect(execute.payload).to eq({ deleted_count: 2, deleted_ids: [instance_runner.id, project_runner.id] })
expect(instance_runner[:errors]).to be_nil
expect(project_runner[:errors]).to be_nil
expect { project_runner.runner_projects.first.reload }.to raise_error(ActiveRecord::RecordNotFound)
......@@ -36,7 +37,8 @@
it 'destroys runners and returns only deleted runners', :aggregate_failures do
expect { subject }.to change { Ci::Runner.count }.by(-1)
is_expected.to eq({ deleted_count: 1, deleted_ids: [project_runner.id] })
is_expected.to be_success
expect(execute.payload).to eq({ deleted_count: 1, deleted_ids: [project_runner.id] })
expect(instance_runner[:errors]).to be_nil
expect(project_runner[:errors]).to be_nil
expect { project_runner.reload }.to raise_error(ActiveRecord::RecordNotFound)
......@@ -51,7 +53,8 @@
it 'deletes only first RUNNER_LIMIT runners' do
expect { subject }.to change { Ci::Runner.count }.by(-1)
is_expected.to eq({ deleted_count: 1, deleted_ids: [instance_runner.id] })
is_expected.to be_success
expect(execute.payload).to eq({ deleted_count: 1, deleted_ids: [instance_runner.id] })
end
end
end
......@@ -72,7 +75,8 @@
let(:runners_arg) { nil }
it 'returns 0 deleted runners' do
is_expected.to eq({ deleted_count: 0, deleted_ids: [] })
is_expected.to be_success
expect(execute.payload).to eq({ deleted_count: 0, deleted_ids: [] })
end
end
end
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册