diff --git a/spec/controllers/projects/builds_controller_spec.rb b/spec/controllers/projects/builds_controller_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..3abf3fa1aeb99ec41d9e9ad08d7111f23c92d03a
--- /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 c310d830e817ebefa3fc2fdf1bff3f460308731d..433dbdb37bf293e3f80c45da844eb678d7d2f914 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 04bb5cbbd591a59e13e54b2cdff3aa3762e11d35..b8ab9933f33c94f5369d2919c4ba613ff7826cb8 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