# frozen_string_literal: true require 'spec_helper' describe CommitStatusPresenter do let(:project) { create(:project) } let(:pipeline) { create(:ci_pipeline, project: project) } let(:build) { create(:ci_build, pipeline: pipeline) } subject(:presenter) do described_class.new(build) end it 'inherits from Gitlab::View::Presenter::Delegated' do expect(described_class.superclass).to eq(Gitlab::View::Presenter::Delegated) end describe 'covers all failure reasons' do let(:message) { presenter.callout_failure_message } CommitStatus.failure_reasons.keys.each do |failure_reason| context failure_reason do before do build.failure_reason = failure_reason end it "is a valid status" do expect { message }.not_to raise_error end end end context 'invalid failure message' do before do expect(build).to receive(:failure_reason) { 'invalid failure message' } end it "is an invalid status" do expect { message }.to raise_error(/key not found:/) end end end end