3dbf3997bb
API endpoints for requesting container repositories and container repositories with their tag information are enabled for users that want to specify the group containing the repository rather than the specific project.
44 lines
1.2 KiB
Ruby
44 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
describe ContainerRepositoriesFinder do
|
|
let(:group) { create(:group) }
|
|
let(:project) { create(:project, group: group) }
|
|
let(:project_repository) { create(:container_repository, project: project) }
|
|
|
|
describe '#execute' do
|
|
let(:id) { nil }
|
|
|
|
subject { described_class.new(id: id, container_type: container_type).execute }
|
|
|
|
context 'when container_type is group' do
|
|
let(:other_project) { create(:project, group: group) }
|
|
|
|
let(:other_repository) do
|
|
create(:container_repository, name: 'test_repository2', project: other_project)
|
|
end
|
|
|
|
let(:container_type) { :group }
|
|
let(:id) { group.id }
|
|
|
|
it { is_expected.to match_array([project_repository, other_repository]) }
|
|
end
|
|
|
|
context 'when container_type is project' do
|
|
let(:container_type) { :project }
|
|
let(:id) { project.id }
|
|
|
|
it { is_expected.to match_array([project_repository]) }
|
|
end
|
|
|
|
context 'with invalid id' do
|
|
let(:container_type) { :project }
|
|
let(:id) { 123456789 }
|
|
|
|
it 'raises an error' do
|
|
expect { subject.execute }.to raise_error(ActiveRecord::RecordNotFound)
|
|
end
|
|
end
|
|
end
|
|
end
|