diff --git a/spec/serializers/build_entity_spec.rb b/spec/serializers/build_entity_spec.rb index 60c9642ee2c6662c6433ebed77b77f2c7750a682..cd30b00c71133416c5a17f7baa0d3b4ce4a85350 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 0000000000000000000000000000000000000000..ef75a2941c2e1a501e660762e4384bb1e83b8317 --- /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 ccb72973f9c2de19db795e56c85b70206fbaf8d0..93d5a21419d80c275919dcebd7fc591b6a5f3bde 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 2aaef03cb935b9dd79e0145d38c9e7e9cd36dc95..3bf4a667853448a95d1cbc128c63fd67852bccd7 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 89428b4216ecdb6b0b2f9e33e850837fd9a9d41a..c94902dbab8f77d84d7fd64bc8a4550d1a95bbfa 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