Ensure Ci::Runner#assign_to errors for group runners
This commit is contained in:
parent
84fa061086
commit
cd834b46a8
2 changed files with 22 additions and 7 deletions
|
@ -111,6 +111,8 @@ module Ci
|
||||||
if shared?
|
if shared?
|
||||||
self.is_shared = false if shared?
|
self.is_shared = false if shared?
|
||||||
self.runner_type = :project_type
|
self.runner_type = :project_type
|
||||||
|
elsif group_type?
|
||||||
|
raise ArgumentError, 'Transitioning a group runner to a project runner is not supported'
|
||||||
end
|
end
|
||||||
|
|
||||||
self.save
|
self.save
|
||||||
|
|
|
@ -200,16 +200,29 @@ describe Ci::Runner do
|
||||||
|
|
||||||
describe '#assign_to' do
|
describe '#assign_to' do
|
||||||
let!(:project) { FactoryBot.create(:project) }
|
let!(:project) { FactoryBot.create(:project) }
|
||||||
let!(:shared_runner) { FactoryBot.create(:ci_runner, :shared) }
|
|
||||||
|
|
||||||
before do
|
subject { runner.assign_to(project) }
|
||||||
shared_runner.assign_to(project)
|
|
||||||
|
context 'with shared_runner' do
|
||||||
|
let!(:runner) { FactoryBot.create(:ci_runner, :shared) }
|
||||||
|
|
||||||
|
it 'transitions shared runner to project runner and assigns project' do
|
||||||
|
subject
|
||||||
|
expect(runner).to be_specific
|
||||||
|
expect(runner).to be_project_type
|
||||||
|
expect(runner.projects).to eq([project])
|
||||||
|
expect(runner.only_for?(project)).to be_truthy
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it { expect(shared_runner).to be_specific }
|
context 'with group runner' do
|
||||||
it { expect(shared_runner).to be_project_type }
|
let!(:runner) { FactoryBot.create(:ci_runner, runner_type: :group_type) }
|
||||||
it { expect(shared_runner.projects).to eq([project]) }
|
|
||||||
it { expect(shared_runner.only_for?(project)).to be_truthy }
|
it 'raises an error' do
|
||||||
|
expect { subject }
|
||||||
|
.to raise_error(ArgumentError, 'Transitioning a group runner to a project runner is not supported')
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '.online' do
|
describe '.online' do
|
||||||
|
|
Loading…
Reference in a new issue