diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-28 03:09:33 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-28 03:09:33 +0300 |
commit | 56df7f06f1e57d66efcff5d8ad0026252cc91192 (patch) | |
tree | 3e0ffb97bf20b9125cb04c18735e0df5f7570b55 /spec/controllers | |
parent | 579e85eb029c4ee66e8b8cd537a94b9e6cb0e58b (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/controllers')
-rw-r--r-- | spec/controllers/groups/registry/repositories_controller_spec.rb | 30 | ||||
-rw-r--r-- | spec/controllers/projects/registry/repositories_controller_spec.rb | 28 |
2 files changed, 51 insertions, 7 deletions
diff --git a/spec/controllers/groups/registry/repositories_controller_spec.rb b/spec/controllers/groups/registry/repositories_controller_spec.rb index a84664c6c04..7b78aeadbd8 100644 --- a/spec/controllers/groups/registry/repositories_controller_spec.rb +++ b/spec/controllers/groups/registry/repositories_controller_spec.rb @@ -6,12 +6,13 @@ describe Groups::Registry::RepositoriesController do let_it_be(:user) { create(:user) } let_it_be(:guest) { create(:user) } let_it_be(:group, reload: true) { create(:group) } + let(:additional_parameters) { {} } subject do - get :index, params: { + get :index, params: additional_parameters.merge({ group_id: group, format: format - } + }) end before do @@ -36,6 +37,25 @@ describe Groups::Registry::RepositoriesController do end end + shared_examples 'with name parameter' do + let_it_be(:project) { create(:project, group: test_group) } + let_it_be(:repo) { create(:container_repository, project: project, name: 'my_searched_image') } + let_it_be(:another_repo) { create(:container_repository, project: project, name: 'bar') } + + let(:additional_parameters) { { name: 'my_searched_image' } } + + it 'returns the searched repo' do + subject + + expect(response).to have_gitlab_http_status(:ok) + expect(json_response.length).to eq 1 + expect(json_response.first).to include( + 'id' => repo.id, + 'name' => repo.name + ) + end + end + shared_examples 'renders correctly' do context 'when user has access to registry' do let_it_be(:test_group) { group } @@ -64,6 +84,8 @@ describe Groups::Registry::RepositoriesController do it_behaves_like 'renders a list of repositories' + it_behaves_like 'with name parameter' + it_behaves_like 'a gitlab tracking event', described_class.name, 'list_repositories' context 'with project in subgroup' do @@ -71,6 +93,8 @@ describe Groups::Registry::RepositoriesController do it_behaves_like 'renders a list of repositories' + it_behaves_like 'with name parameter' + context 'with project in subgroup and group' do let_it_be(:repo_in_test_group) { create_project_with_repo(test_group) } let_it_be(:repo_in_group) { create_project_with_repo(group) } @@ -81,6 +105,8 @@ describe Groups::Registry::RepositoriesController do expect(json_response).to be_kind_of(Array) expect(json_response.length).to eq 2 end + + it_behaves_like 'with name parameter' end end end diff --git a/spec/controllers/projects/registry/repositories_controller_spec.rb b/spec/controllers/projects/registry/repositories_controller_spec.rb index c641a45a216..badb84f9b50 100644 --- a/spec/controllers/projects/registry/repositories_controller_spec.rb +++ b/spec/controllers/projects/registry/repositories_controller_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' describe Projects::Registry::RepositoriesController do - let(:user) { create(:user) } - let(:project) { create(:project, :private) } + let_it_be(:user) { create(:user) } + let_it_be(:project) { create(:project, :private) } before do sign_in(user) @@ -16,6 +16,22 @@ describe Projects::Registry::RepositoriesController do project.add_developer(user) end + shared_examples 'with name parameter' do + let_it_be(:repo) { create(:container_repository, project: project, name: 'my_searched_image') } + let_it_be(:another_repo) { create(:container_repository, project: project, name: 'bar') } + + it 'returns the searched repo' do + go_to_index(format: :json, params: { name: 'my_searched_image' }) + + expect(response).to have_gitlab_http_status(:ok) + expect(json_response.length).to eq 1 + expect(json_response.first).to include( + 'id' => repo.id, + 'name' => repo.name + ) + end + end + shared_examples 'renders a list of repositories' do context 'when root container repository exists' do before do @@ -60,6 +76,8 @@ describe Projects::Registry::RepositoriesController do expect(response).to match_response_schema('registry/repositories') expect(response).to include_pagination_headers end + + it_behaves_like 'with name parameter' end context 'when there are no tags for this repository' do @@ -138,11 +156,11 @@ describe Projects::Registry::RepositoriesController do end end - def go_to_index(format: :html) - get :index, params: { + def go_to_index(format: :html, params: {} ) + get :index, params: params.merge({ namespace_id: project.namespace, project_id: project - }, + }), format: format end |