diff options
author | James Lopez <james@gitlab.com> | 2018-01-10 08:20:47 +0000 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2018-01-15 13:16:44 -0600 |
commit | d368a2d676f95ceaabb4854198be9d23b6a4f2e1 (patch) | |
tree | 5aa7b3304aaf7ec0a4f74fe72fe253766d9e1219 /spec | |
parent | edfddd5a7d0160b7473aa895e91c5a4ee42e865b (diff) | |
download | gitlab-ce-d368a2d676f95ceaabb4854198be9d23b6a4f2e1.tar.gz |
Merge branch 'sh-fix-bare-import-hooks' into 'master'
Fix hooks not being set up properly for bare import Rake task
Closes #41739
See merge request gitlab-org/gitlab-ce!16280
Diffstat (limited to 'spec')
-rw-r--r-- | spec/lib/gitlab/bare_repository_import/importer_spec.rb | 8 | ||||
-rw-r--r-- | spec/models/repository_spec.rb | 22 |
2 files changed, 28 insertions, 2 deletions
diff --git a/spec/lib/gitlab/bare_repository_import/importer_spec.rb b/spec/lib/gitlab/bare_repository_import/importer_spec.rb index b5d86df09d2..f302e412a6e 100644 --- a/spec/lib/gitlab/bare_repository_import/importer_spec.rb +++ b/spec/lib/gitlab/bare_repository_import/importer_spec.rb @@ -74,14 +74,18 @@ describe Gitlab::BareRepositoryImport::Importer, repository: true do importer.create_project_if_needed end - it 'creates the Git repo in disk' do + it 'creates the Git repo on disk with the proper symlink for hooks' do create_bare_repository("#{project_path}.git") importer.create_project_if_needed project = Project.find_by_full_path(project_path) + repo_path = File.join(project.repository_storage_path, project.disk_path + '.git') + hook_path = File.join(repo_path, 'hooks') - expect(File).to exist(File.join(project.repository_storage_path, project.disk_path + '.git')) + expect(File).to exist(repo_path) + expect(File.symlink?(hook_path)).to be true + expect(File.readlink(hook_path)).to eq(Gitlab.config.gitlab_shell.hooks_path) end context 'hashed storage enabled' do diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb index c0db2c1b386..edd981752d9 100644 --- a/spec/models/repository_spec.rb +++ b/spec/models/repository_spec.rb @@ -412,6 +412,28 @@ describe Repository do end end + describe '#create_hooks' do + let(:hook_path) { File.join(repository.path_to_repo, 'hooks') } + + it 'symlinks the global hooks directory' do + repository.create_hooks + + expect(File.symlink?(hook_path)).to be true + expect(File.readlink(hook_path)).to eq(Gitlab.config.gitlab_shell.hooks_path) + end + + it 'replaces existing symlink with the right directory' do + FileUtils.mkdir_p(hook_path) + + expect(File.symlink?(hook_path)).to be false + + repository.create_hooks + + expect(File.symlink?(hook_path)).to be true + expect(File.readlink(hook_path)).to eq(Gitlab.config.gitlab_shell.hooks_path) + end + end + describe "#create_dir" do it "commits a change that creates a new directory" do expect do |