diff --git a/doc/development/database/loose_foreign_keys.md b/doc/development/database/loose_foreign_keys.md
index 4cd5fdfa883c9085ecc7819d2f66da4ef7974f7a..ec2c41220819a550f1944adee1ad86f7b7750ad3 100644
--- a/doc/development/database/loose_foreign_keys.md
+++ b/doc/development/database/loose_foreign_keys.md
@@ -161,6 +161,17 @@ it_behaves_like 'it has loose foreign keys' do
 end
 ```
 
+**After** [removing a foreign key](#remove-the-foreign-key),
+use the "`cleanup by a loose foreign key`" shared example to test a child record's deletion or nullification
+via the added loose foreign key:
+
+```ruby
+it_behaves_like 'cleanup by a loose foreign key' do
+  let!(:model) { create(:ci_pipeline, user: create(:user)) }
+  let!(:parent) { model.user }
+end
+```
+
 ## Caveats of loose foreign keys
 
 ### Record creation
diff --git a/spec/support/shared_examples/loose_foreign_keys/have_loose_foreign_key.rb b/spec/support/shared_examples/loose_foreign_keys/have_loose_foreign_key.rb
index 3af365733d697bcf11318ca0a6c3e6aade9338ce..5f8e2c199576e0d21b801f49d8c507ecf5007371 100644
--- a/spec/support/shared_examples/loose_foreign_keys/have_loose_foreign_key.rb
+++ b/spec/support/shared_examples/loose_foreign_keys/have_loose_foreign_key.rb
@@ -59,7 +59,7 @@ def find_model
     model.class.find_by(primary_key => model.public_send(primary_key))
   end
 
-  it 'deletes the model' do
+  it 'cleans up (delete or nullify) the model' do
     parent.delete
 
     expect(find_model).to be_present