Extend runner options that are configurable via API
This commit is contained in:
parent
7b607cf4f0
commit
da8b72d453
3 changed files with 13 additions and 5 deletions
|
@ -408,6 +408,7 @@ module API
|
|||
|
||||
class RunnerDetails < Runner
|
||||
expose :tag_list
|
||||
expose :run_untagged
|
||||
expose :version, :revision, :platform, :architecture
|
||||
expose :contacted_at
|
||||
expose :token, if: lambda { |runner, options| options[:current_user].is_admin? || !runner.is_shared? }
|
||||
|
|
|
@ -49,7 +49,7 @@ module API
|
|||
runner = get_runner(params[:id])
|
||||
authenticate_update_runner!(runner)
|
||||
|
||||
attrs = attributes_for_keys [:description, :active, :tag_list]
|
||||
attrs = attributes_for_keys [:description, :active, :tag_list, :run_untagged]
|
||||
if runner.update(attrs)
|
||||
present runner, with: Entities::RunnerDetails, current_user: current_user
|
||||
else
|
||||
|
|
|
@ -184,21 +184,24 @@ describe API::Runners, api: true do
|
|||
description = shared_runner.description
|
||||
active = shared_runner.active
|
||||
|
||||
put api("/runners/#{shared_runner.id}", admin), description: "#{description}_updated", active: !active,
|
||||
tag_list: ['ruby2.1', 'pgsql', 'mysql']
|
||||
update_runner(shared_runner.id, admin, description: "#{description}_updated",
|
||||
active: !active,
|
||||
tag_list: ['ruby2.1', 'pgsql', 'mysql'],
|
||||
run_untagged: 'false')
|
||||
shared_runner.reload
|
||||
|
||||
expect(response.status).to eq(200)
|
||||
expect(shared_runner.description).to eq("#{description}_updated")
|
||||
expect(shared_runner.active).to eq(!active)
|
||||
expect(shared_runner.tag_list).to include('ruby2.1', 'pgsql', 'mysql')
|
||||
expect(shared_runner.run_untagged?).to be false
|
||||
end
|
||||
end
|
||||
|
||||
context 'when runner is not shared' do
|
||||
it 'should update runner' do
|
||||
description = specific_runner.description
|
||||
put api("/runners/#{specific_runner.id}", admin), description: 'test'
|
||||
update_runner(specific_runner.id, admin, description: 'test')
|
||||
specific_runner.reload
|
||||
|
||||
expect(response.status).to eq(200)
|
||||
|
@ -208,10 +211,14 @@ describe API::Runners, api: true do
|
|||
end
|
||||
|
||||
it 'should return 404 if runner does not exists' do
|
||||
put api('/runners/9999', admin), description: 'test'
|
||||
update_runner(9999, admin, description: 'test')
|
||||
|
||||
expect(response.status).to eq(404)
|
||||
end
|
||||
|
||||
def update_runner(id, user, args)
|
||||
put api("/runners/#{id}", user), args
|
||||
end
|
||||
end
|
||||
|
||||
context 'authorized user' do
|
||||
|
|
Loading…
Reference in a new issue