summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPawel Chojnacki <pawel@chojnacki.ws>2017-04-24 19:55:07 +0200
committerPawel Chojnacki <pawel@chojnacki.ws>2017-04-24 19:55:07 +0200
commit5bf0441fd9cda2dcc3c3ef1ce3084df5ed87602d (patch)
tree7b6b8b17e2092284456760712c48ee3fdd106086
parent88f69cbd8cd89ffbdc1f0200d5c298f7c7c0acd7 (diff)
downloadgitlab-ce-5bf0441fd9cda2dcc3c3ef1ce3084df5ed87602d.tar.gz
Cleanup deploymentsd controller spec and use schema validation to test the output
-rw-r--r--spec/controllers/projects/deployments_controller_spec.rb13
-rw-r--r--spec/fixtures/api/schemas/deployments.json58
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"
+}