diff options
Diffstat (limited to 'spec/services/projects')
20 files changed, 197 insertions, 96 deletions
diff --git a/spec/services/projects/alerting/notify_service_spec.rb b/spec/services/projects/alerting/notify_service_spec.rb index 4674f614cf1..4b7b7b0b200 100644 --- a/spec/services/projects/alerting/notify_service_spec.rb +++ b/spec/services/projects/alerting/notify_service_spec.rb @@ -13,7 +13,7 @@ RSpec.describe Projects::Alerting::NotifyService do let(:token) { 'invalid-token' } let(:starts_at) { Time.current.change(usec: 0) } let(:fingerprint) { 'testing' } - let(:service) { described_class.new(project, nil, payload) } + let(:service) { described_class.new(project, payload) } let_it_be(:environment) { create(:environment, project: project) } let(:environment) { create(:environment, project: project) } let(:ended_at) { nil } @@ -54,7 +54,6 @@ RSpec.describe Projects::Alerting::NotifyService do shared_examples 'assigns the alert properties' do it 'ensure that created alert has all data properly assigned' do subject - expect(last_alert_attributes).to match( project_id: project.id, title: payload_raw.fetch(:title), @@ -62,6 +61,7 @@ RSpec.describe Projects::Alerting::NotifyService do severity: payload_raw.fetch(:severity), status: AlertManagement::Alert.status_value(:triggered), events: 1, + domain: 'operations', hosts: payload_raw.fetch(:hosts), payload: payload_raw.with_indifferent_access, issue_id: nil, @@ -187,6 +187,7 @@ RSpec.describe Projects::Alerting::NotifyService do status: AlertManagement::Alert.status_value(:triggered), events: 1, hosts: [], + domain: 'operations', payload: payload_raw.with_indifferent_access, issue_id: nil, description: nil, diff --git a/spec/services/projects/container_repository/delete_tags_service_spec.rb b/spec/services/projects/container_repository/delete_tags_service_spec.rb index a012ec29be5..4da416d9698 100644 --- a/spec/services/projects/container_repository/delete_tags_service_spec.rb +++ b/spec/services/projects/container_repository/delete_tags_service_spec.rb @@ -20,6 +20,7 @@ RSpec.describe Projects::ContainerRepository::DeleteTagsService do service_class: 'Projects::ContainerRepository::DeleteTagsService', message: 'deleted tags', container_repository_id: repository.id, + project_id: repository.project_id, deleted_tags_count: tags.size ) @@ -32,7 +33,8 @@ RSpec.describe Projects::ContainerRepository::DeleteTagsService do log_data = { service_class: 'Projects::ContainerRepository::DeleteTagsService', message: message, - container_repository_id: repository.id + container_repository_id: repository.id, + project_id: repository.project_id } log_data.merge!(extra_log) if extra_log.any? diff --git a/spec/services/projects/fork_service_spec.rb b/spec/services/projects/fork_service_spec.rb index 555f2f5a5e5..60dfee820ca 100644 --- a/spec/services/projects/fork_service_spec.rb +++ b/spec/services/projects/fork_service_spec.rb @@ -325,7 +325,7 @@ RSpec.describe Projects::ForkService do storage_move = create( :project_repository_storage_move, :scheduled, - project: project, + container: project, destination_storage_name: 'test_second_storage' ) Projects::UpdateRepositoryStorageService.new(storage_move).execute @@ -344,10 +344,6 @@ RSpec.describe Projects::ForkService do let(:fork_from_project) { create(:project, :public) } let(:forker) { create(:user) } - before do - stub_feature_flags(object_pools: true) - end - context 'when no pool exists' do it 'creates a new object pool' do forked_project = fork_project(fork_from_project, forker, using_service: true) diff --git a/spec/services/projects/git_deduplication_service_spec.rb b/spec/services/projects/git_deduplication_service_spec.rb index b98db5bc41b..e6eff936de7 100644 --- a/spec/services/projects/git_deduplication_service_spec.rb +++ b/spec/services/projects/git_deduplication_service_spec.rb @@ -139,7 +139,7 @@ RSpec.describe Projects::GitDeduplicationService do end it 'fails when a lease is already out' do - expect(service).to receive(:log_error).with("Cannot obtain an exclusive lease for #{service.class.name}. There must be another instance already in execution.") + expect(service).to receive(:log_error).with("Cannot obtain an exclusive lease for #{lease_key}. There must be another instance already in execution.") service.execute end diff --git a/spec/services/projects/hashed_storage/migrate_repository_service_spec.rb b/spec/services/projects/hashed_storage/migrate_repository_service_spec.rb index f0fd243f0ca..47252bcf7a7 100644 --- a/spec/services/projects/hashed_storage/migrate_repository_service_spec.rb +++ b/spec/services/projects/hashed_storage/migrate_repository_service_spec.rb @@ -28,7 +28,7 @@ RSpec.describe Projects::HashedStorage::MigrateRepositoryService do end it 'fails when a git operation is in progress' do - allow(project).to receive(:repo_reference_count) { 1 } + allow(project).to receive(:git_transfer_in_progress?) { true } expect { service.execute }.to raise_error(Projects::HashedStorage::RepositoryInUseError) end diff --git a/spec/services/projects/hashed_storage/rollback_repository_service_spec.rb b/spec/services/projects/hashed_storage/rollback_repository_service_spec.rb index 492eb0956aa..af128a532b9 100644 --- a/spec/services/projects/hashed_storage/rollback_repository_service_spec.rb +++ b/spec/services/projects/hashed_storage/rollback_repository_service_spec.rb @@ -28,7 +28,7 @@ RSpec.describe Projects::HashedStorage::RollbackRepositoryService, :clean_gitlab end it 'fails when a git operation is in progress' do - allow(project).to receive(:repo_reference_count) { 1 } + allow(project).to receive(:git_transfer_in_progress?) { true } expect { service.execute }.to raise_error(Projects::HashedStorage::RepositoryInUseError) end diff --git a/spec/services/projects/move_access_service_spec.rb b/spec/services/projects/move_access_service_spec.rb index 02f80988dd1..90167ffebed 100644 --- a/spec/services/projects/move_access_service_spec.rb +++ b/spec/services/projects/move_access_service_spec.rb @@ -91,7 +91,7 @@ RSpec.describe Projects::MoveAccessService do it 'does not remove remaining memberships' do target_project.add_maintainer(maintainer_user) - subject.execute(project_with_access, options) + subject.execute(project_with_access, **options) expect(project_with_access.project_members.count).not_to eq 0 end @@ -99,7 +99,7 @@ RSpec.describe Projects::MoveAccessService do it 'does not remove remaining group links' do target_project.project_group_links.create!(group: maintainer_group, group_access: Gitlab::Access::MAINTAINER) - subject.execute(project_with_access, options) + subject.execute(project_with_access, **options) expect(project_with_access.project_group_links.count).not_to eq 0 end @@ -107,7 +107,7 @@ RSpec.describe Projects::MoveAccessService do it 'does not remove remaining authorizations' do target_project.add_developer(developer_user) - subject.execute(project_with_access, options) + subject.execute(project_with_access, **options) expect(project_with_access.project_authorizations.count).not_to eq 0 end diff --git a/spec/services/projects/move_deploy_keys_projects_service_spec.rb b/spec/services/projects/move_deploy_keys_projects_service_spec.rb index e69b4dd4fc7..bd93b80f712 100644 --- a/spec/services/projects/move_deploy_keys_projects_service_spec.rb +++ b/spec/services/projects/move_deploy_keys_projects_service_spec.rb @@ -51,7 +51,7 @@ RSpec.describe Projects::MoveDeployKeysProjectsService do it 'does not remove remaining deploy keys projects' do target_project.deploy_keys << project_with_deploy_keys.deploy_keys.first - subject.execute(project_with_deploy_keys, options) + subject.execute(project_with_deploy_keys, **options) expect(project_with_deploy_keys.deploy_keys_projects.count).not_to eq 0 end diff --git a/spec/services/projects/move_lfs_objects_projects_service_spec.rb b/spec/services/projects/move_lfs_objects_projects_service_spec.rb index b73286fba9a..e3df5fed9cf 100644 --- a/spec/services/projects/move_lfs_objects_projects_service_spec.rb +++ b/spec/services/projects/move_lfs_objects_projects_service_spec.rb @@ -48,7 +48,7 @@ RSpec.describe Projects::MoveLfsObjectsProjectsService do it 'does not remove remaining lfs objects' do target_project.lfs_objects << project_with_lfs_objects.lfs_objects.first(2) - subject.execute(project_with_lfs_objects, options) + subject.execute(project_with_lfs_objects, **options) expect(project_with_lfs_objects.lfs_objects.count).not_to eq 0 end diff --git a/spec/services/projects/move_notification_settings_service_spec.rb b/spec/services/projects/move_notification_settings_service_spec.rb index 7c9f1dd30d2..e381ae7590f 100644 --- a/spec/services/projects/move_notification_settings_service_spec.rb +++ b/spec/services/projects/move_notification_settings_service_spec.rb @@ -49,7 +49,7 @@ RSpec.describe Projects::MoveNotificationSettingsService do let(:options) { { remove_remaining_elements: false } } it 'does not remove remaining notification settings' do - subject.execute(project_with_notifications, options) + subject.execute(project_with_notifications, **options) expect(project_with_notifications.notification_settings.count).not_to eq 0 end diff --git a/spec/services/projects/move_project_authorizations_service_spec.rb b/spec/services/projects/move_project_authorizations_service_spec.rb index a37b4d807a0..d47b13ca939 100644 --- a/spec/services/projects/move_project_authorizations_service_spec.rb +++ b/spec/services/projects/move_project_authorizations_service_spec.rb @@ -49,7 +49,7 @@ RSpec.describe Projects::MoveProjectAuthorizationsService do target_project.add_maintainer(developer_user) target_project.add_developer(reporter_user) - subject.execute(project_with_users, options) + subject.execute(project_with_users, **options) expect(project_with_users.project_authorizations.count).not_to eq 0 end diff --git a/spec/services/projects/move_project_group_links_service_spec.rb b/spec/services/projects/move_project_group_links_service_spec.rb index 6304eded8d3..1fca96a0367 100644 --- a/spec/services/projects/move_project_group_links_service_spec.rb +++ b/spec/services/projects/move_project_group_links_service_spec.rb @@ -58,7 +58,7 @@ RSpec.describe Projects::MoveProjectGroupLinksService do target_project.project_group_links.create!(group: maintainer_group, group_access: Gitlab::Access::MAINTAINER) target_project.project_group_links.create!(group: developer_group, group_access: Gitlab::Access::DEVELOPER) - subject.execute(project_with_groups, options) + subject.execute(project_with_groups, **options) expect(project_with_groups.project_group_links.count).not_to eq 0 end diff --git a/spec/services/projects/move_project_members_service_spec.rb b/spec/services/projects/move_project_members_service_spec.rb index f14f00e3866..8fbd0ba3270 100644 --- a/spec/services/projects/move_project_members_service_spec.rb +++ b/spec/services/projects/move_project_members_service_spec.rb @@ -58,7 +58,7 @@ RSpec.describe Projects::MoveProjectMembersService do target_project.add_maintainer(developer_user) target_project.add_developer(reporter_user) - subject.execute(project_with_users, options) + subject.execute(project_with_users, **options) expect(project_with_users.project_members.count).not_to eq 0 end diff --git a/spec/services/projects/open_issues_count_service_spec.rb b/spec/services/projects/open_issues_count_service_spec.rb index 294c9adcc92..c739fea5ecf 100644 --- a/spec/services/projects/open_issues_count_service_spec.rb +++ b/spec/services/projects/open_issues_count_service_spec.rb @@ -10,14 +10,6 @@ RSpec.describe Projects::OpenIssuesCountService, :use_clean_rails_memory_store_c it_behaves_like 'a counter caching service' describe '#count' do - it 'does not count test cases' do - create(:issue, :opened, project: project) - create(:incident, :opened, project: project) - create(:quality_test_case, :opened, project: project) - - expect(described_class.new(project).count).to eq(2) - end - context 'when user is nil' do it 'does not include confidential issues in the issue count' do create(:issue, :opened, project: project) diff --git a/spec/services/projects/participants_service_spec.rb b/spec/services/projects/participants_service_spec.rb index 33a3e37a2d2..b84e28314f2 100644 --- a/spec/services/projects/participants_service_spec.rb +++ b/spec/services/projects/participants_service_spec.rb @@ -3,57 +3,100 @@ require 'spec_helper' RSpec.describe Projects::ParticipantsService do - describe '#groups' do + describe '#execute' do let_it_be(:user) { create(:user) } let_it_be(:project) { create(:project, :public) } - let(:service) { described_class.new(project, user) } + let_it_be(:noteable) { create(:issue, project: project) } - it 'avoids N+1 queries' do - group_1 = create(:group) - group_1.add_owner(user) + before_all do + project.add_developer(user) + end - service.groups # Run general application warmup queries - control_count = ActiveRecord::QueryRecorder.new { service.groups }.count + def run_service + described_class.new(project, user).execute(noteable) + end - group_2 = create(:group) - group_2.add_owner(user) + context 'N+1 checks' do + before do + run_service # warmup, runs table cache queries and create queries + BatchLoader::Executor.clear_current + end - expect { service.groups }.not_to exceed_query_limit(control_count) - end + it 'avoids N+1 UserDetail queries' do + project.add_developer(create(:user)) - it 'returns correct user counts for groups' do - group_1 = create(:group) - group_1.add_owner(user) - group_1.add_owner(create(:user)) + control_count = ActiveRecord::QueryRecorder.new { run_service.to_a }.count - group_2 = create(:group) - group_2.add_owner(user) - create(:group_member, :access_request, group: group_2, user: create(:user)) + BatchLoader::Executor.clear_current - expect(service.groups).to contain_exactly( - a_hash_including(name: group_1.full_name, count: 2), - a_hash_including(name: group_2.full_name, count: 1) - ) - end + project.add_developer(create(:user, status: build(:user_status, availability: :busy))) + + expect { run_service.to_a }.not_to exceed_query_limit(control_count) + end - describe 'avatar_url' do - let(:group) { create(:group, avatar: fixture_file_upload('spec/fixtures/dk.png')) } + it 'avoids N+1 groups queries' do + group_1 = create(:group) + group_1.add_owner(user) - before do - group.add_owner(user) + control_count = ActiveRecord::QueryRecorder.new { run_service }.count + + BatchLoader::Executor.clear_current + + group_2 = create(:group) + group_2.add_owner(user) + + expect { run_service }.not_to exceed_query_limit(control_count) end + end + + it 'does not return duplicate author' do + participants = run_service - it 'returns an url for the avatar' do - expect(service.groups.size).to eq 1 - expect(service.groups.first[:avatar_url]).to eq("/uploads/-/system/group/avatar/#{group.id}/dk.png") + expect(participants.count { |p| p[:username] == noteable.author.username }).to eq 1 + end + + describe 'group items' do + subject(:group_items) { run_service.select { |hash| hash[:type].eql?('Group') } } + + describe 'group user counts' do + let(:group_1) { create(:group) } + let(:group_2) { create(:group) } + + before do + group_1.add_owner(user) + group_1.add_owner(create(:user)) + + group_2.add_owner(user) + create(:group_member, :access_request, group: group_2, user: create(:user)) + end + + it 'returns correct user counts for groups' do + expect(group_items).to contain_exactly( + a_hash_including(name: group_1.full_name, count: 2), + a_hash_including(name: group_2.full_name, count: 1) + ) + end end - it 'returns an url for the avatar with relative url' do - stub_config_setting(relative_url_root: '/gitlab') - stub_config_setting(url: Settings.send(:build_gitlab_url)) + describe 'avatar_url' do + let(:group) { create(:group, avatar: fixture_file_upload('spec/fixtures/dk.png')) } + + before do + group.add_owner(user) + end - expect(service.groups.size).to eq 1 - expect(service.groups.first[:avatar_url]).to eq("/gitlab/uploads/-/system/group/avatar/#{group.id}/dk.png") + it 'returns an url for the avatar' do + expect(group_items.size).to eq 1 + expect(group_items.first[:avatar_url]).to eq("/uploads/-/system/group/avatar/#{group.id}/dk.png") + end + + it 'returns an url for the avatar with relative url' do + stub_config_setting(relative_url_root: '/gitlab') + stub_config_setting(url: Settings.send(:build_gitlab_url)) + + expect(group_items.size).to eq 1 + expect(group_items.first[:avatar_url]).to eq("/gitlab/uploads/-/system/group/avatar/#{group.id}/dk.png") + end end end end diff --git a/spec/services/projects/prometheus/alerts/notify_service_spec.rb b/spec/services/projects/prometheus/alerts/notify_service_spec.rb index 0e5ac7c69e3..8ae47ec266c 100644 --- a/spec/services/projects/prometheus/alerts/notify_service_spec.rb +++ b/spec/services/projects/prometheus/alerts/notify_service_spec.rb @@ -7,7 +7,7 @@ RSpec.describe Projects::Prometheus::Alerts::NotifyService do let_it_be(:project, reload: true) { create(:project) } - let(:service) { described_class.new(project, nil, payload) } + let(:service) { described_class.new(project, payload) } let(:token_input) { 'token' } let!(:setting) do @@ -138,10 +138,10 @@ RSpec.describe Projects::Prometheus::Alerts::NotifyService do end end - context 'with generic alerts integration' do + context 'with HTTP integration' do using RSpec::Parameterized::TableSyntax - where(:alerts_service, :token, :result) do + where(:active, :token, :result) do :active | :valid | :success :active | :invalid | :failure :active | nil | :failure @@ -150,15 +150,12 @@ RSpec.describe Projects::Prometheus::Alerts::NotifyService do end with_them do - let(:valid) { project.alerts_service.token } + let(:valid) { integration.token } let(:invalid) { 'invalid token' } let(:token_input) { public_send(token) if token } + let(:integration) { create(:alert_management_http_integration, active, project: project) if active } - before do - if alerts_service - create(:alerts_service, alerts_service, project: project) - end - end + let(:subject) { service.execute(token_input, integration) } case result = params[:result] when :success @@ -221,7 +218,7 @@ RSpec.describe Projects::Prometheus::Alerts::NotifyService do it 'processes Prometheus alerts' do expect(AlertManagement::ProcessPrometheusAlertService) .to receive(:new) - .with(project, nil, kind_of(Hash)) + .with(project, kind_of(Hash)) .exactly(3).times .and_return(process_service) expect(process_service).to receive(:execute).exactly(3).times diff --git a/spec/services/projects/schedule_bulk_repository_shard_moves_service_spec.rb b/spec/services/projects/schedule_bulk_repository_shard_moves_service_spec.rb new file mode 100644 index 00000000000..5b76386bfab --- /dev/null +++ b/spec/services/projects/schedule_bulk_repository_shard_moves_service_spec.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Projects::ScheduleBulkRepositoryShardMovesService do + before do + stub_storage_settings('test_second_storage' => { 'path' => 'tmp/tests/extra_storage' }) + end + + let!(:project) { create(:project, :repository).tap { |project| project.track_project_repository } } + let(:source_storage_name) { 'default' } + let(:destination_storage_name) { 'test_second_storage' } + + describe '#execute' do + it 'schedules project repository storage moves' do + expect { subject.execute(source_storage_name, destination_storage_name) } + .to change(ProjectRepositoryStorageMove, :count).by(1) + + storage_move = project.repository_storage_moves.last! + + expect(storage_move).to have_attributes( + source_storage_name: source_storage_name, + destination_storage_name: destination_storage_name, + state_name: :scheduled + ) + end + + context 'read-only repository' do + let!(:project) { create(:project, :repository, :read_only).tap { |project| project.track_project_repository } } + + it 'does not get scheduled' do + expect(subject).to receive(:log_info) + .with("Project #{project.full_path} (#{project.id}) was skipped: Project is read only") + expect { subject.execute(source_storage_name, destination_storage_name) } + .to change(ProjectRepositoryStorageMove, :count).by(0) + end + end + end + + describe '.enqueue' do + it 'defers to the worker' do + expect(::ProjectScheduleBulkRepositoryShardMovesWorker).to receive(:perform_async).with(source_storage_name, destination_storage_name) + + described_class.enqueue(source_storage_name, destination_storage_name) + end + end +end diff --git a/spec/services/projects/transfer_service_spec.rb b/spec/services/projects/transfer_service_spec.rb index 8e6147e7a3c..5f41ec1d610 100644 --- a/spec/services/projects/transfer_service_spec.rb +++ b/spec/services/projects/transfer_service_spec.rb @@ -7,6 +7,7 @@ RSpec.describe Projects::TransferService do let_it_be(:user) { create(:user) } let_it_be(:group) { create(:group) } + let_it_be(:group_integration) { create(:slack_service, group: group, project: nil, webhook: 'http://group.slack.com') } let(:project) { create(:project, :repository, :legacy_storage, namespace: user.namespace) } subject(:execute_transfer) { described_class.new(project, user).execute(group).tap { project.reload } } @@ -117,6 +118,30 @@ RSpec.describe Projects::TransferService do shard_name: project.repository_storage ) end + + context 'with a project integration' do + let_it_be_with_reload(:project) { create(:project, namespace: user.namespace) } + let_it_be(:instance_integration) { create(:slack_service, :instance, webhook: 'http://project.slack.com') } + + context 'with an inherited integration' do + let_it_be(:project_integration) { create(:slack_service, project: project, webhook: 'http://project.slack.com', inherit_from_id: instance_integration.id) } + + it 'replaces inherited integrations', :aggregate_failures do + execute_transfer + + expect(project.slack_service.webhook).to eq(group_integration.webhook) + expect(Service.count).to eq(3) + end + end + + context 'with a custom integration' do + let_it_be(:project_integration) { create(:slack_service, project: project, webhook: 'http://project.slack.com') } + + it 'does not updates the integrations' do + expect { execute_transfer }.not_to change { project.slack_service.webhook } + end + end + end end context 'when transfer fails' do @@ -527,7 +552,7 @@ RSpec.describe Projects::TransferService do group.add_owner(user) end - it 'schedules a job when pages are deployed' do + it 'schedules a job when pages are deployed' do project.mark_pages_as_deployed expect(PagesTransferWorker).to receive(:perform_async) diff --git a/spec/services/projects/update_pages_service_spec.rb b/spec/services/projects/update_pages_service_spec.rb index d2c6c0eb971..a15f6bdbe2c 100644 --- a/spec/services/projects/update_pages_service_spec.rb +++ b/spec/services/projects/update_pages_service_spec.rb @@ -35,13 +35,11 @@ RSpec.describe Projects::UpdatePagesService do build.reload end - describe 'pages artifacts' do - it "doesn't delete artifacts after deploying" do - expect(execute).to eq(:success) + it "doesn't delete artifacts after deploying" do + expect(execute).to eq(:success) - expect(project.pages_metadatum).to be_deployed - expect(build.artifacts?).to eq(true) - end + expect(project.pages_metadatum).to be_deployed + expect(build.artifacts?).to eq(true) end it 'succeeds' do @@ -71,6 +69,16 @@ RSpec.describe Projects::UpdatePagesService do expect(project.pages_metadatum.reload.pages_deployment_id).to eq(deployment.id) end + it 'fails if another deployment is in progress' do + subject.try_obtain_lease do + expect do + execute + end.to raise_error("Failed to deploy pages - other deployment is in progress") + + expect(GenericCommitStatus.last.description).to eq("Failed to deploy pages - other deployment is in progress") + end + end + it 'does not fail if pages_metadata is absent' do project.pages_metadatum.destroy! project.reload @@ -105,16 +113,6 @@ RSpec.describe Projects::UpdatePagesService do end end - it 'does not create deployment when zip_pages_deployments feature flag is disabled' do - stub_feature_flags(zip_pages_deployments: false) - - expect do - expect(execute).to eq(:success) - end.not_to change { project.pages_deployments.count } - - expect(project.pages_metadatum.reload.pages_deployment_id).to be_nil - end - it 'limits pages size' do stub_application_setting(max_pages_size: 1) expect(execute).not_to eq(:success) diff --git a/spec/services/projects/update_repository_storage_service_spec.rb b/spec/services/projects/update_repository_storage_service_spec.rb index 123f604e7a4..ef8f166cc3f 100644 --- a/spec/services/projects/update_repository_storage_service_spec.rb +++ b/spec/services/projects/update_repository_storage_service_spec.rb @@ -18,7 +18,7 @@ RSpec.describe Projects::UpdateRepositoryStorageService do context 'without wiki and design repository' do let(:project) { create(:project, :repository, wiki_enabled: false) } let(:destination) { 'test_second_storage' } - let(:repository_storage_move) { create(:project_repository_storage_move, :scheduled, project: project, destination_storage_name: destination) } + let(:repository_storage_move) { create(:project_repository_storage_move, :scheduled, container: project, destination_storage_name: destination) } let!(:checksum) { project.repository.checksum } let(:project_repository_double) { double(:repository) } let(:original_project_repository_double) { double(:repository) } @@ -144,7 +144,7 @@ RSpec.describe Projects::UpdateRepositoryStorageService do end context 'when the repository move is finished' do - let(:repository_storage_move) { create(:project_repository_storage_move, :finished, project: project, destination_storage_name: destination) } + let(:repository_storage_move) { create(:project_repository_storage_move, :finished, container: project, destination_storage_name: destination) } it 'is idempotent' do expect do @@ -156,7 +156,7 @@ RSpec.describe Projects::UpdateRepositoryStorageService do end context 'when the repository move is failed' do - let(:repository_storage_move) { create(:project_repository_storage_move, :failed, project: project, destination_storage_name: destination) } + let(:repository_storage_move) { create(:project_repository_storage_move, :failed, container: project, destination_storage_name: destination) } it 'is idempotent' do expect do @@ -170,7 +170,7 @@ RSpec.describe Projects::UpdateRepositoryStorageService do context 'project with no repositories' do let(:project) { create(:project) } - let(:repository_storage_move) { create(:project_repository_storage_move, :scheduled, project: project, destination_storage_name: 'test_second_storage') } + let(:repository_storage_move) { create(:project_repository_storage_move, :scheduled, container: project, destination_storage_name: 'test_second_storage') } it 'updates the database' do allow(Gitlab::GitalyClient).to receive(:filesystem_id).with('default').and_call_original @@ -191,7 +191,7 @@ RSpec.describe Projects::UpdateRepositoryStorageService do let(:project) { create(:project, :repository, wiki_enabled: true) } let(:repository) { project.wiki.repository } let(:destination) { 'test_second_storage' } - let(:repository_storage_move) { create(:project_repository_storage_move, :scheduled, project: project, destination_storage_name: destination) } + let(:repository_storage_move) { create(:project_repository_storage_move, :scheduled, container: project, destination_storage_name: destination) } before do project.create_wiki @@ -204,7 +204,7 @@ RSpec.describe Projects::UpdateRepositoryStorageService do let(:project) { create(:project, :repository) } let(:repository) { project.design_repository } let(:destination) { 'test_second_storage' } - let(:repository_storage_move) { create(:project_repository_storage_move, :scheduled, project: project, destination_storage_name: destination) } + let(:repository_storage_move) { create(:project_repository_storage_move, :scheduled, container: project, destination_storage_name: destination) } before do project.design_repository.create_if_not_exists |