diff options
author | Pawel Chojnacki <pawel@chojnacki.ws> | 2017-04-24 19:55:07 +0200 |
---|---|---|
committer | Pawel Chojnacki <pawel@chojnacki.ws> | 2017-04-24 19:55:07 +0200 |
commit | 5bf0441fd9cda2dcc3c3ef1ce3084df5ed87602d (patch) | |
tree | 7b6b8b17e2092284456760712c48ee3fdd106086 /spec | |
parent | 88f69cbd8cd89ffbdc1f0200d5c298f7c7c0acd7 (diff) | |
download | gitlab-ce-5bf0441fd9cda2dcc3c3ef1ce3084df5ed87602d.tar.gz |
Cleanup deploymentsd controller spec and use schema validation to test the output
Diffstat (limited to 'spec')
-rw-r--r-- | spec/controllers/projects/deployments_controller_spec.rb | 13 | ||||
-rw-r--r-- | spec/fixtures/api/schemas/deployments.json | 58 |
2 files changed, 62 insertions, 9 deletions
diff --git a/spec/controllers/projects/deployments_controller_spec.rb b/spec/controllers/projects/deployments_controller_spec.rb index fbe510fb539..89692b601b2 100644 --- a/spec/controllers/projects/deployments_controller_spec.rb +++ b/spec/controllers/projects/deployments_controller_spec.rb @@ -6,16 +6,15 @@ describe Projects::DeploymentsController do let(:user) { create(:user) } let(:project) { create(:empty_project) } let(:environment) { create(:environment, name: 'production', project: project) } - let(:deployment) { create(:deployment, project: project, environment: environment) } before do - project.team << [user, :master] + project.add_master(user) sign_in(user) end describe 'GET #index' do - it 'returns list of deployments withing last 8 hours' do + it 'returns list of deployments from last 8 hours' do create(:deployment, environment: environment, created_at: 9.hours.ago) create(:deployment, environment: environment, created_at: 7.hours.ago) create(:deployment, environment: environment) @@ -31,13 +30,9 @@ describe Projects::DeploymentsController do create(:deployment, environment: environment) get :index, environment_params - expect(response).to be_ok - - deployments = json_response['deployments'] - deployment_info = deployments.first.with_indifferent_access - expect(deployments.count).to eq(1) - expect(deployment_info).to include(:id, :iid, :sha, :ref, :tag, :created_at) + expect(response).to be_ok + expect(response).to match_response_schema('deployments') end end diff --git a/spec/fixtures/api/schemas/deployments.json b/spec/fixtures/api/schemas/deployments.json new file mode 100644 index 00000000000..1112f23aab2 --- /dev/null +++ b/spec/fixtures/api/schemas/deployments.json @@ -0,0 +1,58 @@ +{ + "additionalProperties": false, + "properties": { + "deployments": { + "items": { + "additionalProperties": false, + "properties": { + "created_at": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "iid": { + "type": "integer" + }, + "last?": { + "type": "boolean" + }, + "ref": { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "sha": { + "type": "string" + }, + "tag": { + "type": "boolean" + } + }, + "required": [ + "sha", + "created_at", + "iid", + "tag", + "last?", + "ref", + "id" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "deployments" + ], + "type": "object" +} |