Commit 28f10c2e authored by Mayra Cabrera's avatar Mayra Cabrera 0️⃣
Browse files

Augments presenters factory with 'present' method

It'll simply return self for presented objects
parent 2868a43f
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -66,7 +66,6 @@ def recoverable
  end

  def build_presenter
    @build_presenter ||=
      build.is_a?(Ci::BuildPresenter) ? build : build.present(current_user: request.current_user)
    @build_presenter ||= build.present
  end
end
+4 −0
Original line number Diff line number Diff line
@@ -20,6 +20,10 @@ def declarative_policy_delegate
          subject
        end

        def present(**attributes)
          self
        end

        class_methods do
          def presenter?
            true
+7 −0
Original line number Diff line number Diff line
@@ -48,4 +48,11 @@
      end
    end
  end

  describe '#present' do
    it 'returns self' do
      presenter = presenter_class.new(build_stubbed(:project))
      expect(presenter.present).to eq(presenter)
    end
  end
end
+2 −2
Original line number Diff line number Diff line
@@ -131,7 +131,7 @@
  end

  context 'when job failed' do
    let(:job) { create(:ci_build, :script_failure).present }
    let(:job) { create(:ci_build, :script_failure) }

    it 'contains details' do
      expect(subject[:status]).to include :icon, :favicon, :text, :label, :tooltip
@@ -155,7 +155,7 @@
  end

  context 'when job is allowed to fail' do
    let(:job) { create(:ci_build, :allowed_to_fail, :script_failure).present }
    let(:job) { create(:ci_build, :allowed_to_fail, :script_failure) }

    it 'contains details' do
      expect(subject[:status]).to include :icon, :favicon, :text, :label, :tooltip