diff options
author | James Lopez <james@gitlab.com> | 2017-12-11 08:47:50 +0000 |
---|---|---|
committer | LUKE BENNETT <lbennett@gitlab.com> | 2017-12-13 13:40:04 +0000 |
commit | 0f04fa2859d436e78de2f6d30e01b2134a094103 (patch) | |
tree | ffc5fac83e27940bc1783d656c7b491ddd7d0ef4 /spec | |
parent | 0d09108ad2bb2605d0ec2b50ac7d3f46db3ee728 (diff) | |
download | gitlab-ce-0f04fa2859d436e78de2f6d30e01b2134a094103.tar.gz |
Merge branch 'sh-fix-import-rake-task' into 'master'
Fix gitlab:import:repos Rake task moving repositories into the wrong location
Closes #40765
See merge request gitlab-org/gitlab-ce!15823
(cherry picked from commit 7694ae887885c66eb633d3f78eac3128a08dc978)
78f7c3c8 Fix gitlab:import:repos Rake task moving repositories into the wrong location
e8cced80 Fix failing importer test case on MySQL due to missing trailing slash in root path
917a112e Simplify normalizing of paths
86661a3a Use build instead of create in importer spec
f1eaab7b Remove the need for destroy and add a comment in the spec
Diffstat (limited to 'spec')
-rw-r--r-- | spec/lib/gitlab/bare_repository_import/importer_spec.rb | 17 | ||||
-rw-r--r-- | spec/lib/gitlab/bare_repository_import/repository_spec.rb | 7 |
2 files changed, 24 insertions, 0 deletions
diff --git a/spec/lib/gitlab/bare_repository_import/importer_spec.rb b/spec/lib/gitlab/bare_repository_import/importer_spec.rb index 7f3bf5fc41c..8a83e446935 100644 --- a/spec/lib/gitlab/bare_repository_import/importer_spec.rb +++ b/spec/lib/gitlab/bare_repository_import/importer_spec.rb @@ -132,6 +132,23 @@ describe Gitlab::BareRepositoryImport::Importer, repository: true do expect(File).to exist(File.join(project.repository_storage_path, project.disk_path + '.git')) end + + it 'moves an existing project to the correct path' do + # This is a quick way to get a valid repository instead of copying an + # existing one. Since it's not persisted, the importer will try to + # create the project. + project = build(:project, :repository) + original_commit_count = project.repository.commit_count + + bare_repo = Gitlab::BareRepositoryImport::Repository.new(project.repository_storage_path, project.repository.path) + gitlab_importer = described_class.new(admin, bare_repo) + + expect(gitlab_importer).to receive(:create_project).and_call_original + + new_project = gitlab_importer.create_project_if_needed + + expect(new_project.repository.commit_count).to eq(original_commit_count) + end end context 'with Wiki' do diff --git a/spec/lib/gitlab/bare_repository_import/repository_spec.rb b/spec/lib/gitlab/bare_repository_import/repository_spec.rb index 2db737f5fb6..61b73abcba4 100644 --- a/spec/lib/gitlab/bare_repository_import/repository_spec.rb +++ b/spec/lib/gitlab/bare_repository_import/repository_spec.rb @@ -46,6 +46,13 @@ describe ::Gitlab::BareRepositoryImport::Repository do describe '#project_full_path' do it 'returns the project full path' do expect(project_repo_path.repo_path).to eq('/full/path/to/repo.git') + expect(project_repo_path.project_full_path).to eq('to/repo') + end + + it 'with no trailing slash in the root path' do + repo_path = described_class.new('/full/path', '/full/path/to/repo.git') + + expect(repo_path.project_full_path).to eq('to/repo') end end end |