From 26e4d00eac301bb50c89aedd858dbfc27f4688ed Mon Sep 17 00:00:00 2001
From: Stan Hu <stanhu@gmail.com>
Date: Thu, 8 Sep 2016 07:08:44 -0400
Subject: [PATCH] Use wait_for_ajax to avoid database deadlocks after specs are
 cleaned

---
 spec/support/issuable_slash_commands_shared_examples.rb | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/spec/support/issuable_slash_commands_shared_examples.rb b/spec/support/issuable_slash_commands_shared_examples.rb
index a51742089d0..a3fbba55e27 100644
--- a/spec/support/issuable_slash_commands_shared_examples.rb
+++ b/spec/support/issuable_slash_commands_shared_examples.rb
@@ -2,6 +2,8 @@
 # It takes a `issuable_type`, and expect an `issuable`.
 
 shared_examples 'issuable record that supports slash commands in its description and notes' do |issuable_type|
+  include WaitForAjax
+
   let(:master) { create(:user) }
   let(:assignee) { create(:user, username: 'bob') }
   let(:guest) { create(:user) }
@@ -18,6 +20,11 @@ shared_examples 'issuable record that supports slash commands in its description
     login_with(master)
   end
 
+  after do
+    # Ensure all outstanding Ajax requests are complete to avoid database deadlocks
+    wait_for_ajax
+  end
+
   def write_note(text)
     Sidekiq::Testing.fake! do
       page.within('.js-main-target-form') do
-- 
GitLab