diff options
Diffstat (limited to 'spec/finders/container_repositories_finder_spec.rb')
-rw-r--r-- | spec/finders/container_repositories_finder_spec.rb | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/spec/finders/container_repositories_finder_spec.rb b/spec/finders/container_repositories_finder_spec.rb index 08c241186d6..d0c91a8f734 100644 --- a/spec/finders/container_repositories_finder_spec.rb +++ b/spec/finders/container_repositories_finder_spec.rb @@ -6,18 +6,35 @@ describe ContainerRepositoriesFinder do let_it_be(:reporter) { create(:user) } let_it_be(:guest) { create(:user) } - let(:group) { create(:group) } - let(:project) { create(:project, group: group) } - let!(:project_repository) { create(:container_repository, project: project) } + let_it_be(:group) { create(:group) } + let_it_be(:project) { create(:project, group: group) } + let_it_be(:project_repository) { create(:container_repository, name: 'my_image', project: project) } + let(:params) { {} } before do group.add_reporter(reporter) project.add_reporter(reporter) end + shared_examples 'with name search' do + let_it_be(:not_searched_repository) do + create(:container_repository, name: 'foo_bar_baz', project: project) + end + + %w[my_image my_imag _image _imag].each do |name| + context "with name set to #{name}" do + let(:params) { { name: name } } + + it { is_expected.to contain_exactly(project_repository)} + + it { is_expected.not_to include(not_searched_repository)} + end + end + end + describe '#execute' do context 'with authorized user' do - subject { described_class.new(user: reporter, subject: subject_object).execute } + subject { described_class.new(user: reporter, subject: subject_object, params: params).execute } context 'when subject_type is group' do let(:subject_object) { group } @@ -28,12 +45,16 @@ describe ContainerRepositoriesFinder do end it { is_expected.to match_array([project_repository, other_repository]) } + + it_behaves_like 'with name search' end context 'when subject_type is project' do let(:subject_object) { project } it { is_expected.to match_array([project_repository]) } + + it_behaves_like 'with name search' end context 'with invalid subject_type' do |