From 617292046cf69ff4a41da875fe67f0ce7f612ea3 Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Tue, 7 Mar 2017 00:09:48 +0900 Subject: Add spec for entity and serializer --- spec/serializers/build_entity_spec.rb | 13 ++++++++++++- spec/serializers/build_serializer_spec.rb | 26 ++++++++++++++++++++++++++ spec/serializers/pipeline_entity_spec.rb | 2 +- spec/serializers/pipeline_serializer_spec.rb | 13 +++++++++++++ spec/serializers/status_entity_spec.rb | 2 +- 5 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 spec/serializers/build_serializer_spec.rb (limited to 'spec/serializers') diff --git a/spec/serializers/build_entity_spec.rb b/spec/serializers/build_entity_spec.rb index 60c9642ee2c..cd30b00c711 100644 --- a/spec/serializers/build_entity_spec.rb +++ b/spec/serializers/build_entity_spec.rb @@ -1,10 +1,16 @@ require 'spec_helper' describe BuildEntity do + let(:user) { create(:user) } let(:build) { create(:ci_build) } + let(:request) { double('request') } + + before do + allow(request).to receive(:user).and_return(user) + end let(:entity) do - described_class.new(build, request: double) + described_class.new(build, request: request) end subject { entity.as_json } @@ -22,6 +28,11 @@ describe BuildEntity do expect(subject).to include(:created_at, :updated_at) end + it 'contains details' do + expect(subject).to include :details + expect(subject[:details][:status]).to include :icon, :favicon, :text, :label + end + context 'when build is a regular job' do it 'does not contain path to play action' do expect(subject).not_to include(:play_path) diff --git a/spec/serializers/build_serializer_spec.rb b/spec/serializers/build_serializer_spec.rb new file mode 100644 index 00000000000..ef75a2941c2 --- /dev/null +++ b/spec/serializers/build_serializer_spec.rb @@ -0,0 +1,26 @@ +require 'spec_helper' + +describe BuildSerializer do + let(:user) { create(:user) } + + let(:serializer) do + described_class.new(user: user) + end + + subject { serializer.represent(resource) } + + describe '#represent' do + context 'when used with status' do + let(:serializer) do + described_class.new(user: user) + .with_status + end + let(:resource) { create(:ci_build) } + + it 'serializes only status' do + expect(subject[:details][:status]).not_to be_empty + expect(subject[:details].keys.count).to eq 1 + end + end + end +end diff --git a/spec/serializers/pipeline_entity_spec.rb b/spec/serializers/pipeline_entity_spec.rb index ccb72973f9c..93d5a21419d 100644 --- a/spec/serializers/pipeline_entity_spec.rb +++ b/spec/serializers/pipeline_entity_spec.rb @@ -30,7 +30,7 @@ describe PipelineEntity do .to include :duration, :finished_at expect(subject[:details]) .to include :stages, :artifacts, :manual_actions - expect(subject[:details][:status]).to include :icon, :text, :label + expect(subject[:details][:status]).to include :icon, :favicon, :text, :label end it 'contains flags' do diff --git a/spec/serializers/pipeline_serializer_spec.rb b/spec/serializers/pipeline_serializer_spec.rb index 2aaef03cb93..3bf4a667853 100644 --- a/spec/serializers/pipeline_serializer_spec.rb +++ b/spec/serializers/pipeline_serializer_spec.rb @@ -93,5 +93,18 @@ describe PipelineSerializer do end end end + + context 'when used with status' do + let(:serializer) do + described_class.new(user: user) + .with_status + end + let(:resource) { create(:ci_empty_pipeline) } + + it 'serializes only status' do + expect(subject[:details][:status]).not_to be_empty + expect(subject[:details].keys.count).to eq 1 + end + end end end diff --git a/spec/serializers/status_entity_spec.rb b/spec/serializers/status_entity_spec.rb index 89428b4216e..c94902dbab8 100644 --- a/spec/serializers/status_entity_spec.rb +++ b/spec/serializers/status_entity_spec.rb @@ -16,7 +16,7 @@ describe StatusEntity do subject { entity.as_json } it 'contains status details' do - expect(subject).to include :text, :icon, :label, :group + expect(subject).to include :text, :icon, :favicon, :label, :group expect(subject).to include :has_details, :details_path end end -- cgit v1.2.1 From 170e54236999aebcdf1508b47a00f9b692b3f8db Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Tue, 7 Mar 2017 03:22:23 +0900 Subject: Fix deployment_entity_spec.rb. It also reads BuildSerializer. --- spec/serializers/deployment_entity_spec.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'spec/serializers') diff --git a/spec/serializers/deployment_entity_spec.rb b/spec/serializers/deployment_entity_spec.rb index ea87771e2a2..22b566ec3ca 100644 --- a/spec/serializers/deployment_entity_spec.rb +++ b/spec/serializers/deployment_entity_spec.rb @@ -1,8 +1,15 @@ require 'spec_helper' describe DeploymentEntity do + let(:user) { create(:user) } + let(:request) { double('request') } + + before do + allow(request).to receive(:user).and_return(user) + end + let(:entity) do - described_class.new(deployment, request: double) + described_class.new(deployment, request: request) end let(:deployment) { create(:deployment) } -- cgit v1.2.1 From 2b33e9eeb68199f7085102a85c06821b991ecd4d Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Fri, 10 Mar 2017 18:30:39 +0900 Subject: with_status to only_status --- spec/serializers/build_serializer_spec.rb | 2 +- spec/serializers/pipeline_serializer_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'spec/serializers') diff --git a/spec/serializers/build_serializer_spec.rb b/spec/serializers/build_serializer_spec.rb index ef75a2941c2..e6437538328 100644 --- a/spec/serializers/build_serializer_spec.rb +++ b/spec/serializers/build_serializer_spec.rb @@ -13,7 +13,7 @@ describe BuildSerializer do context 'when used with status' do let(:serializer) do described_class.new(user: user) - .with_status + .only_status end let(:resource) { create(:ci_build) } diff --git a/spec/serializers/pipeline_serializer_spec.rb b/spec/serializers/pipeline_serializer_spec.rb index 3bf4a667853..0e043e980ac 100644 --- a/spec/serializers/pipeline_serializer_spec.rb +++ b/spec/serializers/pipeline_serializer_spec.rb @@ -97,7 +97,7 @@ describe PipelineSerializer do context 'when used with status' do let(:serializer) do described_class.new(user: user) - .with_status + .only_status end let(:resource) { create(:ci_empty_pipeline) } -- cgit v1.2.1 From a5b96417f39a5ab8b4d2ddde1fd654937244a73c Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Sat, 11 Mar 2017 00:16:48 +0900 Subject: with_status to represent_status --- spec/serializers/build_serializer_spec.rb | 18 +++++++++++------- spec/serializers/pipeline_serializer_spec.rb | 16 +++++++++------- 2 files changed, 20 insertions(+), 14 deletions(-) (limited to 'spec/serializers') diff --git a/spec/serializers/build_serializer_spec.rb b/spec/serializers/build_serializer_spec.rb index e6437538328..a8069004e7b 100644 --- a/spec/serializers/build_serializer_spec.rb +++ b/spec/serializers/build_serializer_spec.rb @@ -10,16 +10,20 @@ describe BuildSerializer do subject { serializer.represent(resource) } describe '#represent' do - context 'when used with status' do - let(:serializer) do - described_class.new(user: user) - .only_status + # TODO: + end + + describe '#represent_status' do + context 'when represents only status' do + let(:status) do + Gitlab::Ci::Status::Success.new(double('object'), double('user')) end - let(:resource) { create(:ci_build) } + let(:resource) { create(:ci_build, status: :success) } + + subject { serializer.represent_status(resource) } it 'serializes only status' do - expect(subject[:details][:status]).not_to be_empty - expect(subject[:details].keys.count).to eq 1 + expect(subject[:favicon]).to eq(status.favicon) end end end diff --git a/spec/serializers/pipeline_serializer_spec.rb b/spec/serializers/pipeline_serializer_spec.rb index 0e043e980ac..a668d9df11a 100644 --- a/spec/serializers/pipeline_serializer_spec.rb +++ b/spec/serializers/pipeline_serializer_spec.rb @@ -93,17 +93,19 @@ describe PipelineSerializer do end end end + end - context 'when used with status' do - let(:serializer) do - described_class.new(user: user) - .only_status + describe '#represent_status' do + context 'when represents only status' do + let(:status) do + Gitlab::Ci::Status::Success.new(double('object'), double('user')) end - let(:resource) { create(:ci_empty_pipeline) } + let(:resource) { create(:ci_pipeline, status: :success) } + + subject { serializer.represent_status(resource) } it 'serializes only status' do - expect(subject[:details][:status]).not_to be_empty - expect(subject[:details].keys.count).to eq 1 + expect(subject[:favicon]).to eq(status.favicon) end end end -- cgit v1.2.1 From 74f13e0ddf1d7adb14fd4df9dd95519498157013 Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Sat, 11 Mar 2017 19:56:05 +0900 Subject: Fix unchanged structure. Add favicon for 'failed_allowed' and 'success_warning' because it'll be used. --- spec/serializers/build_entity_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'spec/serializers') diff --git a/spec/serializers/build_entity_spec.rb b/spec/serializers/build_entity_spec.rb index cd30b00c711..7dcdf54fd93 100644 --- a/spec/serializers/build_entity_spec.rb +++ b/spec/serializers/build_entity_spec.rb @@ -29,8 +29,8 @@ describe BuildEntity do end it 'contains details' do - expect(subject).to include :details - expect(subject[:details][:status]).to include :icon, :favicon, :text, :label + expect(subject).to include :status + expect(subject[:status]).to include :icon, :favicon, :text, :label end context 'when build is a regular job' do -- cgit v1.2.1 From 08a0bc5397b6f41deef5d2e492c6cf101db741ae Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Sat, 11 Mar 2017 23:30:25 +0900 Subject: Add more specs --- spec/serializers/build_serializer_spec.rb | 19 ++++++++++++++++++- spec/serializers/pipeline_serializer_spec.rb | 3 +++ 2 files changed, 21 insertions(+), 1 deletion(-) (limited to 'spec/serializers') diff --git a/spec/serializers/build_serializer_spec.rb b/spec/serializers/build_serializer_spec.rb index a8069004e7b..5a55d9d7dc1 100644 --- a/spec/serializers/build_serializer_spec.rb +++ b/spec/serializers/build_serializer_spec.rb @@ -10,7 +10,21 @@ describe BuildSerializer do subject { serializer.represent(resource) } describe '#represent' do - # TODO: + context 'when a single object is being serialized' do + let(:resource) { create(:ci_build) } + + it 'serializers the pipeline object' do + expect(subject[:id]).to eq resource.id + end + end + + context 'when multiple objects are being serialized' do + let(:resource) { create_list(:ci_build, 2) } + + it 'serializers the array of pipelines' do + expect(subject).not_to be_empty + end + end end describe '#represent_status' do @@ -23,6 +37,9 @@ describe BuildSerializer do subject { serializer.represent_status(resource) } it 'serializes only status' do + expect(subject[:text]).to eq(status.text) + expect(subject[:label]).to eq(status.label) + expect(subject[:icon]).to eq(status.icon) expect(subject[:favicon]).to eq(status.favicon) end end diff --git a/spec/serializers/pipeline_serializer_spec.rb b/spec/serializers/pipeline_serializer_spec.rb index a668d9df11a..261f2152c22 100644 --- a/spec/serializers/pipeline_serializer_spec.rb +++ b/spec/serializers/pipeline_serializer_spec.rb @@ -105,6 +105,9 @@ describe PipelineSerializer do subject { serializer.represent_status(resource) } it 'serializes only status' do + expect(subject[:text]).to eq(status.text) + expect(subject[:label]).to eq(status.label) + expect(subject[:icon]).to eq(status.icon) expect(subject[:favicon]).to eq(status.favicon) end end -- cgit v1.2.1 From d8343a0c41444b4f8bcff5e157f97d8a3cb8a766 Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Sun, 12 Mar 2017 02:22:08 +0900 Subject: Remove unnecessary spaces --- spec/serializers/deployment_entity_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'spec/serializers') diff --git a/spec/serializers/deployment_entity_spec.rb b/spec/serializers/deployment_entity_spec.rb index 22b566ec3ca..95eca5463eb 100644 --- a/spec/serializers/deployment_entity_spec.rb +++ b/spec/serializers/deployment_entity_spec.rb @@ -7,7 +7,7 @@ describe DeploymentEntity do before do allow(request).to receive(:user).and_return(user) end - + let(:entity) do described_class.new(deployment, request: request) end -- cgit v1.2.1 From a375d80eb072d62962af9b6f2decf9782cd7ee1f Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Tue, 21 Mar 2017 22:21:13 +0900 Subject: 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. --- spec/serializers/build_serializer_spec.rb | 6 ++---- spec/serializers/pipeline_serializer_spec.rb | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) (limited to 'spec/serializers') diff --git a/spec/serializers/build_serializer_spec.rb b/spec/serializers/build_serializer_spec.rb index 5a55d9d7dc1..3cc791bca50 100644 --- a/spec/serializers/build_serializer_spec.rb +++ b/spec/serializers/build_serializer_spec.rb @@ -29,10 +29,8 @@ describe BuildSerializer do describe '#represent_status' do context 'when represents only status' do - let(:status) do - Gitlab::Ci::Status::Success.new(double('object'), double('user')) - end - let(:resource) { create(:ci_build, status: :success) } + let(:resource) { create(:ci_build) } + let(:status) { resource.detailed_status(double('user')) } subject { serializer.represent_status(resource) } diff --git a/spec/serializers/pipeline_serializer_spec.rb b/spec/serializers/pipeline_serializer_spec.rb index 261f2152c22..8642b803844 100644 --- a/spec/serializers/pipeline_serializer_spec.rb +++ b/spec/serializers/pipeline_serializer_spec.rb @@ -97,10 +97,8 @@ describe PipelineSerializer do describe '#represent_status' do context 'when represents only status' do - let(:status) do - Gitlab::Ci::Status::Success.new(double('object'), double('user')) - end - let(:resource) { create(:ci_pipeline, status: :success) } + let(:resource) { create(:ci_pipeline) } + let(:status) { resource.detailed_status(double('user')) } subject { serializer.represent_status(resource) } -- cgit v1.2.1 From b1222ebcf3b04624f788b47be58bf4fc5dd679cc Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Mon, 27 Mar 2017 15:44:13 -0400 Subject: Use `:empty_project` where possible in serializer specs --- spec/serializers/analytics_issue_serializer_spec.rb | 2 +- .../analytics_merge_request_serializer_spec.rb | 2 +- spec/serializers/commit_entity_spec.rb | 2 +- spec/serializers/environment_serializer_spec.rb | 15 +++++++-------- 4 files changed, 10 insertions(+), 11 deletions(-) (limited to 'spec/serializers') diff --git a/spec/serializers/analytics_issue_serializer_spec.rb b/spec/serializers/analytics_issue_serializer_spec.rb index 2f08958a783..ba24cf8e481 100644 --- a/spec/serializers/analytics_issue_serializer_spec.rb +++ b/spec/serializers/analytics_issue_serializer_spec.rb @@ -8,7 +8,7 @@ describe AnalyticsIssueSerializer do end let(:user) { create(:user) } - let(:project) { create(:project) } + let(:project) { create(:empty_project) } let(:resource) do { total_time: "172802.724419", diff --git a/spec/serializers/analytics_merge_request_serializer_spec.rb b/spec/serializers/analytics_merge_request_serializer_spec.rb index 62067cc0ef2..56cb08acfc6 100644 --- a/spec/serializers/analytics_merge_request_serializer_spec.rb +++ b/spec/serializers/analytics_merge_request_serializer_spec.rb @@ -8,7 +8,7 @@ describe AnalyticsMergeRequestSerializer do end let(:user) { create(:user) } - let(:project) { create(:project) } + let(:project) { create(:empty_project) } let(:resource) do { total_time: "172802.724419", diff --git a/spec/serializers/commit_entity_spec.rb b/spec/serializers/commit_entity_spec.rb index 0333d73b5b5..04247c78549 100644 --- a/spec/serializers/commit_entity_spec.rb +++ b/spec/serializers/commit_entity_spec.rb @@ -6,7 +6,7 @@ describe CommitEntity do end let(:request) { double('request') } - let(:project) { create(:project) } + let(:project) { create(:project, :repository) } let(:commit) { project.commit } subject { entity.as_json } diff --git a/spec/serializers/environment_serializer_spec.rb b/spec/serializers/environment_serializer_spec.rb index 6a6df377b35..1909e6385b5 100644 --- a/spec/serializers/environment_serializer_spec.rb +++ b/spec/serializers/environment_serializer_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' describe EnvironmentSerializer do let(:user) { create(:user) } - let(:project) { create(:project) } + let(:project) { create(:empty_project) } let(:json) do described_class @@ -11,21 +11,20 @@ describe EnvironmentSerializer do end context 'when there is a single object provided' do - before do - create(:ci_build, :manual, name: 'manual1', - pipeline: deployable.pipeline) - end - + let(:project) { create(:project, :repository) } + let(:deployable) { create(:ci_build) } let(:deployment) do create(:deployment, deployable: deployable, user: user, project: project, sha: project.commit.id) end - - let(:deployable) { create(:ci_build) } let(:resource) { deployment.environment } + before do + create(:ci_build, :manual, name: 'manual1', pipeline: deployable.pipeline) + end + it 'contains important elements of environment' do expect(json) .to include(:name, :external_url, :environment_path, :last_deployment) -- cgit v1.2.1 From 9a0f96f9adaf38ae45a1f7b147c196aa12ba451f Mon Sep 17 00:00:00 2001 From: Kushal Pandya Date: Fri, 31 Mar 2017 09:20:11 +0000 Subject: Add metrics button to Environment Overview page --- spec/serializers/environment_entity_spec.rb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'spec/serializers') diff --git a/spec/serializers/environment_entity_spec.rb b/spec/serializers/environment_entity_spec.rb index 57728ce3181..979d9921941 100644 --- a/spec/serializers/environment_entity_spec.rb +++ b/spec/serializers/environment_entity_spec.rb @@ -15,4 +15,24 @@ describe EnvironmentEntity do it 'exposes core elements of environment' do expect(subject).to include(:id, :name, :state, :environment_path) end + + context 'metrics disabled' do + before do + allow(environment).to receive(:has_metrics?).and_return(false) + end + + it "doesn't expose metrics path" do + expect(subject).not_to include(:metrics_path) + end + end + + context 'metrics enabled' do + before do + allow(environment).to receive(:has_metrics?).and_return(true) + end + + it 'exposes metrics path' do + expect(subject).to include(:metrics_path) + end + end end -- cgit v1.2.1