From 4fa4a2ce999c75aee1261815656e47f66d73c725 Mon Sep 17 00:00:00 2001
From: Shinya Maeda <gitlab.shinyamaeda@gmail.com>
Date: Mon, 6 Mar 2017 21:01:18 +0900
Subject: [PATCH] Add controllers spec

---
 .../projects/builds_controller_spec.rb        | 30 +++++++++++++++++++
 .../merge_requests_controller_spec.rb         | 20 +++++++++++++
 .../projects/pipelines_controller_spec.rb     | 17 +++++++++++
 3 files changed, 67 insertions(+)
 create mode 100644 spec/controllers/projects/builds_controller_spec.rb

diff --git a/spec/controllers/projects/builds_controller_spec.rb b/spec/controllers/projects/builds_controller_spec.rb
new file mode 100644
index 00000000000..3abf3fa1aeb
--- /dev/null
+++ b/spec/controllers/projects/builds_controller_spec.rb
@@ -0,0 +1,30 @@
+require 'spec_helper'
+
+describe Projects::BuildsController do
+  include ApiHelpers
+
+  let(:user) { create(:user) }
+  let(:project) { create(:empty_project, :public) }
+
+  before do
+    sign_in(user)
+  end
+
+  describe 'GET status.json' do
+    context 'when accessing status' do
+      before do
+        pipeline = create(:ci_pipeline, project: project)
+        build = create(:ci_build, pipeline: pipeline, status: 'success')
+        get :status, namespace_id: project.namespace,
+                  project_id: project,
+                  id: build.id,
+                  format: :json
+      end
+
+      it 'returns pipeline status via BuildSerializer' do
+        expect(response).to have_http_status(:ok)
+        expect(json_response['details']['status']['text']).to eq 'passed'
+      end
+    end
+  end
+end
diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb
index c310d830e81..433dbdb37bf 100644
--- a/spec/controllers/projects/merge_requests_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests_controller_spec.rb
@@ -1178,4 +1178,24 @@ describe Projects::MergeRequestsController do
       end
     end
   end
+
+  describe 'GET status.json' do
+    context 'when accessing status' do
+      before do
+        create(:ci_pipeline, project: merge_request.source_project,
+          ref: merge_request.source_branch,
+          sha: merge_request.diff_head_sha,
+          status: 'success')
+        get :status, namespace_id: project.namespace,
+                  project_id: project,
+                  id: merge_request.iid,
+                  format: :json
+      end
+
+      it 'returns pipeline status via PipelineSerializer' do
+        expect(response).to have_http_status(:ok)
+        expect(json_response['details']['status']['text']).to eq 'passed'
+      end
+    end
+  end
 end
diff --git a/spec/controllers/projects/pipelines_controller_spec.rb b/spec/controllers/projects/pipelines_controller_spec.rb
index 04bb5cbbd59..b8ab9933f33 100644
--- a/spec/controllers/projects/pipelines_controller_spec.rb
+++ b/spec/controllers/projects/pipelines_controller_spec.rb
@@ -69,4 +69,21 @@ describe Projects::PipelinesController do
                   format: :json
     end
   end
+
+  describe 'GET status.json' do
+    context 'when accessing status' do
+      before do
+        pipeline = create(:ci_pipeline, project: project, status: 'success')
+        get :status, namespace_id: project.namespace,
+                  project_id: project,
+                  id: pipeline.id,
+                  format: :json
+      end
+
+      it 'returns pipeline status via PipelineSerializer' do
+        expect(response).to have_http_status(:ok)
+        expect(json_response['details']['status']['text']).to eq 'passed'
+      end
+    end
+  end
 end
-- 
GitLab