summaryrefslogtreecommitdiff
path: root/spec/controllers
diff options
context:
space:
mode:
authorShinya Maeda <gitlab.shinyamaeda@gmail.com>2017-03-21 22:21:13 +0900
committerShinya Maeda <gitlab.shinyamaeda@gmail.com>2017-03-23 17:11:49 +0900
commita375d80eb072d62962af9b6f2decf9782cd7ee1f (patch)
tree4cea31ebfcac1b9dcc42ea51a951588fcecc53ce /spec/controllers
parent6dcd2d591fa00be027b92e8c0e6b3b129921f4fa (diff)
downloadgitlab-ce-a375d80eb072d62962af9b6f2decf9782cd7ee1f.tar.gz
Use detailed_status effectively. Remove unnecesarry context(nest). Add new context in merge_requests_controller_spec.rb and fix a bug. Correct description of spec.
Diffstat (limited to 'spec/controllers')
-rw-r--r--spec/controllers/projects/builds_controller_spec.rb34
-rw-r--r--spec/controllers/projects/merge_requests_controller_spec.rb37
-rw-r--r--spec/controllers/projects/pipelines_controller_spec.rb32
3 files changed, 53 insertions, 50 deletions
diff --git a/spec/controllers/projects/builds_controller_spec.rb b/spec/controllers/projects/builds_controller_spec.rb
index 2234b2e6131..683667129e5 100644
--- a/spec/controllers/projects/builds_controller_spec.rb
+++ b/spec/controllers/projects/builds_controller_spec.rb
@@ -11,27 +11,23 @@ describe Projects::BuildsController do
end
describe 'GET status.json' do
- context 'when accessing status' do
- let(:status) do
- Gitlab::Ci::Status::Success.new(double('object'), double('user'))
- end
+ let(:pipeline) { create(:ci_pipeline, project: project) }
+ let(:build) { create(:ci_build, pipeline: pipeline) }
+ let(:status) { build.detailed_status(double('user')) }
- 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
+ before do
+ get :status, namespace_id: project.namespace,
+ project_id: project,
+ id: build.id,
+ format: :json
+ end
- it 'return a correct pipeline status' do
- expect(response).to have_http_status(:ok)
- expect(json_response['text']).to eq status.text
- expect(json_response['label']).to eq status.label
- expect(json_response['icon']).to eq status.icon
- expect(json_response['favicon']).to eq status.favicon
- end
+ it 'return a detailed build status in json' do
+ expect(response).to have_http_status(:ok)
+ expect(json_response['text']).to eq status.text
+ expect(json_response['label']).to eq status.label
+ expect(json_response['icon']).to eq status.icon
+ expect(json_response['favicon']).to eq status.favicon
end
end
end
diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb
index 9fa509c339e..72f41f7209a 100644
--- a/spec/controllers/projects/merge_requests_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests_controller_spec.rb
@@ -1180,23 +1180,18 @@ describe Projects::MergeRequestsController do
end
describe 'GET pipeline_status.json' do
- context 'when accessing pipeline_status' do
- let(:status) do
- Gitlab::Ci::Status::Success.new(double('object'), double('user'))
- end
-
- before do
+ context 'when head_pipeline exists' do
+ let!(:pipeline) do
create(:ci_pipeline, project: merge_request.source_project,
ref: merge_request.source_branch,
- sha: merge_request.diff_head_sha,
- status: :success)
- get :pipeline_status, namespace_id: project.namespace,
- project_id: project,
- id: merge_request.iid,
- format: :json
+ sha: merge_request.diff_head_sha)
end
- it 'return a correct pipeline status' do
+ let(:status) { pipeline.detailed_status(double('user')) }
+
+ before { get_pipeline_status }
+
+ it 'return a detailed head_pipeline status in json' do
expect(response).to have_http_status(:ok)
expect(json_response['text']).to eq status.text
expect(json_response['label']).to eq status.label
@@ -1204,5 +1199,21 @@ describe Projects::MergeRequestsController do
expect(json_response['favicon']).to eq status.favicon
end
end
+
+ context 'when head_pipeline does not exist' do
+ before { get_pipeline_status }
+
+ it 'return empty' do
+ expect(response).to have_http_status(:ok)
+ expect(json_response).to be_empty
+ end
+ end
+
+ def get_pipeline_status
+ get :pipeline_status, namespace_id: project.namespace,
+ project_id: project,
+ id: merge_request.iid,
+ format: :json
+ end
end
end
diff --git a/spec/controllers/projects/pipelines_controller_spec.rb b/spec/controllers/projects/pipelines_controller_spec.rb
index 9ce8f8e8da1..d8f9bfd0d37 100644
--- a/spec/controllers/projects/pipelines_controller_spec.rb
+++ b/spec/controllers/projects/pipelines_controller_spec.rb
@@ -71,26 +71,22 @@ describe Projects::PipelinesController do
end
describe 'GET status.json' do
- context 'when accessing status' do
- let(:status) do
- Gitlab::Ci::Status::Success.new(double('object'), double('user'))
- end
+ let(:pipeline) { create(:ci_pipeline, project: project) }
+ let(:status) { pipeline.detailed_status(double('user')) }
- 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
+ before do
+ get :status, namespace_id: project.namespace,
+ project_id: project,
+ id: pipeline.id,
+ format: :json
+ end
- it 'return a correct pipeline status' do
- expect(response).to have_http_status(:ok)
- expect(json_response['text']).to eq status.text
- expect(json_response['label']).to eq status.label
- expect(json_response['icon']).to eq status.icon
- expect(json_response['favicon']).to eq status.favicon
- end
+ it 'return a detailed pipeline status in json' do
+ expect(response).to have_http_status(:ok)
+ expect(json_response['text']).to eq status.text
+ expect(json_response['label']).to eq status.label
+ expect(json_response['icon']).to eq status.icon
+ expect(json_response['favicon']).to eq status.favicon
end
end
end