diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-24 15:09:37 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-24 15:09:37 +0300 |
commit | 6f15c2c2723dbe14e907379b75201e2ef70a48d3 (patch) | |
tree | f917af54164003d021a4af518ced7271978c5537 /spec/lib | |
parent | 7a8d983c19c9fe14e7c0b8b6256b8cbacbff1959 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/lib')
-rw-r--r-- | spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb | 2 | ||||
-rw-r--r-- | spec/lib/backup/repositories_spec.rb | 72 | ||||
-rw-r--r-- | spec/lib/gitlab/import_export/lfs_saver_spec.rb | 8 |
3 files changed, 50 insertions, 32 deletions
diff --git a/spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb b/spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb index ccf96bcbad6..6d06fc3618d 100644 --- a/spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb +++ b/spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb @@ -24,6 +24,7 @@ RSpec.describe API::Helpers::Packages::DependencyProxyHelpers do shared_examples 'executing redirect' do it 'redirects to package registry' do + expect(helper).to receive(:track_event).with('npm_request_forward').once expect(helper).to receive(:registry_url).once expect(helper).to receive(:redirect).once expect(helper).to receive(:fallback).never @@ -63,6 +64,7 @@ RSpec.describe API::Helpers::Packages::DependencyProxyHelpers do let(:package_type) { pkg_type } it 'raises an error' do + allow(helper).to receive(:track_event) expect { subject }.to raise_error(ArgumentError, "Can't build registry_url for package_type #{package_type}") end end diff --git a/spec/lib/backup/repositories_spec.rb b/spec/lib/backup/repositories_spec.rb index 63f948e8dd4..35df2b7f241 100644 --- a/spec/lib/backup/repositories_spec.rb +++ b/spec/lib/backup/repositories_spec.rb @@ -17,23 +17,33 @@ RSpec.describe Backup::Repositories do end describe '#dump' do - before do - allow(Gitlab.config.repositories.storages).to receive(:keys).and_return(storage_keys) - end - - let_it_be(:projects) { create_list(:project, 5, :repository, :wiki_repo) } + let_it_be(:projects) { create_list(:project, 5, :repository) } - let(:storage_keys) { %w[default test_second_storage] } + RSpec.shared_examples 'creates repository bundles' do + specify :aggregate_failures do + # Add data to the wiki repository, so it will be included in the dump. + create(:wiki_page, container: project) - context 'no concurrency' do - it 'creates repository bundle' do subject.dump(max_concurrency: 1, max_storage_concurrency: 1) - projects.each do |project| - expect(File).to exist(File.join(Gitlab.config.backup.path, 'repositories', project.disk_path + '.bundle')) - end + expect(File).to exist(File.join(Gitlab.config.backup.path, 'repositories', project.disk_path + '.bundle')) + expect(File).to exist(File.join(Gitlab.config.backup.path, 'repositories', project.disk_path + '.wiki' + '.bundle')) end + end + + context 'hashed storage' do + let_it_be(:project) { create(:project, :repository) } + + it_behaves_like 'creates repository bundles' + end + + context 'legacy storage' do + let_it_be(:project) { create(:project, :repository, :legacy_storage) } + + it_behaves_like 'creates repository bundles' + end + context 'no concurrency' do it 'creates the expected number of threads' do expect(Thread).not_to receive(:new) @@ -63,26 +73,22 @@ RSpec.describe Backup::Repositories do subject.dump(max_concurrency: 1, max_storage_concurrency: 1) end.count - create_list(:project, 2, :repository, :wiki_repo) + create_list(:project, 2, :repository) expect do subject.dump(max_concurrency: 1, max_storage_concurrency: 1) end.not_to exceed_query_limit(control_count) end - - context 'legacy storage' do - let_it_be(:project) { create(:project, :repository, :legacy_storage, :wiki_repo) } - - it 'creates repository bundle' do - subject.dump(max_concurrency: 1, max_storage_concurrency: 1) - - expect(File).to exist(File.join(Gitlab.config.backup.path, 'repositories', project.disk_path + '.bundle')) - end - end end [4, 10].each do |max_storage_concurrency| context "max_storage_concurrency #{max_storage_concurrency}", quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/241701' do + let(:storage_keys) { %w[default test_second_storage] } + + before do + allow(Gitlab.config.repositories.storages).to receive(:keys).and_return(storage_keys) + end + it 'creates the expected number of threads' do expect(Thread).to receive(:new) .exactly(storage_keys.length * (max_storage_concurrency + 1)).times @@ -135,7 +141,7 @@ RSpec.describe Backup::Repositories do subject.dump(max_concurrency: 1, max_storage_concurrency: max_storage_concurrency) end.count - create_list(:project, 2, :repository, :wiki_repo) + create_list(:project, 2, :repository) expect do subject.dump(max_concurrency: 1, max_storage_concurrency: max_storage_concurrency) @@ -146,7 +152,25 @@ RSpec.describe Backup::Repositories do end describe '#restore' do - let_it_be(:project) { create(:project, :wiki_repo) } + let_it_be(:project) { create(:project) } + + it 'restores repositories from bundles', :aggregate_failures do + next_path_to_bundle = [ + Rails.root.join('spec/fixtures/lib/backup/project_repo.bundle'), + Rails.root.join('spec/fixtures/lib/backup/wiki_repo.bundle') + ].to_enum + + allow_next_instance_of(described_class::BackupRestore) do |backup_restore| + allow(backup_restore).to receive(:path_to_bundle).and_return(next_path_to_bundle.next) + end + + subject.restore + + collect_commit_shas = -> (repo) { repo.commits('master', limit: 10).map(&:sha) } + + expect(collect_commit_shas.call(project.repository)).to eq(['393a7d860a5a4c3cc736d7eb00604e3472bb95ec']) + expect(collect_commit_shas.call(project.wiki.repository)).to eq(['c74b9948d0088d703ee1fafeddd9ed9add2901ea']) + end describe 'command failure' do before do diff --git a/spec/lib/gitlab/import_export/lfs_saver_spec.rb b/spec/lib/gitlab/import_export/lfs_saver_spec.rb index db76eb9538b..55b4f7479b8 100644 --- a/spec/lib/gitlab/import_export/lfs_saver_spec.rb +++ b/spec/lib/gitlab/import_export/lfs_saver_spec.rb @@ -74,14 +74,6 @@ RSpec.describe Gitlab::ImportExport::LfsSaver do } ) end - - it 'does not save a json file if feature is disabled' do - stub_feature_flags(export_lfs_objects_projects: false) - - saver.save - - expect(File.exist?(lfs_json_file)).to eq(false) - end end end |