summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-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"
+}