diff options
author | Steve Azzopardi <steveazz@outlook.com> | 2018-08-30 19:27:04 +0200 |
---|---|---|
committer | Steve Azzopardi <steveazz@outlook.com> | 2018-09-03 18:49:52 +0200 |
commit | 71433c5525c68bbf25f171e760e3817af7f217d4 (patch) | |
tree | bc2313d5fc916b43a9c7d5fd9020b07d88fd9764 /spec/controllers | |
parent | 4ee2ae14f5bb4349ac4a42388321f49786501484 (diff) | |
download | gitlab-ce-71433c5525c68bbf25f171e760e3817af7f217d4.tar.gz |
Add JSON schema validation for job API
Start validating against the exciting JSON schema for the job controller JSON
response.
The JSON schema is not complete since there is quite a lot missing, this will
be done in a separate issue.
Diffstat (limited to 'spec/controllers')
-rw-r--r-- | spec/controllers/projects/jobs_controller_spec.rb | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/spec/controllers/projects/jobs_controller_spec.rb b/spec/controllers/projects/jobs_controller_spec.rb index a0676ab7fda..d9499d7e207 100644 --- a/spec/controllers/projects/jobs_controller_spec.rb +++ b/spec/controllers/projects/jobs_controller_spec.rb @@ -149,6 +149,7 @@ describe Projects::JobsController, :clean_gitlab_redis_shared_state do it 'exposes needed information' do expect(response).to have_gitlab_http_status(:ok) + expect(response).to match_response_schema('job/job_details') expect(json_response['raw_path']).to match(%r{jobs/\d+/raw\z}) expect(json_response['merge_request']['path']).to match(%r{merge_requests/\d+\z}) expect(json_response['new_issue_path']).to include('/issues/new') @@ -170,6 +171,7 @@ describe Projects::JobsController, :clean_gitlab_redis_shared_state do it 'exposes needed information' do expect(response).to have_gitlab_http_status(:ok) + expect(response).to match_response_schema('job/job_details') expect(json_response['artifact']['download_path']).to match(%r{artifacts/download}) expect(json_response['artifact']['browse_path']).to match(%r{artifacts/browse}) expect(json_response['artifact']).not_to have_key(:expired) @@ -178,7 +180,7 @@ describe Projects::JobsController, :clean_gitlab_redis_shared_state do expect(json_response.dig('merge_request', 'path')).to match(%r{merge_requests/\d+\z}) end - context 'when request JSON for successful job and expired artifacts' do + context 'when request JSON for successful job with expired artifacts' do let(:merge_request) { create(:merge_request, source_project: project) } let(:job) { create(:ci_build, :success, :artifacts, :expired, pipeline: pipeline) } @@ -193,6 +195,7 @@ describe Projects::JobsController, :clean_gitlab_redis_shared_state do it 'exposes needed information' do expect(response).to have_gitlab_http_status(:ok) + expect(response).to match_response_schema('job/job_details') expect(json_response['artifact']).not_to have_key(:download_path) expect(json_response['artifact']).not_to have_key(:browse_path) expect(json_response['artifact']['expired']).to eq(true) |