Fix duplicated container repository names

This commit is contained in:
Grzegorz Bizon 2017-04-18 22:20:47 +02:00
parent f88762a5f5
commit f6a11d00a8
2 changed files with 38 additions and 3 deletions

View File

@ -48,7 +48,7 @@ module ContainerRegistry
end
def root_repository?
@path == repository_project.full_path
@path == project_path
end
def repository_project
@ -60,7 +60,13 @@ module ContainerRegistry
def repository_name
return unless has_project?
@path.remove(%r(^#{Regexp.escape(repository_project.full_path)}/?))
@path.remove(%r(^#{Regexp.escape(project_path)}/?))
end
def project_path
return unless has_project?
repository_project.full_path.downcase
end
def to_s

View File

@ -189,7 +189,7 @@ describe ContainerRegistry::Path do
end
context 'when project exists' do
let(:group) { create(:group, path: 'some_group') }
let(:group) { create(:group, path: 'Some_Group') }
let(:project) do
create(:empty_project, group: group, name: 'some_project')
@ -225,4 +225,33 @@ describe ContainerRegistry::Path do
end
end
end
describe '#project_path' do
context 'when project does not exist' do
let(:path) { 'some/name' }
it 'returns nil' do
expect(subject.project_path).to be_nil
end
end
context 'when project with uppercase characters in path exists' do
let(:path) { 'somegroup/someproject' }
let(:group) { create(:group, path: 'SomeGroup') }
let(:project) do
create(:empty_project, group: group, name: 'SomeProject')
end
before do
allow(path).to receive(:repository_project)
.and_return(project)
end
it 'returns downcased project path' do
expect(subject.project_path).to eq 'somegroup/someproject'
end
end
end
end