diff options
Diffstat (limited to 'spec/lib/gitlab/background_migration/backfill_project_fullpath_in_repo_config_spec.rb')
-rw-r--r-- | spec/lib/gitlab/background_migration/backfill_project_fullpath_in_repo_config_spec.rb | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/spec/lib/gitlab/background_migration/backfill_project_fullpath_in_repo_config_spec.rb b/spec/lib/gitlab/background_migration/backfill_project_fullpath_in_repo_config_spec.rb deleted file mode 100644 index 1b2e1ed0c1a..00000000000 --- a/spec/lib/gitlab/background_migration/backfill_project_fullpath_in_repo_config_spec.rb +++ /dev/null @@ -1,88 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe Gitlab::BackgroundMigration::BackfillProjectFullpathInRepoConfig do - let(:namespaces) { table(:namespaces) } - let(:projects) { table(:projects) } - let(:group) { namespaces.create!(name: 'foo', path: 'foo') } - let(:subgroup) { namespaces.create!(name: 'bar', path: 'bar', parent_id: group.id) } - - describe described_class::Storage::Hashed do - let(:project) { double(id: 555) } - - subject(:project_storage) { described_class.new(project) } - - it 'has the correct disk_path' do - expect(project_storage.disk_path).to eq('@hashed/91/a7/91a73fd806ab2c005c13b4dc19130a884e909dea3f72d46e30266fe1a1f588d8') - end - end - - describe described_class::Storage::LegacyProject do - let(:project) { double(full_path: 'this/is/the/full/path') } - - subject(:project_storage) { described_class.new(project) } - - it 'has the correct disk_path' do - expect(project_storage.disk_path).to eq('this/is/the/full/path') - end - end - - describe described_class::Project do - let(:project_record) { projects.create!(namespace_id: subgroup.id, name: 'baz', path: 'baz') } - - subject(:project) { described_class.find(project_record.id) } - - describe '#full_path' do - it 'returns path containing all parent namespaces' do - expect(project.full_path).to eq('foo/bar/baz') - end - - it 'raises OrphanedNamespaceError when any parent namespace does not exist' do - subgroup.update_attribute(:parent_id, non_existing_record_id) - - expect { project.full_path }.to raise_error(Gitlab::BackgroundMigration::BackfillProjectFullpathInRepoConfig::OrphanedNamespaceError) - end - end - end - - describe described_class::Up do - describe '#perform' do - subject(:migrate) { described_class.new.perform(projects.minimum(:id), projects.maximum(:id)) } - - it 'asks the gitaly client to set config' do - projects.create!(namespace_id: subgroup.id, name: 'baz', path: 'baz') - projects.create!(namespace_id: subgroup.id, name: 'buzz', path: 'buzz', storage_version: 1) - - expect_next_instance_of(Gitlab::GitalyClient::RepositoryService) do |repository_service| - allow(repository_service).to receive(:cleanup) - expect(repository_service).to receive(:set_config).with('gitlab.fullpath' => 'foo/bar/baz') - end - - expect_next_instance_of(Gitlab::GitalyClient::RepositoryService) do |repository_service| - allow(repository_service).to receive(:cleanup) - expect(repository_service).to receive(:set_config).with('gitlab.fullpath' => 'foo/bar/buzz') - end - - migrate - end - end - end - - describe described_class::Down do - describe '#perform' do - subject(:migrate) { described_class.new.perform(projects.minimum(:id), projects.maximum(:id)) } - - it 'asks the gitaly client to set config' do - projects.create!(namespace_id: subgroup.id, name: 'baz', path: 'baz') - - expect_next_instance_of(Gitlab::GitalyClient::RepositoryService) do |repository_service| - allow(repository_service).to receive(:cleanup) - expect(repository_service).to receive(:delete_config).with(['gitlab.fullpath']) - end - - migrate - end - end - end -end |