diff options
Diffstat (limited to 'spec/lib')
3 files changed, 76 insertions, 36 deletions
diff --git a/spec/lib/bulk_imports/clients/http_spec.rb b/spec/lib/bulk_imports/clients/http_spec.rb index 6962a943755..4fb08fc0478 100644 --- a/spec/lib/bulk_imports/clients/http_spec.rb +++ b/spec/lib/bulk_imports/clients/http_spec.rb @@ -9,13 +9,23 @@ RSpec.describe BulkImports::Clients::HTTP do let(:token) { 'token' } let(:resource) { 'resource' } let(:version) { "#{BulkImport::MIN_MAJOR_VERSION}.0.0" } + let(:enterprise) { false } let(:response_double) { double(code: 200, success?: true, parsed_response: {}) } - let(:version_response) { double(code: 200, success?: true, parsed_response: { 'version' => version }) } + let(:metadata_response) do + double( + code: 200, + success?: true, + parsed_response: { + 'version' => version, + 'enterprise' => enterprise + } + ) + end before do allow(Gitlab::HTTP).to receive(:get) .with('http://gitlab.example/api/v4/version', anything) - .and_return(version_response) + .and_return(metadata_response) end subject { described_class.new(url: url, token: token) } @@ -213,13 +223,27 @@ RSpec.describe BulkImports::Clients::HTTP do expect(Gitlab::HTTP).to receive(:get) .with('http://gitlab.example/api/v4/metadata', anything) - .and_return(version_response) + .and_return(metadata_response) expect(subject.instance_version).to eq(Gitlab::VersionInfo.parse(version)) end end end + describe '#instance_enterprise' do + it 'returns source instance enterprise information' do + expect(subject.instance_enterprise).to eq(false) + end + + context 'when enterprise information is missing' do + let(:enterprise) { nil } + + it 'defaults to true' do + expect(subject.instance_enterprise).to eq(true) + end + end + end + describe '#compatible_for_project_migration?' do context 'when instance version is lower the the expected minimum' do it 'returns false' do @@ -254,7 +278,7 @@ RSpec.describe BulkImports::Clients::HTTP do before do allow(Gitlab::HTTP).to receive(:get) .with('http://website.example/gitlab/api/v4/version', anything) - .and_return(version_response) + .and_return(metadata_response) end it 'performs network request to a relative gitlab url' do diff --git a/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb b/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb index ac2de43b7c6..c507bce634e 100644 --- a/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb +++ b/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb @@ -97,39 +97,48 @@ RSpec.describe Gitlab::Database::RenameReservedPathsMigration::V1::RenameNamespa let(:namespace) { create(:group, name: 'hello-group') } it 'moves a project for a namespace' do - create(:project, :repository, :legacy_storage, namespace: namespace, path: 'hello-project') - expected_path = Gitlab::GitalyClient::StorageSettings.allow_disk_access do - File.join(TestEnv.repos_path, 'bye-group', 'hello-project.git') - end + project = create(:project, :repository, :legacy_storage, namespace: namespace, path: 'hello-project') + expected_repository = Gitlab::Git::Repository.new( + project.repository_storage, + 'bye-group/hello-project.git', + nil, + nil + ) subject.move_repositories(namespace, 'hello-group', 'bye-group') - expect(File.directory?(expected_path)).to be(true) + expect(expected_repository).to exist end it 'moves a namespace in a subdirectory correctly' do child_namespace = create(:group, name: 'sub-group', parent: namespace) - create(:project, :repository, :legacy_storage, namespace: child_namespace, path: 'hello-project') + project = create(:project, :repository, :legacy_storage, namespace: child_namespace, path: 'hello-project') - expected_path = Gitlab::GitalyClient::StorageSettings.allow_disk_access do - File.join(TestEnv.repos_path, 'hello-group', 'renamed-sub-group', 'hello-project.git') - end + expected_repository = Gitlab::Git::Repository.new( + project.repository_storage, + 'hello-group/renamed-sub-group/hello-project.git', + nil, + nil + ) subject.move_repositories(child_namespace, 'hello-group/sub-group', 'hello-group/renamed-sub-group') - expect(File.directory?(expected_path)).to be(true) + expect(expected_repository).to exist end it 'moves a parent namespace with subdirectories' do child_namespace = create(:group, name: 'sub-group', parent: namespace) - create(:project, :repository, :legacy_storage, namespace: child_namespace, path: 'hello-project') - expected_path = Gitlab::GitalyClient::StorageSettings.allow_disk_access do - File.join(TestEnv.repos_path, 'renamed-group', 'sub-group', 'hello-project.git') - end + project = create(:project, :repository, :legacy_storage, namespace: child_namespace, path: 'hello-project') + expected_repository = Gitlab::Git::Repository.new( + project.repository_storage, + 'renamed-group/sub-group/hello-project.git', + nil, + nil + ) subject.move_repositories(child_namespace, 'hello-group', 'renamed-group') - expect(File.directory?(expected_path)).to be(true) + expect(expected_repository).to exist end end @@ -175,14 +184,17 @@ RSpec.describe Gitlab::Database::RenameReservedPathsMigration::V1::RenameNamespa describe '#rename_namespace_dependencies' do it "moves the repository for a project in the namespace" do - create(:project, :repository, :legacy_storage, namespace: namespace, path: "the-path-project") - expected_repo = Gitlab::GitalyClient::StorageSettings.allow_disk_access do - File.join(TestEnv.repos_path, "the-path0", "the-path-project.git") - end + project = create(:project, :repository, :legacy_storage, namespace: namespace, path: "the-path-project") + expected_repository = Gitlab::Git::Repository.new( + project.repository_storage, + "the-path0/the-path-project.git", + nil, + nil + ) subject.rename_namespace_dependencies(namespace, 'the-path', 'the-path0') - expect(File.directory?(expected_repo)).to be(true) + expect(expected_repository).to exist end it "moves the uploads for the namespace" do @@ -276,9 +288,7 @@ RSpec.describe Gitlab::Database::RenameReservedPathsMigration::V1::RenameNamespa project.create_repository subject.rename_namespace(namespace) - expected_path = Gitlab::GitalyClient::StorageSettings.allow_disk_access do - File.join(TestEnv.repos_path, 'the-path', 'a-project.git') - end + expected_repository = Gitlab::Git::Repository.new(project.repository_storage, 'the-path/a-project.git', nil, nil) expect(subject).to receive(:rename_namespace_dependencies) .with( @@ -289,7 +299,7 @@ RSpec.describe Gitlab::Database::RenameReservedPathsMigration::V1::RenameNamespa subject.revert_renames - expect(File.directory?(expected_path)).to be_truthy + expect(expected_repository).to exist end it "doesn't break when the namespace was renamed" do diff --git a/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_projects_spec.rb b/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_projects_spec.rb index 6292f0246f7..aa2a3329477 100644 --- a/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_projects_spec.rb +++ b/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_projects_spec.rb @@ -126,13 +126,16 @@ RSpec.describe Gitlab::Database::RenameReservedPathsMigration::V1::RenameProject let(:project) { create(:project, :repository, :legacy_storage, path: 'the-path', namespace: known_parent) } it 'moves the repository for a project' do - expected_path = Gitlab::GitalyClient::StorageSettings.allow_disk_access do - File.join(TestEnv.repos_path, 'known-parent', 'new-repo.git') - end + expected_repository = Gitlab::Git::Repository.new( + project.repository_storage, + 'known-parent/new-repo.git', + nil, + nil + ) subject.move_repository(project, 'known-parent/the-path', 'known-parent/new-repo') - expect(File.directory?(expected_path)).to be(true) + expect(expected_repository).to exist end end @@ -157,9 +160,12 @@ RSpec.describe Gitlab::Database::RenameReservedPathsMigration::V1::RenameProject project.create_repository subject.rename_project(project) - expected_path = Gitlab::GitalyClient::StorageSettings.allow_disk_access do - File.join(TestEnv.repos_path, 'known-parent', 'the-path.git') - end + expected_repository = Gitlab::Git::Repository.new( + project.repository_storage, + 'known-parent/the-path.git', + nil, + nil + ) expect(subject).to receive(:move_project_folders) .with( @@ -170,7 +176,7 @@ RSpec.describe Gitlab::Database::RenameReservedPathsMigration::V1::RenameProject subject.revert_renames - expect(File.directory?(expected_path)).to be_truthy + expect(expected_repository).to exist end it "doesn't break when the project was renamed" do |