diff options
Diffstat (limited to 'spec/requests/api/environments_spec.rb')
-rw-r--r-- | spec/requests/api/environments_spec.rb | 68 |
1 files changed, 64 insertions, 4 deletions
diff --git a/spec/requests/api/environments_spec.rb b/spec/requests/api/environments_spec.rb index 9a435b3bce9..498e030da0b 100644 --- a/spec/requests/api/environments_spec.rb +++ b/spec/requests/api/environments_spec.rb @@ -31,6 +31,14 @@ RSpec.describe API::Environments, feature_category: :continuous_delivery do expect(json_response.first).not_to have_key('last_deployment') end + it 'returns 200 HTTP status when using JOB-TOKEN auth' do + job = create(:ci_build, :running, project: project, user: user) + + get api("/projects/#{project.id}/environments"), params: { job_token: job.token } + + expect(response).to have_gitlab_http_status(:ok) + end + context 'when filtering' do let_it_be(:stopped_environment) { create(:environment, :stopped, project: project) } @@ -132,6 +140,14 @@ RSpec.describe API::Environments, feature_category: :continuous_delivery do expect(json_response['external']).to be nil end + it 'returns 200 HTTP status when using JOB-TOKEN auth' do + job = create(:ci_build, :running, project: project, user: user) + + post api("/projects/#{project.id}/environments"), params: { name: "mepmep", job_token: job.token } + + expect(response).to have_gitlab_http_status(:created) + end + it 'requires name to be passed' do post api("/projects/#{project.id}/environments", user), params: { external_url: 'test.gitlab.com' } @@ -173,6 +189,15 @@ RSpec.describe API::Environments, feature_category: :continuous_delivery do expect(response).to have_gitlab_http_status(:ok) end + it 'returns 200 HTTP status when using JOB-TOKEN auth' do + job = create(:ci_build, :running, project: project, user: user) + + post api("/projects/#{project.id}/environments/stop_stale"), + params: { before: 1.week.ago.to_date.to_s, job_token: job.token } + + expect(response).to have_gitlab_http_status(:ok) + end + it 'returns a 400 for bad input date' do post api("/projects/#{project.id}/environments/stop_stale", user), params: { before: 1.day.ago.to_date.to_s } @@ -229,6 +254,15 @@ RSpec.describe API::Environments, feature_category: :continuous_delivery do expect(json_response['tier']).to eq('production') end + it 'returns 200 HTTP status when using JOB-TOKEN auth' do + job = create(:ci_build, :running, project: project, user: user) + + put api("/projects/#{project.id}/environments/#{environment.id}"), + params: { tier: 'production', job_token: job.token } + + expect(response).to have_gitlab_http_status(:ok) + end + it "won't allow slug to be changed" do slug = environment.slug api_url = api("/projects/#{project.id}/environments/#{environment.id}", user) @@ -261,6 +295,17 @@ RSpec.describe API::Environments, feature_category: :continuous_delivery do expect(response).to have_gitlab_http_status(:no_content) end + it 'returns 204 HTTP status when using JOB-TOKEN auth' do + environment.stop + + job = create(:ci_build, :running, project: project, user: user) + + delete api("/projects/#{project.id}/environments/#{environment.id}"), + params: { job_token: job.token } + + expect(response).to have_gitlab_http_status(:no_content) + end + it 'returns a 404 for non existing id' do delete api("/projects/#{project.id}/environments/#{non_existing_record_id}", user) @@ -291,17 +336,23 @@ RSpec.describe API::Environments, feature_category: :continuous_delivery 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 + post api("/projects/#{project.id}/environments/#{environment.id}/stop", user) + expect(response).to have_gitlab_http_status(:ok) expect(response).to match_response_schema('public_api/v4/environment') + expect(environment.reload).to be_stopped end - it 'actually stops the environment' do - expect(environment.reload).to be_stopped + it 'returns 200 HTTP status when using JOB-TOKEN auth' do + job = create(:ci_build, :running, project: project, user: user) + + post api("/projects/#{project.id}/environments/#{environment.id}/stop"), + params: { job_token: job.token } + + expect(response).to have_gitlab_http_status(:ok) end end @@ -333,6 +384,15 @@ RSpec.describe API::Environments, feature_category: :continuous_delivery do expect(response).to match_response_schema('public_api/v4/environment') expect(json_response['last_deployment']).to be_present end + + it 'returns 200 HTTP status when using JOB-TOKEN auth' do + job = create(:ci_build, :running, project: project, user: user) + + get api("/projects/#{project.id}/environments/#{environment.id}"), + params: { job_token: job.token } + + expect(response).to have_gitlab_http_status(:ok) + end end context 'as non member' do |