diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-12-29 12:10:19 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-12-29 12:10:19 +0000 |
commit | d15aa4cf2e1b1c55629f5b672366c5be40344aa5 (patch) | |
tree | 0b974d69a2046854d2edb01bff5f7a0429969bf2 /spec/presenters | |
parent | 385d7ee6af36be869f681b368bd9c607b45cc4cd (diff) | |
download | gitlab-ce-d15aa4cf2e1b1c55629f5b672366c5be40344aa5.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/presenters')
-rw-r--r-- | spec/presenters/packages/nuget/service_index_presenter_spec.rb | 55 |
1 files changed, 47 insertions, 8 deletions
diff --git a/spec/presenters/packages/nuget/service_index_presenter_spec.rb b/spec/presenters/packages/nuget/service_index_presenter_spec.rb index 19ef890e19f..9c95fbc8fd2 100644 --- a/spec/presenters/packages/nuget/service_index_presenter_spec.rb +++ b/spec/presenters/packages/nuget/service_index_presenter_spec.rb @@ -4,25 +4,64 @@ require 'spec_helper' RSpec.describe ::Packages::Nuget::ServiceIndexPresenter do let_it_be(:project) { create(:project) } - let_it_be(:presenter) { described_class.new(project) } + let_it_be(:group) { create(:group) } + + let(:presenter) { described_class.new(target) } describe '#version' do subject { presenter.version } - it { is_expected.to eq '3.0.0' } + context 'for a group' do + let(:target) { group } + + it { is_expected.to eq '3.0.0' } + end + + context 'for a project' do + let(:target) { project } + + it { is_expected.to eq '3.0.0' } + end end describe '#resources' do subject { presenter.resources } - it 'has valid resources' do - expect(subject.size).to eq 8 - subject.each do |resource| - %i[@id @type comment].each do |field| - expect(resource).to have_key(field) - expect(resource[field]).to be_a(String) + shared_examples 'returning valid resources' do |resources_count: 8, include_publish_service: true| + it 'has valid resources' do + expect(subject.size).to eq resources_count + subject.each do |resource| + %i[@id @type comment].each do |field| + expect(resource).to have_key(field) + expect(resource[field]).to be_a(String) + end + end + end + + it "does #{'not ' unless include_publish_service}return the publish resource" do + services_types = subject.map { |res| res[:@type] } + + described_class::SERVICE_VERSIONS[:publish].each do |publish_service_version| + if include_publish_service + expect(services_types).to include(publish_service_version) + else + expect(services_types).not_to include(publish_service_version) + end end end end + + context 'for a group' do + let(:target) { group } + + # at the group level we don't have the publish and download service + it_behaves_like 'returning valid resources', resources_count: 6, include_publish_service: false + end + + context 'for a project' do + let(:target) { project } + + it_behaves_like 'returning valid resources' + end end end |