summaryrefslogtreecommitdiff
path: root/spec/serializers/ci/downloadable_artifact_entity_spec.rb
blob: 34a271e74221141c0daca46d7281e2c2c40fbbc2 (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
# 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) { create(:ci_build, :success, :artifacts, :non_public_artifacts, pipeline: pipeline) }

      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