diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-07-19 10:30:57 +0200 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-07-19 10:30:57 +0200 |
commit | 9f36012e026845e87c39d5f142abbaa44bde8f2b (patch) | |
tree | 41a6911277510ca880dd7491f2a91524046435f1 /spec/controllers | |
parent | 9e5c8e5d7f81b88998c8def2f4a20d54eeee49d0 (diff) | |
download | gitlab-ce-9f36012e026845e87c39d5f142abbaa44bde8f2b.tar.gz |
Fix docker tag reference routing constraints
Diffstat (limited to 'spec/controllers')
-rw-r--r-- | spec/controllers/projects/registry/tags_controller_spec.rb | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/spec/controllers/projects/registry/tags_controller_spec.rb b/spec/controllers/projects/registry/tags_controller_spec.rb new file mode 100644 index 00000000000..a823516830e --- /dev/null +++ b/spec/controllers/projects/registry/tags_controller_spec.rb @@ -0,0 +1,48 @@ +require 'spec_helper' + +describe Projects::Registry::TagsController do + let(:user) { create(:user) } + let(:project) { create(:empty_project, :private) } + + before do + sign_in(user) + stub_container_registry_config(enabled: true) + end + + context 'when user has access to registry' do + before do + project.add_developer(user) + end + + describe 'POST destroy' do + context 'when there is matching tag present' do + before do + stub_container_registry_tags(repository: /image/, tags: %w[rc1 test.]) + end + + let(:repository) do + create(:container_repository, name: 'image', project: project) + end + + it 'makes it possible to delete regular tag' do + expect_any_instance_of(ContainerRegistry::Tag).to receive(:delete) + + destroy_tag('rc1') + end + + it 'makes it possible to delete a tag that ends with a dot' do + expect_any_instance_of(ContainerRegistry::Tag).to receive(:delete) + + destroy_tag('test.') + end + end + end + end + + def destroy_tag(name) + post :destroy, namespace_id: project.namespace, + project_id: project, + repository_id: repository, + id: name + end +end |