Skip to content

Commit

Permalink
Add support for edit configuration_script_payloads
Browse files Browse the repository at this point in the history
  • Loading branch information
agrare committed Jun 20, 2023
1 parent 0a3f2ee commit b3d2542
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 2 deletions.
12 changes: 11 additions & 1 deletion config/api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -986,18 +986,28 @@
:options:
- :collection
- :subcollection
:verbs: *g
:verbs:
- :get
- :put
- :post
- :patch
:klass: ConfigurationScriptPayload
:subcollections:
- :authentications
:collection_actions:
:get:
- :name: read
:identifier: embedded_configuration_script_payload_view
:post:
- :name: edit
:identifier: embedded_configuration_script_payload_edit
:resource_actions:
:get:
- :name: read
:identifier: embedded_configuration_script_payload_view
:post:
- :name: edit
:identifier: embedded_configuration_script_payload_edit
:subcollection_actions:
:get:
- :name: read
Expand Down
69 changes: 68 additions & 1 deletion spec/requests/configuration_script_payloads_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,75 @@
end
end

describe 'POST /api/configuration_script_payloads' do
let(:script_payload) { FactoryBot.create(:configuration_script_payload) }

context "edit" do
it 'forbids edit of a configuration_script_payload without an appropriate role' do
api_basic_authorize

post(api_configuration_script_payloads_url, :params => {:action => 'edit', :name => 'foo'})
expect(response).to have_http_status(:forbidden)
end

it 'can edit a configuration_script_payload' do
api_basic_authorize collection_action_identifier(:configuration_script_payloads, :edit, :post)

post(api_configuration_script_payloads_url, :params => {:action => 'edit', :resources => [{:id => script_payload.id, :name => 'foo'}]})

expect(response).to have_http_status(:ok)
expect(response.parsed_body).to include('results' => [a_hash_including('name' => 'foo')])
expect(script_payload.reload.name).to eq('foo')
end
end
end

describe 'PUT /api/configuration_script_payloads/:id' do
let(:script_payload) { FactoryBot.create(:configuration_script_payload) }

it 'forbids put on a configuration_script_payload without an appropriate role' do
api_basic_authorize

put(api_configuration_script_payload_url(nil, script_payload), :params => {:name => 'foo'})

expect(response).to have_http_status(:forbidden)
end

it 'can update a configuration_script_payload' do
api_basic_authorize action_identifier(:configuration_script_payloads, :edit)

put(api_configuration_script_payload_url(nil, script_payload), :params => {:name => 'foo'})

expect(response).to have_http_status(:ok)
expect(response.parsed_body).to include('name' => 'foo')
expect(script_payload.reload.name).to eq('foo')
end
end

describe 'PATCH /api/configuration_script_payloads/:id' do
let(:script_payload) { FactoryBot.create(:configuration_script_payload) }

it 'forbids put on a configuration_script_payload without an appropriate role' do
api_basic_authorize

patch(api_configuration_script_payload_url(nil, script_payload), :params => {:name => 'foo'})

expect(response).to have_http_status(:forbidden)
end

it 'can update a configuration_script_payload' do
api_basic_authorize action_identifier(:configuration_script_payloads, :edit)

patch(api_configuration_script_payload_url(nil, script_payload), :params => {:name => 'foo'})

expect(response).to have_http_status(:ok)
expect(response.parsed_body).to include('name' => 'foo')
expect(script_payload.reload.name).to eq('foo')
end
end

describe 'GET /api/configuration_script_payloads/:id/authentications' do
it 'returns the configuration script sources authentications' do
it 'returns the configuration script payloads authentications' do
authentication = FactoryBot.create(:authentication)
playbook = FactoryBot.create(:configuration_script_payload, :authentications => [authentication])
api_basic_authorize subcollection_action_identifier(:configuration_script_payloads, :authentications, :read, :get)
Expand Down

0 comments on commit b3d2542

Please sign in to comment.