diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-05-20 14:34:42 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-05-20 14:34:42 +0000 |
commit | 9f46488805e86b1bc341ea1620b866016c2ce5ed (patch) | |
tree | f9748c7e287041e37d6da49e0a29c9511dc34768 /spec/services/users | |
parent | dfc92d081ea0332d69c8aca2f0e745cb48ae5e6d (diff) | |
download | gitlab-ce-9f46488805e86b1bc341ea1620b866016c2ce5ed.tar.gz |
Add latest changes from gitlab-org/gitlab@13-0-stable-ee
Diffstat (limited to 'spec/services/users')
-rw-r--r-- | spec/services/users/destroy_service_spec.rb | 14 | ||||
-rw-r--r-- | spec/services/users/migrate_to_ghost_user_service_spec.rb | 6 |
2 files changed, 15 insertions, 5 deletions
diff --git a/spec/services/users/destroy_service_spec.rb b/spec/services/users/destroy_service_spec.rb index 216d9170274..6e4b293286b 100644 --- a/spec/services/users/destroy_service_spec.rb +++ b/spec/services/users/destroy_service_spec.rb @@ -42,13 +42,11 @@ describe Users::DestroyService do it 'calls the bulk snippet destroy service for the user personal snippets' do repo1 = create(:personal_snippet, :repository, author: user).snippet_repository - repo2 = create(:project_snippet, :repository, author: user).snippet_repository - repo3 = create(:project_snippet, :repository, project: project, author: user).snippet_repository + repo2 = create(:project_snippet, :repository, project: project, author: user).snippet_repository aggregate_failures do expect(gitlab_shell.repository_exists?(repo1.shard_name, repo1.disk_path + '.git')).to be_truthy expect(gitlab_shell.repository_exists?(repo2.shard_name, repo2.disk_path + '.git')).to be_truthy - expect(gitlab_shell.repository_exists?(repo3.shard_name, repo3.disk_path + '.git')).to be_truthy end # Call made when destroying user personal projects @@ -59,17 +57,23 @@ describe Users::DestroyService do # project snippets where projects are not user personal # ones expect(Snippets::BulkDestroyService).to receive(:new) - .with(admin, user.snippets).and_call_original + .with(admin, user.snippets.only_personal_snippets).and_call_original service.execute(user) aggregate_failures do expect(gitlab_shell.repository_exists?(repo1.shard_name, repo1.disk_path + '.git')).to be_falsey expect(gitlab_shell.repository_exists?(repo2.shard_name, repo2.disk_path + '.git')).to be_falsey - expect(gitlab_shell.repository_exists?(repo3.shard_name, repo3.disk_path + '.git')).to be_falsey end end + it 'does not delete project snippets that the user is the author of' do + repo = create(:project_snippet, :repository, author: user).snippet_repository + service.execute(user) + expect(gitlab_shell.repository_exists?(repo.shard_name, repo.disk_path + '.git')).to be_truthy + expect(User.ghost.snippets).to include(repo.snippet) + end + context 'when an error is raised deleting snippets' do it 'does not delete user' do snippet = create(:personal_snippet, :repository, author: user) diff --git a/spec/services/users/migrate_to_ghost_user_service_spec.rb b/spec/services/users/migrate_to_ghost_user_service_spec.rb index 40206775aed..a7d7c16a66f 100644 --- a/spec/services/users/migrate_to_ghost_user_service_spec.rb +++ b/spec/services/users/migrate_to_ghost_user_service_spec.rb @@ -78,6 +78,12 @@ describe Users::MigrateToGhostUserService do end end + context 'snippets' do + include_examples "migrating a deleted user's associated records to the ghost user", Snippet do + let(:created_record) { create(:snippet, project: project, author: user) } + end + end + context "when record migration fails with a rollback exception" do before do expect_any_instance_of(ActiveRecord::Associations::CollectionProxy) |