summaryrefslogtreecommitdiff
path: root/spec/serializers/ci/downloadable_artifact_entity_spec.rb
blob: 3142b03581dc3df678cb46e46906e4ba1d8422f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe Ci::DownloadableArtifactEntity do
  let(:pipeline) { create(:ci_pipeline, :with_codequality_reports) }
  let(:user) { create(:user) }
  let(:request) { EntityRequest.new({ current_user: user }) }
  let(:entity) { described_class.new(pipeline, request: request) }

  describe '#as_json' do
    subject { entity.as_json }

    it 'contains required fields', :aggregate_failures do
      expect(subject).to include(:artifacts)
      expect(subject[:artifacts].size).to eq(1)
    end

    context 'when user cannot read job artifact' do
      let!(:build) do
        create(:ci_build, :success, :private_artifacts,
        pipeline: pipeline)
      end

      it 'returns only artifacts readable by user', :aggregate_failures do
        expect(subject[:artifacts].size).to eq(1)
        expect(subject[:artifacts].first[:name]).to eq("test:codequality")
      end
    end
  end
end