diff options
author | Toon Claes <toon@gitlab.com> | 2017-02-28 14:55:21 +0100 |
---|---|---|
committer | Toon Claes <toon@gitlab.com> | 2017-02-28 15:34:38 +0100 |
commit | 8c569e21d5224128e28fcc2392dc4777f9b839c2 (patch) | |
tree | f54d755279e81d49a4db6828aa1dfaaa054de1a1 /spec | |
parent | 54f6357ba3d7f31bdb0009a041e48c3a6be8e2ff (diff) | |
download | gitlab-ce-8c569e21d5224128e28fcc2392dc4777f9b839c2.tar.gz |
Add environment `/stop` action27142-api-replace-destroy-with-stop-environment
Add endpoint to stop an environment through the API.
Diffstat (limited to 'spec')
-rw-r--r-- | spec/requests/api/environments_spec.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/spec/requests/api/environments_spec.rb b/spec/requests/api/environments_spec.rb index d66eb63fd0a..8aac0546513 100644 --- a/spec/requests/api/environments_spec.rb +++ b/spec/requests/api/environments_spec.rb @@ -141,4 +141,39 @@ describe API::Environments, api: true do end end end + + describe 'POST /projects/:id/environments/:environment_id/stop' do + context 'as a master' do + context 'with a stoppable environment' do + before do + environment.update(state: :available) + + post api("/projects/#{project.id}/environments/#{environment.id}/stop", user) + end + + it 'returns a 200' do + expect(response).to have_http_status(200) + end + + it 'actually stops the environment' do + expect(environment.reload).to be_stopped + end + end + + it 'returns a 404 for non existing id' do + post api("/projects/#{project.id}/environments/12345/stop", user) + + expect(response).to have_http_status(404) + expect(json_response['message']).to eq('404 Not found') + end + end + + context 'a non member' do + it 'rejects the request' do + post api("/projects/#{project.id}/environments/#{environment.id}/stop", non_member) + + expect(response).to have_http_status(404) + end + end + end end |