From 97cbf7c223ec772e4747bab5083904d4053e2e63 Mon Sep 17 00:00:00 2001 From: Timothy Andrew Date: Wed, 5 Apr 2017 13:27:46 +0530 Subject: Move a user's notes to the ghost user ... when the user is destroyed. --- spec/services/users/destroy_service_spec.rb | 10 +++++++-- ...ervice_migrate_to_ghost_user_shared_examples.rb | 26 ++++++++++++---------- 2 files changed, 22 insertions(+), 14 deletions(-) (limited to 'spec') diff --git a/spec/services/users/destroy_service_spec.rb b/spec/services/users/destroy_service_spec.rb index a5b69e6ddf4..3efa7c196dc 100644 --- a/spec/services/users/destroy_service_spec.rb +++ b/spec/services/users/destroy_service_spec.rb @@ -144,18 +144,24 @@ describe Users::DestroyService, services: true do context 'migrating associated records to the ghost user' do context 'issues' do - include_examples "migrating a deleted user's associated records to the ghost user", Issue do + include_examples "migrating a deleted user's associated records to the ghost user", Issue, {} do let(:created_record) { create(:issue, project: project, author: user) } let(:assigned_record) { create(:issue, project: project, assignee: user) } end end context 'merge requests' do - include_examples "migrating a deleted user's associated records to the ghost user", MergeRequest do + include_examples "migrating a deleted user's associated records to the ghost user", MergeRequest, {} do let(:created_record) { create(:merge_request, source_project: project, author: user, target_branch: "first") } let(:assigned_record) { create(:merge_request, source_project: project, assignee: user, target_branch: 'second') } end end + + context 'notes' do + include_examples "migrating a deleted user's associated records to the ghost user", Note, { skip_assignee_specs: true } do + let(:created_record) { create(:note, project: project, author: user) } + end + end end end end diff --git a/spec/support/services/user_destroy_service_migrate_to_ghost_user_shared_examples.rb b/spec/support/services/user_destroy_service_migrate_to_ghost_user_shared_examples.rb index 8996e3420e6..add3dd3d5bc 100644 --- a/spec/support/services/user_destroy_service_migrate_to_ghost_user_shared_examples.rb +++ b/spec/support/services/user_destroy_service_migrate_to_ghost_user_shared_examples.rb @@ -1,6 +1,6 @@ require "spec_helper" -shared_examples "migrating a deleted user's associated records to the ghost user" do |record_class| +shared_examples "migrating a deleted user's associated records to the ghost user" do |record_class, options| record_class_name = record_class.to_s.titleize.downcase let(:project) { create(:project) } @@ -33,21 +33,23 @@ shared_examples "migrating a deleted user's associated records to the ghost user end end - context "for a #{record_class_name} the user was assigned to" do - let!(:record) { assigned_record } + unless options[:skip_assignee_specs] + context "for a #{record_class_name} the user was assigned to" do + let!(:record) { assigned_record } - before do - service.execute(user) - end + before do + service.execute(user) + end - it "does not delete #{record_class_name}s the user is assigned to" do - expect(record_class.find_by_id(record.id)).to be_present - end + it "does not delete #{record_class_name}s the user is assigned to" do + expect(record_class.find_by_id(record.id)).to be_present + end - it "migrates the #{record_class_name} so that it is 'Unassigned'" do - migrated_record = record_class.find_by_id(record.id) + it "migrates the #{record_class_name} so that it is 'Unassigned'" do + migrated_record = record_class.find_by_id(record.id) - expect(migrated_record.assignee).to be_nil + expect(migrated_record.assignee).to be_nil + end end end end -- cgit v1.2.3