Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/serializers/build_entity.rb5
-rw-r--r--app/serializers/build_serializer.rb13
-rw-r--r--app/serializers/pipeline_serializer.rb13
-rw-r--r--spec/serializers/build_serializer_spec.rb18
-rw-r--r--spec/serializers/pipeline_serializer_spec.rb16
5 files changed, 31 insertions, 34 deletions
diff --git a/app/serializers/build_entity.rb b/app/serializers/build_entity.rb
index 35566c55950..fadd6c5c597 100644
--- a/app/serializers/build_entity.rb
+++ b/app/serializers/build_entity.rb
@@ -18,10 +18,7 @@ class BuildEntity < Grape::Entity
expose :created_at
expose :updated_at
-
- expose :details do
- expose :detailed_status, as: :status, with: StatusEntity
- end
+ expose :detailed_status, as: :status, with: StatusEntity
private
diff --git a/app/serializers/build_serializer.rb b/app/serializers/build_serializer.rb
index e0096dc7b4a..2c9cf99811e 100644
--- a/app/serializers/build_serializer.rb
+++ b/app/serializers/build_serializer.rb
@@ -1,15 +1,12 @@
class BuildSerializer < BaseSerializer
entity BuildEntity
- def only_status
- tap { @status_only = { only: [{ details: [:status] }] } }
- end
-
def represent(resource, opts = {})
- if @status_only.present?
- opts.merge!(@status_only)
- end
-
super(resource, opts)
end
+
+ def represent_status(resource)
+ data = represent(resource, { only: [:status] })
+ data[:status]
+ end
end
diff --git a/app/serializers/pipeline_serializer.rb b/app/serializers/pipeline_serializer.rb
index c667fc840b2..62f31d4c5ad 100644
--- a/app/serializers/pipeline_serializer.rb
+++ b/app/serializers/pipeline_serializer.rb
@@ -11,23 +11,20 @@ class PipelineSerializer < BaseSerializer
@paginator.present?
end
- def only_status
- tap { @status_only = { only: [{ details: [:status] }] } }
- end
-
def represent(resource, opts = {})
if resource.is_a?(ActiveRecord::Relation)
resource = resource.includes(project: :namespace)
end
- if @status_only.present?
- opts.merge!(@status_only)
- end
-
if paginated?
super(@paginator.paginate(resource), opts)
else
super(resource, opts)
end
end
+
+ def represent_status(resource)
+ data = represent(resource, { only: [{ details: [:status] }] })
+ data[:details][:status]
+ end
end
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