diff --git a/app/assets/javascripts/vue_shared/vue_resource_interceptor.js b/app/assets/javascripts/vue_shared/vue_resource_interceptor.js
index d5f87588c288c47e04f2dcfda36946d8356453a9..740930dce5bc4af45b7521f26fb08539e8d3b7b9 100644
--- a/app/assets/javascripts/vue_shared/vue_resource_interceptor.js
+++ b/app/assets/javascripts/vue_shared/vue_resource_interceptor.js
@@ -4,7 +4,7 @@ import VueResource from 'vue-resource';
 Vue.use(VueResource);
 
 // Maintain a global counter for active requests
-// see: spec/support/wait_for_vue_resource.rb
+// see: spec/support/wait_for_requests.rb
 Vue.http.interceptors.push((request, next) => {
   window.activeVueResources = window.activeVueResources || 0;
   window.activeVueResources += 1;
diff --git a/changelogs/unreleased/wait-for-ajax-handling-all-js-requests.yml b/changelogs/unreleased/wait-for-ajax-handling-all-js-requests.yml
new file mode 100644
index 0000000000000000000000000000000000000000..14aebe792c2f0fac1193c9ae858a926d8a3dacd9
--- /dev/null
+++ b/changelogs/unreleased/wait-for-ajax-handling-all-js-requests.yml
@@ -0,0 +1,4 @@
+---
+title: Use wait_for_requests for both ajax and Vue requests
+merge_request:
+author:
diff --git a/features/steps/dashboard/event_filters.rb b/features/steps/dashboard/event_filters.rb
index ca3cd0ecc4e0d7b57db856e0b912ea79ae4506e6..a745254cc317cc1865af3ab85bc986ea8ec2812b 100644
--- a/features/steps/dashboard/event_filters.rb
+++ b/features/steps/dashboard/event_filters.rb
@@ -1,5 +1,5 @@
 class Spinach::Features::EventFilters < Spinach::FeatureSteps
-  include WaitForAjax
+  include WaitForRequests
   include SharedAuthentication
   include SharedPaths
   include SharedProject
@@ -73,20 +73,20 @@ class Spinach::Features::EventFilters < Spinach::FeatureSteps
   end
 
   When 'I click "push" event filter' do
-    wait_for_ajax
+    wait_for_requests
     click_link("Push events")
-    wait_for_ajax
+    wait_for_requests
   end
 
   When 'I click "team" event filter' do
-    wait_for_ajax
+    wait_for_requests
     click_link("Team")
-    wait_for_ajax
+    wait_for_requests
   end
 
   When 'I click "merge" event filter' do
-    wait_for_ajax
+    wait_for_requests
     click_link("Merge events")
-    wait_for_ajax
+    wait_for_requests
   end
 end
diff --git a/features/steps/dashboard/todos.rb b/features/steps/dashboard/todos.rb
index 13fd3239e8621ffadc2204893c46d01c4515ad68..4a33babe3bd2fa37c0cd012d3cf5e5f0bd9e4bc0 100644
--- a/features/steps/dashboard/todos.rb
+++ b/features/steps/dashboard/todos.rb
@@ -3,7 +3,7 @@ class Spinach::Features::DashboardTodos < Spinach::FeatureSteps
   include SharedPaths
   include SharedProject
   include SharedUser
-  include WaitForAjax
+  include WaitForRequests
 
   step '"John Doe" is a developer of project "Shop"' do
     project.team << [john_doe, :developer]
@@ -140,7 +140,7 @@ class Spinach::Features::DashboardTodos < Spinach::FeatureSteps
   step 'I should be directed to the corresponding page' do
     page.should have_css('.identifier', text: 'Merge request !1')
     # Merge request page loads and issues a number of Ajax requests
-    wait_for_ajax
+    wait_for_requests
   end
 
   def should_see_todo(position, title, body, state: :pending)
diff --git a/features/steps/group/members.rb b/features/steps/group/members.rb
index b04a7015d4ea03d1a5a3e72fa9194c4d6ba60676..0ab1012660cfe8b0b942b39513fc285b4aafc1a4 100644
--- a/features/steps/group/members.rb
+++ b/features/steps/group/members.rb
@@ -1,5 +1,5 @@
 class Spinach::Features::GroupMembers < Spinach::FeatureSteps
-  include WaitForAjax
+  include WaitForRequests
   include SharedAuthentication
   include SharedPaths
   include SharedGroup
@@ -58,7 +58,7 @@ class Spinach::Features::GroupMembers < Spinach::FeatureSteps
         click_link 'Developer'
       end
 
-      wait_for_ajax
+      wait_for_requests
     end
   end
 
diff --git a/features/steps/group/milestones.rb b/features/steps/group/milestones.rb
index 0b0983f0d0653d2eedea4ab0bcc0e2b9bc43638e..0542b06c0ab0a9a47fdae268cfb26eea7f9a37ce 100644
--- a/features/steps/group/milestones.rb
+++ b/features/steps/group/milestones.rb
@@ -1,5 +1,5 @@
 class Spinach::Features::GroupMilestones < Spinach::FeatureSteps
-  include WaitForAjax
+  include WaitForRequests
   include SharedAuthentication
   include SharedPaths
   include SharedGroup
@@ -91,7 +91,7 @@ class Spinach::Features::GroupMilestones < Spinach::FeatureSteps
   end
 
   step 'I should see the list of labels' do
-    wait_for_ajax
+    wait_for_requests
 
     page.within('#tab-labels') do
       expect(page).to have_content 'bug'
diff --git a/features/steps/project/builds/artifacts.rb b/features/steps/project/builds/artifacts.rb
index 89132ff068f7b4419da31824d24ec11800651839..4b72355b125964014366286fb57e52554a6cc68e 100644
--- a/features/steps/project/builds/artifacts.rb
+++ b/features/steps/project/builds/artifacts.rb
@@ -3,7 +3,7 @@ class Spinach::Features::ProjectBuildsArtifacts < Spinach::FeatureSteps
   include SharedProject
   include SharedBuilds
   include RepoHelpers
-  include WaitForAjax
+  include WaitForRequests
 
   step 'I click artifacts download button' do
     click_link 'Download'
@@ -79,7 +79,7 @@ class Spinach::Features::ProjectBuildsArtifacts < Spinach::FeatureSteps
 
   step 'I click a link to file within build artifacts' do
     page.within('.tree-table') { find_link('ci_artifacts.txt').click }
-    wait_for_ajax
+    wait_for_requests
   end
 
   step 'I see a download link' do
diff --git a/features/steps/project/forked_merge_requests.rb b/features/steps/project/forked_merge_requests.rb
index 29055373a57104e650908cace82f7901214fce92..25514eb9ef2d6e19f67fef99c34f19faca1000a8 100644
--- a/features/steps/project/forked_merge_requests.rb
+++ b/features/steps/project/forked_merge_requests.rb
@@ -4,8 +4,7 @@ class Spinach::Features::ProjectForkedMergeRequests < Spinach::FeatureSteps
   include SharedNote
   include SharedPaths
   include Select2Helper
-  include WaitForVueResource
-  include WaitForAjax
+  include WaitForRequests
 
   step 'I am a member of project "Shop"' do
     @project = ::Project.find_by(name: "Shop")
@@ -34,7 +33,7 @@ class Spinach::Features::ProjectForkedMergeRequests < Spinach::FeatureSteps
     expect(page).to have_content @merge_request.source_branch
     expect(page).to have_content @merge_request.target_branch
 
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   step 'I fill out a "Merge Request On Forked Project" merge request' do
@@ -48,7 +47,7 @@ class Spinach::Features::ProjectForkedMergeRequests < Spinach::FeatureSteps
     first('.dropdown-target-project a', text: @project.path_with_namespace)
 
     first('.js-source-branch').click
-    wait_for_ajax
+    wait_for_requests
     first('.dropdown-source-branch .dropdown-content a', text: 'fix').click
 
     click_button "Compare branches and continue"
diff --git a/features/steps/project/merge_requests.rb b/features/steps/project/merge_requests.rb
index caf3616489106b067eda49068539866f07570f3e..54b6352c95200f88c86935bfc6679e2dd46c1d56 100644
--- a/features/steps/project/merge_requests.rb
+++ b/features/steps/project/merge_requests.rb
@@ -7,11 +7,10 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
   include SharedMarkdown
   include SharedDiffNote
   include SharedUser
-  include WaitForAjax
-  include WaitForVueResource
+  include WaitForRequests
 
   after do
-    wait_for_ajax if javascript_test?
+    wait_for_requests if javascript_test?
   end
 
   step 'I click link "New Merge Request"' do
@@ -46,23 +45,23 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
     page.within '.merge-request' do
       expect(page).to have_content "Wiki Feature"
     end
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   step 'I should see closed merge request "Bug NS-04"' do
     expect(page).to have_content "Bug NS-04"
     expect(page).to have_content "Closed by"
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   step 'I should see merge request "Bug NS-04"' do
     expect(page).to have_content "Bug NS-04"
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   step 'I should see merge request "Feature NS-05"' do
     expect(page).to have_content "Feature NS-05"
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   step 'I should not see "master" branch' do
@@ -99,7 +98,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
 
   step 'I click button "Unsubscribe"' do
     click_on "Unsubscribe"
-    wait_for_ajax
+    wait_for_requests
   end
 
   step 'I click link "Close"' do
@@ -353,7 +352,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
   step 'I should see a discussion by user "John Doe" has started on diff' do
     # Trigger a refresh of notes
     execute_script("$(document).trigger('visibilitychange');")
-    wait_for_ajax
+    wait_for_requests
     page.within(".notes .discussion") do
       page.should have_content "#{user_exists("John Doe").name} #{user_exists("John Doe").to_reference} started a discussion"
       page.should have_content sample_commit.line_code_path
@@ -363,12 +362,12 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
 
   step 'I should see a badge of "1" next to the discussion link' do
     expect_discussion_badge_to_have_counter("1")
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   step 'I should see a badge of "0" next to the discussion link' do
     expect_discussion_badge_to_have_counter("0")
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   step 'I should see a discussion has started on commit diff' do
@@ -376,7 +375,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
       page.should have_content "#{current_user.name} #{current_user.to_reference} started a discussion on commit"
       page.should have_content sample_commit.line_code_path
       page.should have_content "Line is wrong"
-      wait_for_vue_resource
+      wait_for_requests
     end
   end
 
@@ -384,7 +383,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
     page.within(".notes .discussion") do
       page.should have_content "#{current_user.name} #{current_user.to_reference} started a discussion on commit"
       page.should have_content "One comment to rule them all"
-      wait_for_vue_resource
+      wait_for_requests
     end
   end
 
@@ -410,7 +409,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
   step 'I should see merged request' do
     page.within '.status-box' do
       expect(page).to have_content "Merged"
-      wait_for_vue_resource
+      wait_for_requests
     end
   end
 
@@ -422,7 +421,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
     page.within '.status-box' do
       expect(page).to have_content "Open"
     end
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   step 'I click link "Hide inline discussion" of the third file' do
@@ -446,7 +445,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
   step 'I should see a comment like "Line is wrong" in the third file' do
     page.within '.files>div:nth-child(3) .note-body > .note-text' do
       expect(page).to have_visible_content "Line is wrong"
-      wait_for_vue_resource
+      wait_for_requests
     end
   end
 
@@ -470,7 +469,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
       click_button "Comment"
     end
 
-    wait_for_ajax
+    wait_for_requests
 
     page.within ".files>div:nth-child(2) .note-body > .note-text" do
       expect(page).to have_content "Line is correct"
@@ -485,7 +484,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
       click_button "Comment"
     end
 
-    wait_for_ajax
+    wait_for_requests
   end
 
   step 'I should still see a comment like "Line is correct" in the second file' do
@@ -514,7 +513,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
   step 'I should see comments on the side-by-side diff page' do
     page.within '.files>div:nth-child(2) .parallel .note-body > .note-text' do
       expect(page).to have_visible_content "Line is correct"
-      wait_for_vue_resource
+      wait_for_requests
     end
   end
 
@@ -538,7 +537,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
   step 'I should see new target branch changes' do
     expect(page).to have_content 'Request to merge fix into feature'
     expect(page).to have_content 'changed target branch from merge-test to feature'
-    wait_for_ajax
+    wait_for_requests
   end
 
   step 'I click on "Email Patches"' do
@@ -578,7 +577,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
       expect(page).to have_content /([0-9]+ commits behind)/
     end
 
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   step 'I should not see the diverged commits count' do
@@ -586,7 +585,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
       expect(page).not_to have_content /([0-9]+ commit[s]? behind)/
     end
 
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   def merge_request
@@ -603,7 +602,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
       click_button "Comment"
     end
 
-    wait_for_ajax
+    wait_for_requests
 
     page.within(".notes_holder", visible: true) do
       expect(page).to have_content message
diff --git a/features/steps/project/merge_requests/acceptance.rb b/features/steps/project/merge_requests/acceptance.rb
index 3c976f675a26e0dce00a6b6c83343a64ee3126d8..023f9bef8e570fb969d0cd15362c8b0109d42913 100644
--- a/features/steps/project/merge_requests/acceptance.rb
+++ b/features/steps/project/merge_requests/acceptance.rb
@@ -1,7 +1,7 @@
 class Spinach::Features::ProjectMergeRequestsAcceptance < Spinach::FeatureSteps
   include LoginHelpers
   include GitlabRoutingHelper
-  include WaitForVueResource
+  include WaitForRequests
 
   step 'I am on the Merge Request detail page' do
     visit merge_request_path(@merge_request)
@@ -24,7 +24,7 @@ class Spinach::Features::ProjectMergeRequestsAcceptance < Spinach::FeatureSteps
 
     # Wait for View Resource requests to complete so they don't blow up if they are
     # only handled after `DatabaseCleaner` has already run
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   step 'I should not see the Remove Source Branch button' do
@@ -32,7 +32,7 @@ class Spinach::Features::ProjectMergeRequestsAcceptance < Spinach::FeatureSteps
 
     # Wait for View Resource requests to complete so they don't blow up if they are
     # only handled after `DatabaseCleaner` has already run
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   step 'There is an open Merge Request' do
diff --git a/features/steps/project/merge_requests/revert.rb b/features/steps/project/merge_requests/revert.rb
index aa76d6f8c48435b699afc23df5948873fb38975b..98d990f112f9d6e19a96d3c62b1083755f0cbbfd 100644
--- a/features/steps/project/merge_requests/revert.rb
+++ b/features/steps/project/merge_requests/revert.rb
@@ -1,7 +1,7 @@
 class Spinach::Features::RevertMergeRequests < Spinach::FeatureSteps
   include LoginHelpers
   include GitlabRoutingHelper
-  include WaitForVueResource
+  include WaitForRequests
 
   step 'I click on the revert button' do
     find("a[href='#modal-revert-commit']").click
@@ -16,7 +16,7 @@ class Spinach::Features::RevertMergeRequests < Spinach::FeatureSteps
 
   step 'I should see the revert merge request notice' do
     page.should have_content('The merge request has been successfully reverted.')
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   step 'I should not see the revert button' do
diff --git a/features/steps/project/project.rb b/features/steps/project/project.rb
index 9c2196a8ef71057f0608c9a0b1568f4df8c28182..de32c9afcca3e67234822eda1dfcacf299ce58f1 100644
--- a/features/steps/project/project.rb
+++ b/features/steps/project/project.rb
@@ -2,7 +2,7 @@ class Spinach::Features::Project < Spinach::FeatureSteps
   include SharedAuthentication
   include SharedProject
   include SharedPaths
-  include WaitForAjax
+  include WaitForRequests
 
   step 'change project settings' do
     fill_in 'project_name_edit', with: 'NewName'
@@ -87,7 +87,7 @@ class Spinach::Features::Project < Spinach::FeatureSteps
   end
 
   step 'I should see project "Shop" README' do
-    wait_for_ajax
+    wait_for_requests
     page.within('.readme-holder') do
       expect(page).to have_content 'testme'
     end
diff --git a/features/steps/project/project_milestone.rb b/features/steps/project/project_milestone.rb
index dc1190b7eea913648a37e9cf64afb65dfdf548a0..a7d3352b8c4507ef1171ac016dd4ccdb22b3f6a6 100644
--- a/features/steps/project/project_milestone.rb
+++ b/features/steps/project/project_milestone.rb
@@ -2,7 +2,7 @@ class Spinach::Features::ProjectMilestone < Spinach::FeatureSteps
   include SharedAuthentication
   include SharedProject
   include SharedPaths
-  include WaitForAjax
+  include WaitForRequests
 
   step 'milestone has issue "Bugfix1" with labels: "bug", "feature"' do
     project = Project.find_by(name: "Shop")
@@ -35,7 +35,7 @@ class Spinach::Features::ProjectMilestone < Spinach::FeatureSteps
   end
 
   step 'I should see the labels "bug", "enhancement" and "feature"' do
-    wait_for_ajax
+    wait_for_requests
 
     page.within('#tab-issues') do
       expect(page).to have_content 'bug'
diff --git a/features/steps/project/snippets.rb b/features/steps/project/snippets.rb
index 60febd201045ec17948859707ebc17aa71e561c9..e3f5e9e3ef391a56b3057fbeb58e3a37c9c41b88 100644
--- a/features/steps/project/snippets.rb
+++ b/features/steps/project/snippets.rb
@@ -3,7 +3,7 @@ class Spinach::Features::ProjectSnippets < Spinach::FeatureSteps
   include SharedProject
   include SharedNote
   include SharedPaths
-  include WaitForAjax
+  include WaitForRequests
 
   step 'project "Shop" have "Snippet one" snippet' do
     create(:project_snippet,
@@ -59,7 +59,7 @@ class Spinach::Features::ProjectSnippets < Spinach::FeatureSteps
       find('.ace_editor').native.send_keys 'Content of snippet three'
     end
     click_button "Create snippet"
-    wait_for_ajax
+    wait_for_requests
   end
 
   step 'I should see snippet "Snippet three"' do
@@ -81,7 +81,7 @@ class Spinach::Features::ProjectSnippets < Spinach::FeatureSteps
       fill_in "note_note", with: "Good snippet!"
       click_button "Comment"
     end
-    wait_for_ajax
+    wait_for_requests
   end
 
   step 'I should see comment "Good snippet!"' do
diff --git a/features/steps/project/source/browse_files.rb b/features/steps/project/source/browse_files.rb
index ef09bddddd86beca526fc5e27b15f5705033126e..6efd4374b3216c872a315b665d3befc6bcf4ada7 100644
--- a/features/steps/project/source/browse_files.rb
+++ b/features/steps/project/source/browse_files.rb
@@ -4,7 +4,7 @@ class Spinach::Features::ProjectSourceBrowseFiles < Spinach::FeatureSteps
   include SharedProject
   include SharedPaths
   include RepoHelpers
-  include WaitForAjax
+  include WaitForRequests
 
   step "I don't have write access" do
     @project = create(:project, :repository, name: "Other Project", path: "other-project")
@@ -37,12 +37,12 @@ class Spinach::Features::ProjectSourceBrowseFiles < Spinach::FeatureSteps
   end
 
   step 'I should see its content' do
-    wait_for_ajax
+    wait_for_requests
     expect(page).to have_content old_gitignore_content
   end
 
   step 'I should see its new content' do
-    wait_for_ajax
+    wait_for_requests
     expect(page).to have_content new_gitignore_content
   end
 
diff --git a/features/steps/project/source/markdown_render.rb b/features/steps/project/source/markdown_render.rb
index ada0ff20585be5cbe52da5b65fe578609aa5b374..0fee158d590b381bfb837462effd8b6f0bad680b 100644
--- a/features/steps/project/source/markdown_render.rb
+++ b/features/steps/project/source/markdown_render.rb
@@ -5,7 +5,7 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
   include SharedAuthentication
   include SharedPaths
   include SharedMarkdown
-  include WaitForAjax
+  include WaitForRequests
 
   step 'I own project "Delta"' do
     @project = ::Project.find_by(name: "Delta")
@@ -35,7 +35,7 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
 
   step 'I should see correct document rendered' do
     expect(current_path).to eq namespace_project_blob_path(@project.namespace, @project, "markdown/doc/api/README.md")
-    wait_for_ajax
+    wait_for_requests
     expect(page).to have_content "All API requests require authentication"
   end
 
@@ -65,7 +65,7 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
 
   step 'I should see correct maintenance file rendered' do
     expect(current_path).to eq namespace_project_blob_path(@project.namespace, @project, "markdown/doc/raketasks/maintenance.md")
-    wait_for_ajax
+    wait_for_requests
     expect(page).to have_content "bundle exec rake gitlab:env:info RAILS_ENV=production"
   end
 
@@ -97,7 +97,7 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
 
   step 'I see correct file rendered' do
     expect(current_path).to eq namespace_project_blob_path(@project.namespace, @project, "markdown/doc/api/README.md")
-    wait_for_ajax
+    wait_for_requests
     expect(page).to have_content "Contents"
     expect(page).to have_link "Users"
     expect(page).to have_link "Rake tasks"
@@ -120,7 +120,7 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
 
   When 'I visit markdown branch' do
     visit namespace_project_tree_path(@project.namespace, @project, "markdown")
-    wait_for_ajax
+    wait_for_requests
   end
 
   When 'I visit markdown branch "README.md" blob' do
@@ -143,7 +143,7 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
 
   step 'I see correct file rendered in markdown branch' do
     expect(current_path).to eq namespace_project_blob_path(@project.namespace, @project, "markdown/doc/api/README.md")
-    wait_for_ajax
+    wait_for_requests
     expect(page).to have_content "Contents"
     expect(page).to have_link "Users"
     expect(page).to have_link "Rake tasks"
@@ -151,7 +151,7 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
 
   step 'I should see correct document rendered for markdown branch' do
     expect(current_path).to eq namespace_project_blob_path(@project.namespace, @project, "markdown/doc/api/README.md")
-    wait_for_ajax
+    wait_for_requests
     expect(page).to have_content "All API requests require authentication"
   end
 
@@ -169,7 +169,7 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
   # Expected link contents
 
   step 'The link with text "empty" should have url "tree/markdown"' do
-    wait_for_ajax
+    wait_for_requests
     find('a', text: /^empty$/)['href'] == current_host + namespace_project_tree_path(@project.namespace, @project, "markdown")
   end
 
@@ -205,7 +205,7 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
   end
 
   step 'The link with text "ID" should have url "blob/markdown/README.mdID"' do
-    wait_for_ajax
+    wait_for_requests
     find('a', text: /^#id$/)['href'] == current_host + namespace_project_blob_path(@project.namespace, @project, "markdown/README.md") + '#id'
   end
 
@@ -300,12 +300,12 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
 
   step 'I should see the correct markdown' do
     expect(current_path).to eq namespace_project_blob_path(@project.namespace, @project, "markdown/doc/api/users.md")
-    wait_for_ajax
+    wait_for_requests
     expect(page).to have_content "List users"
   end
 
   step 'Header "Application details" should have correct id and link' do
-    wait_for_ajax
+    wait_for_requests
     header_should_have_correct_id_and_link(2, 'Application details', 'application-details')
   end
 
diff --git a/features/steps/shared/active_tab.rb b/features/steps/shared/active_tab.rb
index 8bae80a870788905d1b26f0a82f2e41c620e97ee..af5db05e9e86bfdb0491aeb542f7f65b96a4eeba 100644
--- a/features/steps/shared/active_tab.rb
+++ b/features/steps/shared/active_tab.rb
@@ -1,9 +1,9 @@
 module SharedActiveTab
   include Spinach::DSL
-  include WaitForAjax
+  include WaitForRequests
 
   after do
-    wait_for_ajax if javascript_test?
+    wait_for_requests if javascript_test?
   end
 
   def ensure_active_main_tab(content)
diff --git a/features/steps/shared/diff_note.rb b/features/steps/shared/diff_note.rb
index 071aa2e3eff7d8a0dc7d0eb13322cd30fac2548b..36fc315599e3b99bfd19b741898304bc54bad988 100644
--- a/features/steps/shared/diff_note.rb
+++ b/features/steps/shared/diff_note.rb
@@ -1,10 +1,10 @@
 module SharedDiffNote
   include Spinach::DSL
   include RepoHelpers
-  include WaitForAjax
+  include WaitForRequests
 
   after do
-    wait_for_ajax if javascript_test?
+    wait_for_requests if javascript_test?
   end
 
   step 'I cancel the diff comment' do
diff --git a/features/steps/shared/note.rb b/features/steps/shared/note.rb
index 7d260025052cf6363a63ba7840b83637a612921e..44eb8f321dd3e79acdf54c07e1717f1c2f6c1ed8 100644
--- a/features/steps/shared/note.rb
+++ b/features/steps/shared/note.rb
@@ -1,9 +1,9 @@
 module SharedNote
   include Spinach::DSL
-  include WaitForAjax
+  include WaitForRequests
 
   after do
-    wait_for_ajax if javascript_test?
+    wait_for_requests if javascript_test?
   end
 
   step 'I delete a comment' do
@@ -25,7 +25,7 @@ module SharedNote
       click_button "Comment"
     end
 
-    wait_for_ajax
+    wait_for_requests
   end
 
   step 'I preview a comment text like "Bug fixed :smile:"' do
@@ -40,7 +40,7 @@ module SharedNote
       click_button "Comment"
     end
 
-    wait_for_ajax
+    wait_for_requests
   end
 
   step 'I write a comment like ":+1: Nice"' do
@@ -127,7 +127,7 @@ module SharedNote
       click_button "Comment"
     end
 
-    wait_for_ajax
+    wait_for_requests
   end
 
   step 'The comment with the header should not have an ID' do
diff --git a/features/steps/shared/paths.rb b/features/steps/shared/paths.rb
index bef3eac4d264ff8d56ebb4ae42c4dee25b09c4c5..f0e751b820a77f414b54dd8032b0bbd9e5870d0e 100644
--- a/features/steps/shared/paths.rb
+++ b/features/steps/shared/paths.rb
@@ -2,7 +2,7 @@ module SharedPaths
   include Spinach::DSL
   include RepoHelpers
   include DashboardHelper
-  include WaitForVueResource
+  include WaitForRequests
 
   step 'I visit new project page' do
     visit new_project_path
@@ -378,28 +378,28 @@ module SharedPaths
 
   step 'I visit merge request page "Bug NS-04"' do
     visit merge_request_path("Bug NS-04")
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   step 'I visit merge request page "Bug NS-05"' do
     visit merge_request_path("Bug NS-05")
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   step 'I visit merge request page "Bug NS-07"' do
     visit merge_request_path("Bug NS-07")
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   step 'I visit merge request page "Bug NS-08"' do
     visit merge_request_path("Bug NS-08")
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   step 'I visit merge request page "Bug CO-01"' do
     mr = MergeRequest.find_by(title: "Bug CO-01")
     visit namespace_project_merge_request_path(mr.target_project.namespace, mr.target_project, mr)
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   step 'I visit project "Shop" merge requests page' do
diff --git a/features/steps/snippets/snippets.rb b/features/steps/snippets/snippets.rb
index 0b3e942a4fd3cad4b152ba73802a08de718aaf64..a4fc77746ee387069b9407ad709da75c447af5e0 100644
--- a/features/steps/snippets/snippets.rb
+++ b/features/steps/snippets/snippets.rb
@@ -3,7 +3,7 @@ class Spinach::Features::Snippets < Spinach::FeatureSteps
   include SharedPaths
   include SharedProject
   include SharedSnippet
-  include WaitForAjax
+  include WaitForRequests
 
   step 'I click link "Personal snippet one"' do
     click_link "Personal snippet one"
@@ -30,7 +30,7 @@ class Spinach::Features::Snippets < Spinach::FeatureSteps
       find('.ace_editor').native.send_keys 'Content of snippet three'
     end
     click_button "Create snippet"
-    wait_for_ajax
+    wait_for_requests
   end
 
   step 'I submit new internal snippet' do
diff --git a/features/support/env.rb b/features/support/env.rb
index 23a1f702068a536b2f0eb06a8e176bf6ac97b9fa..1690465d9b29fee5ce40846ea98908ed1f9908c6 100644
--- a/features/support/env.rb
+++ b/features/support/env.rb
@@ -10,7 +10,7 @@ if ENV['CI']
   Knapsack::Adapters::SpinachAdapter.bind
 end
 
-%w(select2_helper test_env repo_helpers wait_for_ajax wait_for_requests sidekiq wait_for_vue_resource).each do |f|
+%w(select2_helper test_env repo_helpers wait_for_requests sidekiq).each do |f|
   require Rails.root.join('spec', 'support', f)
 end
 
@@ -33,7 +33,7 @@ end
 Spinach.hooks.after_scenario do |scenario_data, step_definitions|
   if scenario_data.tags.include?('javascript')
     include WaitForRequests
-    wait_for_requests_complete
+    block_and_wait_for_requests_complete
   end
 end
 
diff --git a/spec/features/admin/admin_labels_spec.rb b/spec/features/admin/admin_labels_spec.rb
index fa3d9ee25c02516d5cb2a9a306fedd1868797fd4..a9251db13e543b7ad2dd8ccb2ed8f4a13d187ac9 100644
--- a/spec/features/admin/admin_labels_spec.rb
+++ b/spec/features/admin/admin_labels_spec.rb
@@ -34,11 +34,11 @@ RSpec.describe 'admin issues labels' do
       page.within '.labels' do
         page.all('.btn-remove').each do |remove|
           remove.click
-          wait_for_ajax
+          wait_for_requests
         end
       end
 
-      wait_for_ajax
+      wait_for_requests
 
       expect(page).to have_content("There are no labels yet")
       expect(page).not_to have_content('bug')
diff --git a/spec/features/admin/admin_users_spec.rb b/spec/features/admin/admin_users_spec.rb
index c5b1ef1295cb6e56063c6e43792741119e0e40f8..12cf59f42b0b544d630393fa6763212bb9136570 100644
--- a/spec/features/admin/admin_users_spec.rb
+++ b/spec/features/admin/admin_users_spec.rb
@@ -277,7 +277,7 @@ describe "Admin::Users", feature: true do
       page.within(first('.group_member')) do
         find('.btn-remove').click
       end
-      wait_for_ajax
+      wait_for_requests
 
       expect(page).not_to have_selector('.group_member')
     end
diff --git a/spec/features/auto_deploy_spec.rb b/spec/features/auto_deploy_spec.rb
index 6c7423e4922b8e1dda58329a4d623df5700e527c..1cf7396bbaca1f9b5a97cf09d4799caf3ae684c0 100644
--- a/spec/features/auto_deploy_spec.rb
+++ b/spec/features/auto_deploy_spec.rb
@@ -46,7 +46,7 @@ describe 'Auto deploy' do
       within '.gitlab-ci-yml-selector' do
         click_on 'OpenShift'
       end
-      wait_for_ajax
+      wait_for_requests
       click_button 'Commit changes'
 
       expect(page).to have_content('New Merge Request From auto-deploy into master')
diff --git a/spec/features/boards/add_issues_modal_spec.rb b/spec/features/boards/add_issues_modal_spec.rb
index 505e0b5c3552ef078cd780a7aabd66d706d8c9df..32ac265814f439e49ba8af2c67620d69670497d3 100644
--- a/spec/features/boards/add_issues_modal_spec.rb
+++ b/spec/features/boards/add_issues_modal_spec.rb
@@ -1,8 +1,6 @@
 require 'rails_helper'
 
 describe 'Issue Boards add issue modal', :feature, :js do
-  include WaitForVueResource
-
   let(:project) { create(:empty_project, :public) }
   let(:board) { create(:board, project: project) }
   let(:user) { create(:user) }
@@ -19,13 +17,13 @@ describe 'Issue Boards add issue modal', :feature, :js do
     login_as(user)
 
     visit namespace_project_board_path(project.namespace, project, board)
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   it 'resets filtered search state' do
     visit namespace_project_board_path(project.namespace, project, board, search: 'testing')
 
-    wait_for_vue_resource
+    wait_for_requests
 
     click_button('Add issues')
 
@@ -74,7 +72,7 @@ describe 'Issue Boards add issue modal', :feature, :js do
     before do
       click_button('Add issues')
 
-      wait_for_vue_resource
+      wait_for_requests
     end
 
     it 'loads issues' do
@@ -107,7 +105,7 @@ describe 'Issue Boards add issue modal', :feature, :js do
 
         click_button('Add issues')
 
-        wait_for_vue_resource
+        wait_for_requests
 
         page.within('.add-issues-modal') do
           expect(find('.add-issues-footer')).not_to have_button(planning.title)
@@ -122,7 +120,7 @@ describe 'Issue Boards add issue modal', :feature, :js do
           find('.form-control').native.send_keys(issue.title)
           find('.form-control').native.send_keys(:enter)
 
-          wait_for_vue_resource
+          wait_for_requests
 
           expect(page).to have_selector('.card', count: 1)
         end
@@ -133,7 +131,7 @@ describe 'Issue Boards add issue modal', :feature, :js do
           find('.form-control').native.send_keys('testing search')
           find('.form-control').native.send_keys(:enter)
 
-          wait_for_vue_resource
+          wait_for_requests
 
           expect(page).not_to have_selector('.card')
           expect(page).not_to have_content("You haven't added any issues to your project yet")
diff --git a/spec/features/boards/boards_spec.rb b/spec/features/boards/boards_spec.rb
index 18585488e2660fcff24843159755e9ffaf1030dc..ba27db23ced7ef1e00b771f95029ea0252d29835 100644
--- a/spec/features/boards/boards_spec.rb
+++ b/spec/features/boards/boards_spec.rb
@@ -1,7 +1,6 @@
 require 'rails_helper'
 
 describe 'Issue Boards', feature: true, js: true do
-  include WaitForVueResource
   include DragTo
 
   let(:project) { create(:empty_project, :public) }
@@ -19,7 +18,7 @@ describe 'Issue Boards', feature: true, js: true do
   context 'no lists' do
     before do
       visit namespace_project_board_path(project.namespace, project, board)
-      wait_for_vue_resource
+      wait_for_requests
       expect(page).to have_selector('.board', count: 2)
     end
 
@@ -46,7 +45,7 @@ describe 'Issue Boards', feature: true, js: true do
       page.within(find('.board-blank-state')) do
         click_button('Add default lists')
       end
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(page).to have_selector('.board', count: 3)
 
@@ -84,7 +83,7 @@ describe 'Issue Boards', feature: true, js: true do
     before do
       visit namespace_project_board_path(project.namespace, project, board)
 
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(page).to have_selector('.board', count: 3)
       expect(find('.board:nth-child(1)')).to have_selector('.card')
@@ -117,7 +116,7 @@ describe 'Issue Boards', feature: true, js: true do
       find('.filtered-search').set(issue8.title)
       find('.filtered-search').native.send_keys(:enter)
 
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(find('.board:nth-child(1)')).to have_selector('.card', count: 0)
       expect(find('.board:nth-child(2)')).to have_selector('.card', count: 0)
@@ -128,7 +127,7 @@ describe 'Issue Boards', feature: true, js: true do
       find('.filtered-search').set(issue5.title)
       find('.filtered-search').native.send_keys(:enter)
 
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(find('.board:nth-child(1)')).to have_selector('.card', count: 1)
       expect(find('.board:nth-child(2)')).to have_selector('.card', count: 0)
@@ -140,20 +139,20 @@ describe 'Issue Boards', feature: true, js: true do
         find('.board-delete').click
       end
 
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(page).to have_selector('.board', count: 2)
     end
 
     it 'removes checkmark in new list dropdown after deleting' do
       click_button 'Add list'
-      wait_for_ajax
+      wait_for_requests
 
       page.within(find('.board:nth-child(1)')) do
         find('.board-delete').click
       end
 
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(page).to have_selector('.board', count: 2)
     end
@@ -164,7 +163,7 @@ describe 'Issue Boards', feature: true, js: true do
       end
 
       visit namespace_project_board_path(project.namespace, project, board)
-      wait_for_vue_resource
+      wait_for_requests
 
       page.within(find('.board', match: :first)) do
         expect(page.find('.board-header')).to have_content('58')
@@ -172,13 +171,13 @@ describe 'Issue Boards', feature: true, js: true do
         expect(page).to have_content('Showing 20 of 58 issues')
 
         evaluate_script("document.querySelectorAll('.board .board-list')[0].scrollTop = document.querySelectorAll('.board .board-list')[0].scrollHeight")
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_selector('.card', count: 40)
         expect(page).to have_content('Showing 40 of 58 issues')
 
         evaluate_script("document.querySelectorAll('.board .board-list')[0].scrollTop = document.querySelectorAll('.board .board-list')[0].scrollHeight")
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_selector('.card', count: 58)
         expect(page).to have_content('Showing all issues')
@@ -188,7 +187,7 @@ describe 'Issue Boards', feature: true, js: true do
     context 'closed' do
       it 'shows list of closed issues' do
         wait_for_board_cards(3, 1)
-        wait_for_ajax
+        wait_for_requests
       end
 
       it 'moves issue to closed' do
@@ -272,7 +271,7 @@ describe 'Issue Boards', feature: true, js: true do
       context 'new list' do
         it 'shows all labels in new list dropdown' do
           click_button 'Add list'
-          wait_for_ajax
+          wait_for_requests
 
           page.within('.dropdown-menu-issues-board-new') do
             expect(page).to have_content(planning.title)
@@ -283,52 +282,52 @@ describe 'Issue Boards', feature: true, js: true do
 
         it 'creates new list for label' do
           click_button 'Add list'
-          wait_for_ajax
+          wait_for_requests
 
           page.within('.dropdown-menu-issues-board-new') do
             click_link testing.title
           end
 
-          wait_for_vue_resource
+          wait_for_requests
 
           expect(page).to have_selector('.board', count: 4)
         end
 
         it 'creates new list for Backlog label' do
           click_button 'Add list'
-          wait_for_ajax
+          wait_for_requests
 
           page.within('.dropdown-menu-issues-board-new') do
             click_link backlog.title
           end
 
-          wait_for_vue_resource
+          wait_for_requests
 
           expect(page).to have_selector('.board', count: 4)
         end
 
         it 'creates new list for Closed label' do
           click_button 'Add list'
-          wait_for_ajax
+          wait_for_requests
 
           page.within('.dropdown-menu-issues-board-new') do
             click_link closed.title
           end
 
-          wait_for_vue_resource
+          wait_for_requests
 
           expect(page).to have_selector('.board', count: 4)
         end
 
         it 'keeps dropdown open after adding new list' do
           click_button 'Add list'
-          wait_for_ajax
+          wait_for_requests
 
           page.within('.dropdown-menu-issues-board-new') do
             click_link closed.title
           end
 
-          wait_for_vue_resource
+          wait_for_requests
 
           expect(page).to have_css('#js-add-list.open')
         end
@@ -336,7 +335,7 @@ describe 'Issue Boards', feature: true, js: true do
         it 'creates new list from a new label' do
           click_button 'Add list'
 
-          wait_for_ajax
+          wait_for_requests
 
           click_link 'Create new label'
 
@@ -346,8 +345,8 @@ describe 'Issue Boards', feature: true, js: true do
 
           click_button 'Create'
 
-          wait_for_ajax
-          wait_for_vue_resource
+          wait_for_requests
+          wait_for_requests
 
           expect(page).to have_selector('.board', count: 4)
         end
@@ -360,7 +359,7 @@ describe 'Issue Boards', feature: true, js: true do
         click_filter_link(user2.username)
         submit_filter
 
-        wait_for_vue_resource
+        wait_for_requests
         wait_for_board_cards(1, 1)
         wait_for_empty_boards((2..3))
       end
@@ -370,7 +369,7 @@ describe 'Issue Boards', feature: true, js: true do
         click_filter_link(user.username)
         submit_filter
 
-        wait_for_vue_resource
+        wait_for_requests
 
         wait_for_board_cards(1, 1)
         wait_for_empty_boards((2..3))
@@ -381,7 +380,7 @@ describe 'Issue Boards', feature: true, js: true do
         click_filter_link(milestone.title)
         submit_filter
 
-        wait_for_vue_resource
+        wait_for_requests
         wait_for_board_cards(1, 1)
         wait_for_board_cards(2, 0)
         wait_for_board_cards(3, 0)
@@ -392,7 +391,7 @@ describe 'Issue Boards', feature: true, js: true do
         click_filter_link(testing.title)
         submit_filter
 
-        wait_for_vue_resource
+        wait_for_requests
         wait_for_board_cards(1, 1)
         wait_for_empty_boards((2..3))
       end
@@ -407,7 +406,7 @@ describe 'Issue Boards', feature: true, js: true do
         wait_for_board_cards(1, 1)
         wait_for_empty_boards((2..3))
 
-        wait_for_vue_resource
+        wait_for_requests
 
         page.within(find('.board', match: :first)) do
           expect(page.find('.board-header')).to have_content('1')
@@ -442,7 +441,7 @@ describe 'Issue Boards', feature: true, js: true do
         click_filter_link(testing.title)
         submit_filter
 
-        wait_for_vue_resource
+        wait_for_requests
 
         page.within(find('.board', match: :first)) do
           expect(page.find('.board-header')).to have_content('51')
@@ -470,7 +469,7 @@ describe 'Issue Boards', feature: true, js: true do
 
         submit_filter
 
-        wait_for_vue_resource
+        wait_for_requests
 
         wait_for_board_cards(1, 1)
         wait_for_empty_boards((2..3))
@@ -481,14 +480,14 @@ describe 'Issue Boards', feature: true, js: true do
           expect(page).to have_selector('.card', count: 8)
           expect(find('.card', match: :first)).to have_content(bug.title)
           click_button(bug.title)
-          wait_for_vue_resource
+          wait_for_requests
         end
 
         page.within('.tokens-container') do
           expect(page).to have_content(bug.title)
         end
 
-        wait_for_vue_resource
+        wait_for_requests
 
         wait_for_board_cards(1, 1)
         wait_for_empty_boards((2..3))
@@ -500,12 +499,12 @@ describe 'Issue Boards', feature: true, js: true do
             click_button(bug.title)
           end
 
-          wait_for_vue_resource
+          wait_for_requests
 
           expect(page).to have_selector('.card', count: 1)
         end
 
-        wait_for_vue_resource
+        wait_for_requests
       end
     end
   end
@@ -513,7 +512,7 @@ describe 'Issue Boards', feature: true, js: true do
   context 'keyboard shortcuts' do
     before do
       visit namespace_project_board_path(project.namespace, project, board)
-      wait_for_vue_resource
+      wait_for_requests
     end
 
     it 'allows user to use keyboard shortcuts' do
@@ -526,7 +525,7 @@ describe 'Issue Boards', feature: true, js: true do
     before do
       logout
       visit namespace_project_board_path(project.namespace, project, board)
-      wait_for_vue_resource
+      wait_for_requests
     end
 
     it 'displays lists' do
@@ -550,7 +549,7 @@ describe 'Issue Boards', feature: true, js: true do
       logout
       login_as(user_guest)
       visit namespace_project_board_path(project.namespace, project, board)
-      wait_for_vue_resource
+      wait_for_requests
     end
 
     it 'does not show create new list' do
diff --git a/spec/features/boards/issue_ordering_spec.rb b/spec/features/boards/issue_ordering_spec.rb
index bfa2a72a2569d3b1ad85d88640feb19dd97d831c..6c40cb2c9eb0c7585de3986004e535151f44dbbe 100644
--- a/spec/features/boards/issue_ordering_spec.rb
+++ b/spec/features/boards/issue_ordering_spec.rb
@@ -1,7 +1,6 @@
 require 'rails_helper'
 
 describe 'Issue Boards', :feature, :js do
-  include WaitForVueResource
   include DragTo
 
   let(:project) { create(:empty_project, :public) }
@@ -24,7 +23,7 @@ describe 'Issue Boards', :feature, :js do
 
     before do
       visit namespace_project_board_path(project.namespace, project, board)
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(page).to have_selector('.board', count: 2)
     end
@@ -38,7 +37,7 @@ describe 'Issue Boards', :feature, :js do
     it 'moves un-ordered issue to top of list' do
       drag(from_index: 3, to_index: 0)
 
-      wait_for_vue_resource
+      wait_for_requests
 
       page.within(first('.board')) do
         expect(first('.card')).to have_content(issue4.title)
@@ -49,7 +48,7 @@ describe 'Issue Boards', :feature, :js do
   context 'ordering in list' do
     before do
       visit namespace_project_board_path(project.namespace, project, board)
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(page).to have_selector('.board', count: 2)
     end
@@ -57,7 +56,7 @@ describe 'Issue Boards', :feature, :js do
     it 'moves from middle to top' do
       drag(from_index: 1, to_index: 0)
 
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(first('.card')).to have_content(issue2.title)
     end
@@ -65,7 +64,7 @@ describe 'Issue Boards', :feature, :js do
     it 'moves from middle to bottom' do
       drag(from_index: 1, to_index: 2)
 
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(all('.card').last).to have_content(issue2.title)
     end
@@ -73,7 +72,7 @@ describe 'Issue Boards', :feature, :js do
     it 'moves from top to bottom' do
       drag(from_index: 0, to_index: 2)
 
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(all('.card').last).to have_content(issue3.title)
     end
@@ -81,7 +80,7 @@ describe 'Issue Boards', :feature, :js do
     it 'moves from bottom to top' do
       drag(from_index: 2, to_index: 0)
 
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(first('.card')).to have_content(issue1.title)
     end
@@ -89,7 +88,7 @@ describe 'Issue Boards', :feature, :js do
     it 'moves from top to middle' do
       drag(from_index: 0, to_index: 1)
 
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(first('.card')).to have_content(issue2.title)
     end
@@ -97,7 +96,7 @@ describe 'Issue Boards', :feature, :js do
     it 'moves from bottom to middle' do
       drag(from_index: 2, to_index: 1)
 
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(all('.card').last).to have_content(issue2.title)
     end
@@ -112,7 +111,7 @@ describe 'Issue Boards', :feature, :js do
 
     before do
       visit namespace_project_board_path(project.namespace, project, board)
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(page).to have_selector('.board', count: 3)
     end
@@ -120,7 +119,7 @@ describe 'Issue Boards', :feature, :js do
     it 'moves to top of another list' do
       drag(list_from_index: 0, list_to_index: 1)
 
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(first('.board')).to have_selector('.card', count: 2)
       expect(all('.board')[1]).to have_selector('.card', count: 4)
@@ -133,7 +132,7 @@ describe 'Issue Boards', :feature, :js do
     it 'moves to bottom of another list' do
       drag(list_from_index: 0, list_to_index: 1, to_index: 2)
 
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(first('.board')).to have_selector('.card', count: 2)
       expect(all('.board')[1]).to have_selector('.card', count: 4)
@@ -146,7 +145,7 @@ describe 'Issue Boards', :feature, :js do
     it 'moves to index of another list' do
       drag(list_from_index: 0, list_to_index: 1, to_index: 1)
 
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(first('.board')).to have_selector('.card', count: 2)
       expect(all('.board')[1]).to have_selector('.card', count: 4)
diff --git a/spec/features/boards/keyboard_shortcut_spec.rb b/spec/features/boards/keyboard_shortcut_spec.rb
index a9cc6c49f8efd1f65a96d8dca190922dfad53fa6..c2167ba12cd6f4c1723a2fe848456cbebdadd84d 100644
--- a/spec/features/boards/keyboard_shortcut_spec.rb
+++ b/spec/features/boards/keyboard_shortcut_spec.rb
@@ -1,8 +1,6 @@
 require 'rails_helper'
 
 describe 'Issue Boards shortcut', feature: true, js: true do
-  include WaitForVueResource
-
   let(:project) { create(:empty_project) }
 
   before do
@@ -17,6 +15,6 @@ describe 'Issue Boards shortcut', feature: true, js: true do
     find('body').native.send_keys('gb')
     expect(page).to have_selector('.boards-list')
 
-    wait_for_vue_resource
+    wait_for_requests
   end
 end
diff --git a/spec/features/boards/modal_filter_spec.rb b/spec/features/boards/modal_filter_spec.rb
index e1367c675e58bee431bba31f101b2224720dbd00..ce132bfd9793552f3801c4531e4f327d49b6b57f 100644
--- a/spec/features/boards/modal_filter_spec.rb
+++ b/spec/features/boards/modal_filter_spec.rb
@@ -1,8 +1,6 @@
 require 'rails_helper'
 
 describe 'Issue Boards add issue modal filtering', :feature, :js do
-  include WaitForVueResource
-
   let(:project) { create(:empty_project, :public) }
   let(:board) { create(:board, project: project) }
   let(:planning) { create(:label, project: project, name: 'Planning') }
@@ -24,7 +22,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
       find('.form-control').native.send_keys('testing empty state')
       find('.form-control').native.send_keys(:enter)
 
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(page).to have_content('There are no issues to show.')
     end
@@ -38,7 +36,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
     submit_filter
 
     page.within('.add-issues-modal') do
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(page).to have_selector('.card', count: 0)
 
@@ -48,7 +46,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
     click_button('Add issues')
 
     page.within('.add-issues-modal') do
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(page).to have_selector('.card', count: 1)
     end
@@ -62,13 +60,13 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
     submit_filter
 
     page.within('.add-issues-modal') do
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(page).to have_selector('.card', count: 0)
 
       find('.clear-search').click
 
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(page).to have_selector('.card', count: 1)
     end
@@ -89,7 +87,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
       submit_filter
 
       page.within('.add-issues-modal') do
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_selector('.js-visual-token', text: user2.username)
         expect(page).to have_selector('.card', count: 1)
@@ -112,7 +110,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
       submit_filter
 
       page.within('.add-issues-modal') do
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_selector('.js-visual-token', text: 'none')
         expect(page).to have_selector('.card', count: 1)
@@ -125,7 +123,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
       submit_filter
 
       page.within('.add-issues-modal') do
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_selector('.js-visual-token', text: user2.username)
         expect(page).to have_selector('.card', count: 1)
@@ -147,7 +145,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
       submit_filter
 
       page.within('.add-issues-modal') do
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_selector('.js-visual-token', text: 'upcoming')
         expect(page).to have_selector('.card', count: 0)
@@ -160,7 +158,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
       submit_filter
 
       page.within('.add-issues-modal') do
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_selector('.js-visual-token', text: milestone.name)
         expect(page).to have_selector('.card', count: 1)
@@ -182,7 +180,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
       submit_filter
 
       page.within('.add-issues-modal') do
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_selector('.js-visual-token', text: 'none')
         expect(page).to have_selector('.card', count: 1)
@@ -195,7 +193,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
       submit_filter
 
       page.within('.add-issues-modal') do
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_selector('.js-visual-token', text: label.title)
         expect(page).to have_selector('.card', count: 1)
@@ -205,7 +203,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
 
   def visit_board
     visit namespace_project_board_path(project.namespace, project, board)
-    wait_for_vue_resource
+    wait_for_requests
 
     click_button('Add issues')
   end
diff --git a/spec/features/boards/new_issue_spec.rb b/spec/features/boards/new_issue_spec.rb
index f04a1a89e960d4cad37836740bf8c9b45e8448fd..0e98f9940189c28052792577f9a44eb78fc4916b 100644
--- a/spec/features/boards/new_issue_spec.rb
+++ b/spec/features/boards/new_issue_spec.rb
@@ -1,8 +1,6 @@
 require 'rails_helper'
 
 describe 'Issue Boards new issue', feature: true, js: true do
-  include WaitForVueResource
-
   let(:project) { create(:empty_project, :public) }
   let(:board)   { create(:board, project: project) }
   let!(:list)   { create(:list, board: board, position: 0) }
@@ -15,7 +13,7 @@ describe 'Issue Boards new issue', feature: true, js: true do
       login_as(user)
 
       visit namespace_project_board_path(project.namespace, project, board)
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(page).to have_selector('.board', count: 2)
     end
@@ -60,7 +58,7 @@ describe 'Issue Boards new issue', feature: true, js: true do
         click_button 'Submit issue'
       end
 
-      wait_for_vue_resource
+      wait_for_requests
 
       page.within(first('.board .board-issue-count')) do
         expect(page).to have_content('1')
@@ -77,7 +75,7 @@ describe 'Issue Boards new issue', feature: true, js: true do
         click_button 'Submit issue'
       end
 
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(page).to have_selector('.issue-boards-sidebar')
     end
@@ -86,7 +84,7 @@ describe 'Issue Boards new issue', feature: true, js: true do
   context 'unauthorized user' do
     before do
       visit namespace_project_board_path(project.namespace, project, board)
-      wait_for_vue_resource
+      wait_for_requests
     end
 
     it 'does not display new issue button' do
diff --git a/spec/features/boards/sidebar_spec.rb b/spec/features/boards/sidebar_spec.rb
index 4667be49fe617cdcb9ee637e9b5e6ea5e3b1b25e..34f4d76511757ff6bd84ec5f66520573d02ef16d 100644
--- a/spec/features/boards/sidebar_spec.rb
+++ b/spec/features/boards/sidebar_spec.rb
@@ -1,8 +1,6 @@
 require 'rails_helper'
 
 describe 'Issue Boards', feature: true, js: true do
-  include WaitForVueResource
-
   let(:user)         { create(:user) }
   let(:user2)        { create(:user) }
   let(:project)      { create(:empty_project, :public) }
@@ -25,7 +23,7 @@ describe 'Issue Boards', feature: true, js: true do
     login_as(user)
 
     visit namespace_project_board_path(project.namespace, project, board)
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   after do
@@ -74,7 +72,7 @@ describe 'Issue Boards', feature: true, js: true do
       click_button 'Remove from board'
     end
 
-    wait_for_vue_resource
+    wait_for_requests
 
     page.within(first('.board')) do
       expect(page).to have_selector('.card', count: 1)
@@ -88,12 +86,12 @@ describe 'Issue Boards', feature: true, js: true do
       page.within('.assignee') do
         click_link 'Edit'
 
-        wait_for_ajax
+        wait_for_requests
 
         page.within('.dropdown-menu-user') do
           click_link user.name
 
-          wait_for_vue_resource
+          wait_for_requests
         end
 
         expect(page).to have_content(user.name)
@@ -109,13 +107,13 @@ describe 'Issue Boards', feature: true, js: true do
       page.within('.assignee') do
         click_link 'Edit'
 
-        wait_for_ajax
+        wait_for_requests
 
         page.within('.dropdown-menu-user') do
           click_link 'Unassigned'
         end
 
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_content('No assignee')
       end
@@ -131,7 +129,7 @@ describe 'Issue Boards', feature: true, js: true do
 
         click_button 'assign yourself'
 
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_content(user.name)
       end
@@ -145,12 +143,12 @@ describe 'Issue Boards', feature: true, js: true do
       page.within('.assignee') do
         click_link 'Edit'
 
-        wait_for_ajax
+        wait_for_requests
 
         page.within('.dropdown-menu-user') do
           click_link user.name
 
-          wait_for_vue_resource
+          wait_for_requests
         end
 
         expect(page).to have_content(user.name)
@@ -162,7 +160,7 @@ describe 'Issue Boards', feature: true, js: true do
 
       page.within('.assignee') do
         click_link 'Edit'
-    
+
         expect(find('.dropdown-menu')).to have_selector('.is-active')
       end
     end
@@ -175,11 +173,11 @@ describe 'Issue Boards', feature: true, js: true do
       page.within('.milestone') do
         click_link 'Edit'
 
-        wait_for_ajax
+        wait_for_requests
 
         click_link milestone.title
 
-        wait_for_vue_resource
+        wait_for_requests
 
         page.within('.value') do
           expect(page).to have_content(milestone.title)
@@ -193,11 +191,11 @@ describe 'Issue Boards', feature: true, js: true do
       page.within('.milestone') do
         click_link 'Edit'
 
-        wait_for_ajax
+        wait_for_requests
 
         click_link "No Milestone"
 
-        wait_for_vue_resource
+        wait_for_requests
 
         page.within('.value') do
           expect(page).not_to have_content(milestone.title)
@@ -215,7 +213,7 @@ describe 'Issue Boards', feature: true, js: true do
 
         click_button Date.today.day
 
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_content(Date.today.to_s(:medium))
       end
@@ -229,11 +227,11 @@ describe 'Issue Boards', feature: true, js: true do
       page.within('.labels') do
         click_link 'Edit'
 
-        wait_for_ajax
+        wait_for_requests
 
         click_link bug.title
 
-        wait_for_vue_resource
+        wait_for_requests
 
         find('.dropdown-menu-close-icon').click
 
@@ -253,12 +251,12 @@ describe 'Issue Boards', feature: true, js: true do
       page.within('.labels') do
         click_link 'Edit'
 
-        wait_for_ajax
+        wait_for_requests
 
         click_link bug.title
         click_link regression.title
 
-        wait_for_vue_resource
+        wait_for_requests
 
         find('.dropdown-menu-close-icon').click
 
@@ -280,11 +278,11 @@ describe 'Issue Boards', feature: true, js: true do
       page.within('.labels') do
         click_link 'Edit'
 
-        wait_for_ajax
+        wait_for_requests
 
         click_link stretch.title
 
-        wait_for_vue_resource
+        wait_for_requests
 
         find('.dropdown-menu-close-icon').click
 
@@ -305,7 +303,7 @@ describe 'Issue Boards', feature: true, js: true do
 
       page.within('.subscription') do
         click_button 'Subscribe'
-        wait_for_ajax
+        wait_for_requests
         expect(page).to have_content("Unsubscribe")
       end
     end
diff --git a/spec/features/boards/sub_group_project_spec.rb b/spec/features/boards/sub_group_project_spec.rb
index 6cd7fddd28848e8712daad79581b60d1f03dee9b..4cd05010a9326f4d22242df3406159a9e3961893 100644
--- a/spec/features/boards/sub_group_project_spec.rb
+++ b/spec/features/boards/sub_group_project_spec.rb
@@ -1,8 +1,6 @@
 require 'rails_helper'
 
 describe 'Sub-group project issue boards', :feature, :js do
-  include WaitForVueResource
-
   let(:group) { create(:group) }
   let(:nested_group_1) { create(:group, parent: group) }
   let(:project) { create(:empty_project, group: nested_group_1) }
@@ -18,7 +16,7 @@ describe 'Sub-group project issue boards', :feature, :js do
     login_as(user)
 
     visit namespace_project_board_path(project.namespace, project, board)
-    wait_for_vue_resource
+    wait_for_requests
   end
 
   it 'creates new label from sidebar' do
@@ -35,7 +33,7 @@ describe 'Sub-group project issue boards', :feature, :js do
 
       click_button 'Create'
 
-      wait_for_ajax
+      wait_for_requests
     end
 
     page.within '.labels' do
diff --git a/spec/features/calendar_spec.rb b/spec/features/calendar_spec.rb
index 496faf87a16d7277cacef048ff5e67efc4e56cb3..1b6d8439f92778d816f7f7c54cc7b9f258cfa284 100644
--- a/spec/features/calendar_spec.rb
+++ b/spec/features/calendar_spec.rb
@@ -74,7 +74,7 @@ feature 'Contributions Calendar', :feature, :js do
   describe 'calendar day selection' do
     before do
       visit user.username
-      wait_for_ajax
+      wait_for_requests
     end
 
     it 'displays calendar' do
@@ -86,7 +86,7 @@ feature 'Contributions Calendar', :feature, :js do
 
       before do
         cells[0].click
-        wait_for_ajax
+        wait_for_requests
         @first_day_activities = selected_day_activities
       end
 
@@ -97,7 +97,7 @@ feature 'Contributions Calendar', :feature, :js do
       describe 'select another calendar day' do
         before do
           cells[1].click
-          wait_for_ajax
+          wait_for_requests
         end
 
         it 'displays different calendar day activities' do
@@ -108,7 +108,7 @@ feature 'Contributions Calendar', :feature, :js do
       describe 'deselect calendar day' do
         before do
           cells[0].click
-          wait_for_ajax
+          wait_for_requests
         end
 
         it 'hides calendar day activities' do
@@ -122,7 +122,7 @@ feature 'Contributions Calendar', :feature, :js do
     shared_context 'visit user page' do
       before do
         visit user.username
-        wait_for_ajax
+        wait_for_requests
       end
     end
 
diff --git a/spec/features/copy_as_gfm_spec.rb b/spec/features/copy_as_gfm_spec.rb
index be615519a09b5ac062d368d0bea5aa93137db4a5..43ea36c3cdd6295090f07c31e46f46f89c8564f1 100644
--- a/spec/features/copy_as_gfm_spec.rb
+++ b/spec/features/copy_as_gfm_spec.rb
@@ -479,7 +479,7 @@ describe 'Copy as GFM', feature: true, js: true do
     context 'from a blob' do
       before do
         visit namespace_project_blob_path(project.namespace, project, File.join('master', 'files/ruby/popen.rb'))
-        wait_for_ajax
+        wait_for_requests
       end
 
       context 'selecting one word of text' do
@@ -521,7 +521,7 @@ describe 'Copy as GFM', feature: true, js: true do
     context 'from a GFM code block' do
       before do
         visit namespace_project_blob_path(project.namespace, project, File.join('markdown', 'doc/api/users.md'))
-        wait_for_ajax
+        wait_for_requests
       end
 
       context 'selecting one word of text' do
diff --git a/spec/features/cycle_analytics_spec.rb b/spec/features/cycle_analytics_spec.rb
index 1c829e91c205db22bb3bb31e2c97c5e7d9f139c9..b416bbd3c7979bccbec1555c5c262e60955eaa02 100644
--- a/spec/features/cycle_analytics_spec.rb
+++ b/spec/features/cycle_analytics_spec.rb
@@ -17,7 +17,7 @@ feature 'Cycle Analytics', feature: true, js: true do
         login_as(user)
 
         visit namespace_project_cycle_analytics_path(project.namespace, project)
-        wait_for_ajax
+        wait_for_requests
       end
 
       it 'shows introductory message' do
@@ -72,7 +72,7 @@ feature 'Cycle Analytics', feature: true, js: true do
         project.team << [user, :master]
         login_as(user)
         visit namespace_project_cycle_analytics_path(project.namespace, project)
-        wait_for_ajax
+        wait_for_requests
       end
 
       it 'shows the content in Spanish' do
@@ -95,7 +95,7 @@ feature 'Cycle Analytics', feature: true, js: true do
 
       login_as(guest)
       visit namespace_project_cycle_analytics_path(project.namespace, project)
-      wait_for_ajax
+      wait_for_requests
     end
 
     it 'needs permissions to see restricted stages' do
@@ -139,6 +139,6 @@ feature 'Cycle Analytics', feature: true, js: true do
 
   def click_stage(stage_name)
     find('.stage-nav li', text: stage_name).click
-    wait_for_ajax
+    wait_for_requests
   end
 end
diff --git a/spec/features/dashboard/datetime_on_tooltips_spec.rb b/spec/features/dashboard/datetime_on_tooltips_spec.rb
index 0e9e3f78be28e484e5601ba167ce56afbba39fbc..1793e323588fd747b789937c977082d57105c16e 100644
--- a/spec/features/dashboard/datetime_on_tooltips_spec.rb
+++ b/spec/features/dashboard/datetime_on_tooltips_spec.rb
@@ -15,7 +15,7 @@ feature 'Tooltips on .timeago dates', feature: true, js: true do
 
       login_as user
       visit user_path(user)
-      wait_for_ajax()
+      wait_for_requests()
 
       page.find('.js-timeago').hover
     end
@@ -32,7 +32,7 @@ feature 'Tooltips on .timeago dates', feature: true, js: true do
 
       login_as user
       visit user_snippets_path(user)
-      wait_for_ajax()
+      wait_for_requests()
 
       page.find('.js-timeago.snippet-created-ago').hover
     end
diff --git a/spec/features/dashboard/groups_list_spec.rb b/spec/features/dashboard/groups_list_spec.rb
index 52b4d82e856651fd7f2e7e4d7b93a7b891f0faad..b0e2953dda26cd9bef3f4b4214be89f3ec33088d 100644
--- a/spec/features/dashboard/groups_list_spec.rb
+++ b/spec/features/dashboard/groups_list_spec.rb
@@ -23,7 +23,7 @@ describe 'Dashboard Groups page', js: true, feature: true do
 
   it 'filters groups' do
     fill_in 'filter_groups', with: group.name
-    wait_for_ajax
+    wait_for_requests
 
     expect(page).to have_content(group.full_name)
     expect(page).not_to have_content(nested_group.full_name)
@@ -32,10 +32,10 @@ describe 'Dashboard Groups page', js: true, feature: true do
 
   it 'resets search when user cleans the input' do
     fill_in 'filter_groups', with: group.name
-    wait_for_ajax
+    wait_for_requests
 
     fill_in 'filter_groups', with: ""
-    wait_for_ajax
+    wait_for_requests
 
     expect(page).to have_content(group.full_name)
     expect(page).to have_content(nested_group.full_name)
diff --git a/spec/features/dashboard/milestone_filter_spec.rb b/spec/features/dashboard/milestone_filter_spec.rb
index d60a002a8d729456e28e972efceebdcafb38e467..b5b92c368956afe2f3c1484f3fecce8253112759 100644
--- a/spec/features/dashboard/milestone_filter_spec.rb
+++ b/spec/features/dashboard/milestone_filter_spec.rb
@@ -1,8 +1,6 @@
 require 'spec_helper'
 
 describe 'Dashboard > milestone filter', :feature, :js do
-  include WaitForAjax
-
   let(:user) { create(:user) }
   let(:project) { create(:project, name: 'test', namespace: user.namespace) }
   let(:milestone) { create(:milestone, title: "v1.0", project: project) }
@@ -28,14 +26,14 @@ describe 'Dashboard > milestone filter', :feature, :js do
 
     before do
       find(milestone_select).click
-      wait_for_ajax
+      wait_for_requests
 
       page.within('.dropdown-content') do
         click_link 'v1.0'
       end
 
       find(milestone_select).click
-      wait_for_ajax
+      wait_for_requests
     end
 
     it 'shows issues with Milestone v1.0' do
@@ -48,9 +46,9 @@ describe 'Dashboard > milestone filter', :feature, :js do
 
       # open & close dropdown
       find('.dropdown-menu-close').click
-      
+
       expect(find('.milestone-filter')).not_to have_selector('.dropdown.open')
-      
+
       find(milestone_select).click
 
       expect(find('.dropdown-content')).to have_selector('a.is-active', count: 1)
diff --git a/spec/features/dashboard/project_member_activity_index_spec.rb b/spec/features/dashboard/project_member_activity_index_spec.rb
index 16c214ae06010ad1a3743f5297fac8c5628851b7..cdf919af9b57886068b44967c05454a8b32de33e 100644
--- a/spec/features/dashboard/project_member_activity_index_spec.rb
+++ b/spec/features/dashboard/project_member_activity_index_spec.rb
@@ -11,7 +11,7 @@ feature 'Project member activity', feature: true, js: true do
   def visit_activities_and_wait_with_event(event_type)
     Event.create(project: project, author_id: user.id, action: event_type)
     visit activity_namespace_project_path(project.namespace, project)
-    wait_for_ajax
+    wait_for_requests
   end
 
   subject { page.find(".event-title").text }
diff --git a/spec/features/expand_collapse_diffs_spec.rb b/spec/features/expand_collapse_diffs_spec.rb
index 76c77e0bc5f44a397e7514e6766df2c959362c7d..0cb75538311e215ea8241f9af6ba2b88d5143cec 100644
--- a/spec/features/expand_collapse_diffs_spec.rb
+++ b/spec/features/expand_collapse_diffs_spec.rb
@@ -36,7 +36,7 @@ feature 'Expand and collapse diffs', js: true, feature: true do
     visit namespace_project_commit_path(project.namespace, project, project.commit(branch), anchor: "#{large_diff[:id]}_0_1")
     execute_script('window.location.reload()')
 
-    wait_for_ajax
+    wait_for_requests
 
     expect(large_diff).to have_selector('.code')
     expect(large_diff).not_to have_selector('.nothing-here-block')
@@ -50,7 +50,7 @@ feature 'Expand and collapse diffs', js: true, feature: true do
     visit namespace_project_commit_path(project.namespace, project, project.commit(branch), anchor: large_diff[:id])
     execute_script('window.location.reload()')
 
-    wait_for_ajax
+    wait_for_requests
 
     expect(large_diff).to have_selector('.code')
     expect(large_diff).not_to have_selector('.nothing-here-block')
@@ -94,7 +94,7 @@ feature 'Expand and collapse diffs', js: true, feature: true do
     context 'expanding a diff for a renamed file' do
       before do
         large_diff_renamed.find('.click-to-expand').click
-        wait_for_ajax
+        wait_for_requests
       end
 
       it 'shows the old content' do
@@ -116,7 +116,7 @@ feature 'Expand and collapse diffs', js: true, feature: true do
         find('.js-file-title', match: :first)
         # Click `large_diff.md` title
         all('.diff-toggle-caret')[1].click
-        wait_for_ajax
+        wait_for_requests
       end
 
       it 'makes a request to get the content' do
@@ -139,7 +139,7 @@ feature 'Expand and collapse diffs', js: true, feature: true do
           large_diff.find('.add-diff-note').click
           large_diff.find('.note-textarea').send_keys comment_text
           large_diff.find_button('Comment').click
-          wait_for_ajax
+          wait_for_requests
         end
 
         it 'adds the comment' do
@@ -160,7 +160,7 @@ feature 'Expand and collapse diffs', js: true, feature: true do
               find('.js-file-title', match: :first)
               # Click `large_diff.md` title
               all('.diff-toggle-caret')[1].click
-              wait_for_ajax
+              wait_for_requests
             end
 
             it 'shows the diff content' do
@@ -216,7 +216,7 @@ feature 'Expand and collapse diffs', js: true, feature: true do
         expect(page).to have_no_content('No longer a symlink')
 
         find('.click-to-expand').click
-        wait_for_ajax
+        wait_for_requests
 
         expect(page).to have_content('No longer a symlink')
       end
@@ -273,7 +273,7 @@ feature 'Expand and collapse diffs', js: true, feature: true do
       expect(page).to have_content('too_large_image.jpg')
       find('.note-textarea')
 
-      wait_for_ajax
+      wait_for_requests
       execute_script('window.ajaxUris = []; $(document).ajaxSend(function(event, xhr, settings) { ajaxUris.push(settings.url) });')
     end
 
diff --git a/spec/features/explore/groups_list_spec.rb b/spec/features/explore/groups_list_spec.rb
index 9828cb179a76d05974388217c8ab8c9320d7af10..d4284ed099b390a76bfe07d43bd4ac97550e444c 100644
--- a/spec/features/explore/groups_list_spec.rb
+++ b/spec/features/explore/groups_list_spec.rb
@@ -23,7 +23,7 @@ describe 'Explore Groups page', :js, :feature do
 
   it 'filters groups' do
     fill_in 'filter_groups', with: group.name
-    wait_for_ajax
+    wait_for_requests
 
     expect(page).to have_content(group.full_name)
     expect(page).not_to have_content(public_group.full_name)
@@ -32,10 +32,10 @@ describe 'Explore Groups page', :js, :feature do
 
   it 'resets search when user cleans the input' do
     fill_in 'filter_groups', with: group.name
-    wait_for_ajax
+    wait_for_requests
 
     fill_in 'filter_groups', with: ""
-    wait_for_ajax
+    wait_for_requests
 
     expect(page).to have_content(group.full_name)
     expect(page).to have_content(public_group.full_name)
diff --git a/spec/features/gitlab_flavored_markdown_spec.rb b/spec/features/gitlab_flavored_markdown_spec.rb
index 005a029a39319308561b7f5dc4234db25c747641..550924123400eb3b854f53077e37727c0595c75a 100644
--- a/spec/features/gitlab_flavored_markdown_spec.rb
+++ b/spec/features/gitlab_flavored_markdown_spec.rb
@@ -49,8 +49,6 @@ describe "GitLab Flavored Markdown", feature: true do
   end
 
   describe "for issues", feature: true, js: true do
-    include WaitForVueResource
-
     before do
       @other_issue = create(:issue,
                             author: @user,
diff --git a/spec/features/groups/issues_spec.rb b/spec/features/groups/issues_spec.rb
index 45f57845c74ec8fcff3885419d0e78067fc682aa..aa2e9632d6cf6e30ff8fe5ed231faf567993f9fb 100644
--- a/spec/features/groups/issues_spec.rb
+++ b/spec/features/groups/issues_spec.rb
@@ -33,7 +33,7 @@ feature 'Group issues page', feature: true do
     it 'filters by only group users' do
       click_button('Assignee')
 
-      wait_for_ajax
+      wait_for_requests
 
       expect(find('.dropdown-menu-assignee')).to have_link(user.name)
       expect(find('.dropdown-menu-assignee')).not_to have_link(user2.name)
diff --git a/spec/features/issues/award_emoji_spec.rb b/spec/features/issues/award_emoji_spec.rb
index 853632614c4476266d465c557192001dca33beb9..81ae54c7a108caf7e548488a7af21b170ca4ae3c 100644
--- a/spec/features/issues/award_emoji_spec.rb
+++ b/spec/features/issues/award_emoji_spec.rb
@@ -1,8 +1,6 @@
 require 'rails_helper'
 
 describe 'Awards Emoji', feature: true do
-  include WaitForVueResource
-
   let!(:project)   { create(:project, :public) }
   let!(:user)      { create(:user) }
   let(:issue) do
@@ -22,7 +20,7 @@ describe 'Awards Emoji', feature: true do
         # The `heart_tip` emoji is not valid anymore so we need to skip validation
         issue.award_emoji.build(user: user, name: 'heart_tip').save!(validate: false)
         visit namespace_project_issue_path(project.namespace, project, issue)
-        wait_for_vue_resource
+        wait_for_requests
       end
 
       # Regression test: https://gitlab.com/gitlab-org/gitlab-ce/issues/29529
@@ -36,19 +34,19 @@ describe 'Awards Emoji', feature: true do
 
       before do
         visit namespace_project_issue_path(project.namespace, project, issue)
-        wait_for_vue_resource
+        wait_for_requests
       end
 
       it 'increments the thumbsdown emoji', js: true do
         find('[data-name="thumbsdown"]').click
-        wait_for_ajax
+        wait_for_requests
         expect(thumbsdown_emoji).to have_text("1")
       end
 
       context 'click the thumbsup emoji' do
         it 'increments the thumbsup emoji', js: true do
           find('[data-name="thumbsup"]').click
-          wait_for_ajax
+          wait_for_requests
           expect(thumbsup_emoji).to have_text("1")
         end
 
@@ -60,7 +58,7 @@ describe 'Awards Emoji', feature: true do
       context 'click the thumbsdown emoji' do
         it 'increments the thumbsdown emoji', js: true do
           find('[data-name="thumbsdown"]').click
-          wait_for_ajax
+          wait_for_requests
           expect(thumbsdown_emoji).to have_text("1")
         end
 
@@ -113,7 +111,7 @@ describe 'Awards Emoji', feature: true do
       click_button 'Comment'
     end
 
-    wait_for_ajax
+    wait_for_requests
   end
 
   def thumbsup_emoji
@@ -143,6 +141,6 @@ describe 'Awards Emoji', feature: true do
       find('[data-name="smiley"]').click
     end
 
-    wait_for_ajax
+    wait_for_requests
   end
 end
diff --git a/spec/features/issues/award_spec.rb b/spec/features/issues/award_spec.rb
index 08e3f99e29f0dafac5555773d52a87c2d91df97f..fcf22dd50330a86595fcb3132e24f7497f5f0737 100644
--- a/spec/features/issues/award_spec.rb
+++ b/spec/features/issues/award_spec.rb
@@ -6,12 +6,10 @@ feature 'Issue awards', js: true, feature: true do
   let(:issue)     { create(:issue, project: project) }
 
   describe 'logged in' do
-    include WaitForVueResource
-
     before do
       login_as(user)
       visit namespace_project_issue_path(project.namespace, project, issue)
-      wait_for_vue_resource
+      wait_for_requests
     end
 
     it 'adds award to issue' do
@@ -41,11 +39,9 @@ feature 'Issue awards', js: true, feature: true do
   end
 
   describe 'logged out' do
-    include WaitForVueResource
-    
     before do
       visit namespace_project_issue_path(project.namespace, project, issue)
-      wait_for_vue_resource
+      wait_for_requests
     end
 
     it 'does not see award menu button' do
diff --git a/spec/features/issues/bulk_assignment_labels_spec.rb b/spec/features/issues/bulk_assignment_labels_spec.rb
index 1de50d6d77e4c460f91132f15a21380a12e6515d..0a6f645b27e607744bcdc05884683d462b430bc2 100644
--- a/spec/features/issues/bulk_assignment_labels_spec.rb
+++ b/spec/features/issues/bulk_assignment_labels_spec.rb
@@ -306,7 +306,7 @@ feature 'Issues > Labels bulk assignment', feature: true do
 
         page.within('.issues_bulk_update') do
           click_button 'Labels'
-          wait_for_ajax
+          wait_for_requests
 
           expect(find('.dropdown-menu-labels li', text: 'bug')).to have_css('.is-active')
           expect(find('.dropdown-menu-labels li', text: 'feature')).to have_css('.is-indeterminate')
@@ -349,7 +349,7 @@ feature 'Issues > Labels bulk assignment', feature: true do
   def open_milestone_dropdown(items = [])
     page.within('.issues_bulk_update') do
       click_button 'Milestone'
-      wait_for_ajax
+      wait_for_requests
       items.map do |item|
         click_link item
       end
@@ -359,7 +359,7 @@ feature 'Issues > Labels bulk assignment', feature: true do
   def open_labels_dropdown(items = [], unmark = false)
     page.within('.issues_bulk_update') do
       click_button 'Labels'
-      wait_for_ajax
+      wait_for_requests
       items.map do |item|
         click_link item
       end
@@ -392,6 +392,6 @@ feature 'Issues > Labels bulk assignment', feature: true do
 
   def update_issues
     click_button 'Update issues'
-    wait_for_ajax
+    wait_for_requests
   end
 end
diff --git a/spec/features/issues/create_branch_merge_request_spec.rb b/spec/features/issues/create_branch_merge_request_spec.rb
index 44c19275ae520bfd2ff0162b810ad4e5dfd3bfc6..1d7d8d291b29264025dc61a53af0003ada2db421 100644
--- a/spec/features/issues/create_branch_merge_request_spec.rb
+++ b/spec/features/issues/create_branch_merge_request_spec.rb
@@ -16,7 +16,7 @@ feature 'Create Branch/Merge Request Dropdown on issue page', feature: true, js:
 
       select_dropdown_option('create-mr')
 
-      wait_for_ajax
+      wait_for_requests
 
       expect(page).to have_content("created branch 1-cherry-coloured-funk")
       expect(page).to have_content("mentioned in merge request !1")
@@ -32,7 +32,7 @@ feature 'Create Branch/Merge Request Dropdown on issue page', feature: true, js:
 
       select_dropdown_option('create-branch')
 
-      wait_for_ajax
+      wait_for_requests
 
       expect(page).to have_selector('.dropdown-toggle-text ', text: '1-cherry-coloured-funk')
       expect(current_path).to eq namespace_project_tree_path(project.namespace, project, '1-cherry-coloured-funk')
diff --git a/spec/features/issues/filtered_search/dropdown_author_spec.rb b/spec/features/issues/filtered_search/dropdown_author_spec.rb
index 0579d6c80ab6552dde74a4b2413f66c9666987d5..b29177bed0669384ae4f09ab8c3e95d9d0efe6f1 100644
--- a/spec/features/issues/filtered_search/dropdown_author_spec.rb
+++ b/spec/features/issues/filtered_search/dropdown_author_spec.rb
@@ -16,7 +16,7 @@ describe 'Dropdown author', js: true, feature: true do
     end
 
     sleep 0.5
-    wait_for_ajax
+    wait_for_requests
   end
 
   def dropdown_author_size
diff --git a/spec/features/issues/filtered_search/filter_issues_spec.rb b/spec/features/issues/filtered_search/filter_issues_spec.rb
index a8f4e2d7e10adfc042e2a85e4316222aa148e251..03ff1cffb3fd14bbba6baeeeb3fea53f6a9dab16 100644
--- a/spec/features/issues/filtered_search/filter_issues_spec.rb
+++ b/spec/features/issues/filtered_search/filter_issues_spec.rb
@@ -761,7 +761,7 @@ describe 'Filter issues', js: true, feature: true do
         sort_toggle.click
 
         find('.filtered-search-wrapper .dropdown-menu li a', text: 'Oldest updated').click
-        wait_for_ajax
+        wait_for_requests
 
         expect(find('.issues-list .issue:first-of-type .issue-title-text a')).to have_content(old_issue.title)
       end
@@ -778,17 +778,17 @@ describe 'Filter issues', js: true, feature: true do
 
     it 'open state' do
       find('.issues-state-filters a', text: 'Closed').click
-      wait_for_ajax
+      wait_for_requests
 
       find('.issues-state-filters a', text: 'Open').click
-      wait_for_ajax
+      wait_for_requests
 
       expect(page).to have_selector('.issues-list .issue', count: 4)
     end
 
     it 'closed state' do
       find('.issues-state-filters a', text: 'Closed').click
-      wait_for_ajax
+      wait_for_requests
 
       expect(page).to have_selector('.issues-list .issue', count: 1)
       expect(find('.issues-list .issue:first-of-type .issue-title-text a')).to have_content(closed_issue.title)
@@ -796,7 +796,7 @@ describe 'Filter issues', js: true, feature: true do
 
     it 'all state' do
       find('.issues-state-filters a', text: 'All').click
-      wait_for_ajax
+      wait_for_requests
 
       expect(page).to have_selector('.issues-list .issue', count: 5)
     end
diff --git a/spec/features/issues/form_spec.rb b/spec/features/issues/form_spec.rb
index 5c0907e26df5c8eafbf37b3e089f296d9fab5452..65d854d0896bcfdd53c1c5ed92ec1b4044c6569d 100644
--- a/spec/features/issues/form_spec.rb
+++ b/spec/features/issues/form_spec.rb
@@ -3,7 +3,6 @@ require 'rails_helper'
 describe 'New/edit issue', :feature, :js do
   include GitlabRoutingHelper
   include ActionView::Helpers::JavaScriptHelper
-  include WaitForAjax
 
   let!(:project)   { create(:project) }
   let!(:user)      { create(:user)}
@@ -28,7 +27,7 @@ describe 'New/edit issue', :feature, :js do
       before do
         click_button 'Unassigned'
 
-        wait_for_ajax
+        wait_for_requests
       end
 
       it 'unselects other assignees when unassigned is selected' do
@@ -69,7 +68,7 @@ describe 'New/edit issue', :feature, :js do
       expect(find('a', text: 'Assign to me')).to be_visible
       click_button 'Unassigned'
 
-      wait_for_ajax
+      wait_for_requests
 
       page.within '.dropdown-menu-user' do
         click_link user2.name
@@ -155,7 +154,7 @@ describe 'New/edit issue', :feature, :js do
     it 'correctly updates the selected user when changing assignee' do
       click_button 'Unassigned'
 
-      wait_for_ajax
+      wait_for_requests
 
       page.within '.dropdown-menu-user' do
         click_link user.name
diff --git a/spec/features/issues/gfm_autocomplete_spec.rb b/spec/features/issues/gfm_autocomplete_spec.rb
index ad29911248fe295db33eee99addecb5ee92de371..350473437a811bb26e2929db5ee4e2da8c8f0c81 100644
--- a/spec/features/issues/gfm_autocomplete_spec.rb
+++ b/spec/features/issues/gfm_autocomplete_spec.rb
@@ -11,7 +11,7 @@ feature 'GFM autocomplete', feature: true, js: true do
     login_as(user)
     visit namespace_project_issue_path(project.namespace, project, issue)
 
-    wait_for_ajax
+    wait_for_requests
   end
 
   it 'opens autocomplete menu when field starts with text' do
@@ -40,7 +40,7 @@ feature 'GFM autocomplete', feature: true, js: true do
 
     expect(page).to have_selector('.atwho-container')
 
-    wait_for_ajax
+    wait_for_requests
 
     expect(find('#at-view-58')).not_to have_selector('.cur:first-of-type')
   end
@@ -80,7 +80,7 @@ feature 'GFM autocomplete', feature: true, js: true do
 
     expect(page).to have_selector('.atwho-container')
 
-    wait_for_ajax
+    wait_for_requests
 
     expect(find('#at-view-64')).to have_selector('.cur:first-of-type')
   end
@@ -93,7 +93,7 @@ feature 'GFM autocomplete', feature: true, js: true do
 
     expect(page).to have_selector('.atwho-container')
 
-    wait_for_ajax
+    wait_for_requests
 
     expect(find('#at-view-64')).to have_content(user.name)
   end
@@ -106,7 +106,7 @@ feature 'GFM autocomplete', feature: true, js: true do
 
     expect(page).to have_selector('.atwho-container')
 
-    wait_for_ajax
+    wait_for_requests
 
     expect(find('#at-view-58')).to have_selector('.cur:first-of-type')
   end
diff --git a/spec/features/issues/issue_sidebar_spec.rb b/spec/features/issues/issue_sidebar_spec.rb
index 0de0f93089a78f24524389c671d2cd0cec834c42..99ad8013023ac48fd454d5c22e8355b17dba2f66 100644
--- a/spec/features/issues/issue_sidebar_spec.rb
+++ b/spec/features/issues/issue_sidebar_spec.rb
@@ -23,7 +23,7 @@ feature 'Issue Sidebar', feature: true do
 
       find('.block.assignee .edit-link').click
 
-      wait_for_ajax
+      wait_for_requests
     end
 
     it 'shows author in assignee dropdown' do
@@ -37,7 +37,7 @@ feature 'Issue Sidebar', feature: true do
         find('.dropdown-input-field').native.send_keys user2.name
         sleep 1 # Required to wait for end of input delay
 
-        wait_for_ajax
+        wait_for_requests
 
         expect(page).to have_content(user2.name)
       end
@@ -48,7 +48,7 @@ feature 'Issue Sidebar', feature: true do
 
       click_button 'assign yourself'
 
-      wait_for_ajax
+      wait_for_requests
 
       find('.block.assignee .edit-link').click
 
diff --git a/spec/features/issues/notes_on_issues_spec.rb b/spec/features/issues/notes_on_issues_spec.rb
index a4035324d2bc3331eb80471ab8f1d485551e1e15..15c817cabac901ad6c1802bf1169ee27166954d2 100644
--- a/spec/features/issues/notes_on_issues_spec.rb
+++ b/spec/features/issues/notes_on_issues_spec.rb
@@ -15,7 +15,7 @@ describe 'Create notes on issues', :js, :feature do
       fill_in 'note[note]', with: note_text
       click_button 'Comment'
 
-      wait_for_ajax
+      wait_for_requests
     end
 
     it 'creates a note with reference and cross references the issue' do
diff --git a/spec/features/issues/update_issues_spec.rb b/spec/features/issues/update_issues_spec.rb
index b250fa2ed3c804944a4264f590924e480a288f24..0911f1db9ba02dcf5af000ce7a74dd4ca7e8571d 100644
--- a/spec/features/issues/update_issues_spec.rb
+++ b/spec/features/issues/update_issues_spec.rb
@@ -108,11 +108,11 @@ feature 'Multiple issue updating from issues#index', feature: true do
 
   def click_update_assignee_button
     find('.js-update-assignee').click
-    wait_for_ajax
+    wait_for_requests
   end
 
   def click_update_issues_button
     find('.update_selected_issues').click
-    wait_for_ajax
+    wait_for_requests
   end
 end
diff --git a/spec/features/issues/user_uses_slash_commands_spec.rb b/spec/features/issues/user_uses_slash_commands_spec.rb
index 4cd6c1171acded83c4da02289cd85eeffea22a57..d14c319707c76685497da40abad464ef803bfee5 100644
--- a/spec/features/issues/user_uses_slash_commands_spec.rb
+++ b/spec/features/issues/user_uses_slash_commands_spec.rb
@@ -18,7 +18,7 @@ feature 'Issues > User uses slash commands', feature: true, js: true do
     end
 
     after do
-      wait_for_ajax
+      wait_for_requests
     end
 
     describe 'adding a due date from note' do
diff --git a/spec/features/issues_spec.rb b/spec/features/issues_spec.rb
index 06ed2dbac64ecf51f751ceb5e400503cb3541d35..eecc565d2bd089042587241829c4bb3753f23208 100644
--- a/spec/features/issues_spec.rb
+++ b/spec/features/issues_spec.rb
@@ -377,7 +377,7 @@ describe 'Issues', feature: true do
       previous_token = find('input#issue_email').value
       find('.incoming-email-token-reset').trigger('click')
 
-      wait_for_ajax
+      wait_for_requests
 
       expect(page).to have_no_field('issue_email', with: previous_token)
       new_token = project1.new_issue_address(@user.reload)
@@ -423,7 +423,7 @@ describe 'Issues', feature: true do
           expect(page).to have_content 'No assignee'
         end
 
-        # wait_for_ajax does not work with vue-resource at the moment
+        # wait_for_requests does not work with vue-resource at the moment
         sleep 1
 
         expect(issue.reload.assignees).to be_empty
@@ -661,7 +661,7 @@ describe 'Issues', feature: true do
             click_button date.day
           end
 
-          wait_for_ajax
+          wait_for_requests
 
           expect(find('.value').text).to have_content date.strftime('%b %-d, %Y')
         end
@@ -677,7 +677,7 @@ describe 'Issues', feature: true do
             click_button date.day
           end
 
-          wait_for_ajax
+          wait_for_requests
 
           expect(page).to have_no_content 'No due date'
 
@@ -689,8 +689,6 @@ describe 'Issues', feature: true do
   end
 
   describe 'title issue#show', js: true do
-    include WaitForVueResource
-
     it 'updates the title', js: true do
       issue = create(:issue, author: @user, assignees: [@user], project: project, title: 'new title')
 
@@ -700,7 +698,7 @@ describe 'Issues', feature: true do
 
       issue.update(title: "updated title")
 
-      wait_for_vue_resource
+      wait_for_requests
       expect(page).to have_text("updated title")
     end
   end
diff --git a/spec/features/merge_requests/closes_issues_spec.rb b/spec/features/merge_requests/closes_issues_spec.rb
index ee0880a1e2fd8a1b1deff3f74390b7c6e54953d7..e627618042a52600bffd37e83a13850aa4cbc35f 100644
--- a/spec/features/merge_requests/closes_issues_spec.rb
+++ b/spec/features/merge_requests/closes_issues_spec.rb
@@ -1,8 +1,6 @@
 require 'spec_helper'
 
 feature 'Merge Request closing issues message', feature: true, js: true do
-  include WaitForAjax
-
   let(:user) { create(:user) }
   let(:project) { create(:project, :public) }
   let(:issue_1) { create(:issue, project: project)}
@@ -25,7 +23,7 @@ feature 'Merge Request closing issues message', feature: true, js: true do
     login_as user
 
     visit namespace_project_merge_request_path(project.namespace, project, merge_request)
-    wait_for_ajax
+    wait_for_requests
   end
 
   context 'not closing or mentioning any issue' do
diff --git a/spec/features/merge_requests/conflicts_spec.rb b/spec/features/merge_requests/conflicts_spec.rb
index 04b7593ce682b8990ece21ea00d2a52437e9aab4..7f669565085a767fbe6516a435ec1c2da725ed36 100644
--- a/spec/features/merge_requests/conflicts_spec.rb
+++ b/spec/features/merge_requests/conflicts_spec.rb
@@ -23,13 +23,13 @@ feature 'Merge request conflict resolution', js: true, feature: true do
       end
 
       click_button 'Commit conflict resolution'
-      wait_for_ajax
+      wait_for_requests
 
       expect(page).to have_content('All merge conflicts were resolved')
       merge_request.reload_diff
 
       click_on 'Changes'
-      wait_for_ajax
+      wait_for_requests
 
       within find('.diff-file', text: 'files/ruby/popen.rb') do
         expect(page).to have_selector('.line_content.new', text: "vars = { 'PWD' => path }")
@@ -53,23 +53,23 @@ feature 'Merge request conflict resolution', js: true, feature: true do
 
       within find('.files-wrapper .diff-file', text: 'files/ruby/popen.rb') do
         click_button 'Edit inline'
-        wait_for_ajax
+        wait_for_requests
         execute_script('ace.edit($(".files-wrapper .diff-file pre")[0]).setValue("One morning");')
       end
 
       within find('.files-wrapper .diff-file', text: 'files/ruby/regex.rb') do
         click_button 'Edit inline'
-        wait_for_ajax
+        wait_for_requests
         execute_script('ace.edit($(".files-wrapper .diff-file pre")[1]).setValue("Gregor Samsa woke from troubled dreams");')
       end
 
       click_button 'Commit conflict resolution'
-      wait_for_ajax
+      wait_for_requests
       expect(page).to have_content('All merge conflicts were resolved')
       merge_request.reload_diff
 
       click_on 'Changes'
-      wait_for_ajax
+      wait_for_requests
 
       expect(page).to have_content('One morning')
       expect(page).to have_content('Gregor Samsa woke from troubled dreams')
@@ -126,21 +126,21 @@ feature 'Merge request conflict resolution', js: true, feature: true do
 
       it 'conflicts are resolved in Edit inline mode' do
         within find('.files-wrapper .diff-file', text: 'files/markdown/ruby-style-guide.md') do
-          wait_for_ajax
+          wait_for_requests
           execute_script('ace.edit($(".files-wrapper .diff-file pre")[0]).setValue("Gregor Samsa woke from troubled dreams");')
         end
 
         click_button 'Commit conflict resolution'
-        wait_for_ajax
+        wait_for_requests
 
         expect(page).to have_content('All merge conflicts were resolved')
 
         merge_request.reload_diff
 
         click_on 'Changes'
-        wait_for_ajax
+        wait_for_requests
         click_link 'Expand all'
-        wait_for_ajax
+        wait_for_requests
 
         expect(page).to have_content('Gregor Samsa woke from troubled dreams')
       end
@@ -171,7 +171,7 @@ feature 'Merge request conflict resolution', js: true, feature: true do
 
       it 'shows an error if the conflicts page is visited directly' do
         visit current_url + '/conflicts'
-        wait_for_ajax
+        wait_for_requests
 
         expect(find('#conflicts')).to have_content('Please try to resolve them locally.')
       end
diff --git a/spec/features/merge_requests/create_new_mr_spec.rb b/spec/features/merge_requests/create_new_mr_spec.rb
index f1b3e7f158cd833bc58b3af77a8c46f1e6c0284f..82987c768d14ec884b62f6e48f815393671a0700 100644
--- a/spec/features/merge_requests/create_new_mr_spec.rb
+++ b/spec/features/merge_requests/create_new_mr_spec.rb
@@ -1,8 +1,6 @@
 require 'spec_helper'
 
 feature 'Create New Merge Request', feature: true, js: true do
-  include WaitForVueResource
-
   let(:user) { create(:user) }
   let(:project) { create(:project, :public) }
 
@@ -146,7 +144,7 @@ feature 'Create New Merge Request', feature: true, js: true do
 
       page.within('.merge-request') do
         click_link 'Pipelines'
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_content "##{pipeline.id}"
       end
diff --git a/spec/features/merge_requests/deleted_source_branch_spec.rb b/spec/features/merge_requests/deleted_source_branch_spec.rb
index 01e5e4f3a05342510287dec7130d20da1b5d2e03..1723fb7d3658ed7b833fd711ca9e5f6a3db12afe 100644
--- a/spec/features/merge_requests/deleted_source_branch_spec.rb
+++ b/spec/features/merge_requests/deleted_source_branch_spec.rb
@@ -32,7 +32,7 @@ describe 'Deleted source branch', feature: true, js: true do
     end
 
     click_on 'Changes'
-    wait_for_ajax
+    wait_for_requests
 
     expect(page).to have_selector('.diffs.tab-pane .nothing-here-block')
     expect(page).to have_content('Source branch does not exist.')
diff --git a/spec/features/merge_requests/diff_notes_avatars_spec.rb b/spec/features/merge_requests/diff_notes_avatars_spec.rb
index ccf047d3efa3cd5510b5650640e58db2ae0138be..854e2d1758f3f69c0ee73e473aa8df0eec8fe0b7 100644
--- a/spec/features/merge_requests/diff_notes_avatars_spec.rb
+++ b/spec/features/merge_requests/diff_notes_avatars_spec.rb
@@ -60,7 +60,7 @@ feature 'Diff note avatars', feature: true, js: true do
 
         click_button 'Comment'
 
-        wait_for_ajax
+        wait_for_requests
       end
 
       visit namespace_project_merge_request_path(project.namespace, project, merge_request)
@@ -76,7 +76,7 @@ feature 'Diff note avatars', feature: true, js: true do
       before do
         visit diffs_namespace_project_merge_request_path(project.namespace, project, merge_request, view: view)
 
-        wait_for_ajax
+        wait_for_requests
       end
 
       it 'shows note avatar' do
@@ -114,7 +114,7 @@ feature 'Diff note avatars', feature: true, js: true do
           find('.js-note-delete').click
         end
 
-        wait_for_ajax
+        wait_for_requests
 
         page.within find("[id='#{position.line_code(project.repository)}']") do
           expect(page).not_to have_selector('img.js-diff-comment-avatar')
@@ -129,7 +129,7 @@ feature 'Diff note avatars', feature: true, js: true do
 
           click_button 'Comment'
 
-          wait_for_ajax
+          wait_for_requests
         end
 
         page.within find("[id='#{position.line_code(project.repository)}']") do
@@ -148,7 +148,7 @@ feature 'Diff note avatars', feature: true, js: true do
 
             find('.js-comment-button').trigger 'click'
 
-            wait_for_ajax
+            wait_for_requests
           end
         end
 
@@ -166,7 +166,7 @@ feature 'Diff note avatars', feature: true, js: true do
 
           visit diffs_namespace_project_merge_request_path(project.namespace, project, merge_request, view: view)
 
-          wait_for_ajax
+          wait_for_requests
         end
 
         it 'shows extra comment count' do
diff --git a/spec/features/merge_requests/filter_merge_requests_spec.rb b/spec/features/merge_requests/filter_merge_requests_spec.rb
index 2da60e9f4ad92e2b3d4d021cdf9a2c219062b161..1e26b3d601e180b0adbf0d0c61dd0b3aeb0c0536 100644
--- a/spec/features/merge_requests/filter_merge_requests_spec.rb
+++ b/spec/features/merge_requests/filter_merge_requests_spec.rb
@@ -289,7 +289,7 @@ describe 'Filter merge requests', feature: true do
       page.within '.dropdown-menu-sort' do
         click_link 'Oldest created'
       end
-      wait_for_ajax
+      wait_for_requests
 
       page.within '.mr-list' do
         expect(page).to have_content('Frontend')
diff --git a/spec/features/merge_requests/merge_immediately_with_pipeline_spec.rb b/spec/features/merge_requests/merge_immediately_with_pipeline_spec.rb
index c102722d6db1c3c66d9372265abaa5f15dc72d84..c1d4d508e5713841c9cbd8a7d467e6fbe3f362b0 100644
--- a/spec/features/merge_requests/merge_immediately_with_pipeline_spec.rb
+++ b/spec/features/merge_requests/merge_immediately_with_pipeline_spec.rb
@@ -39,7 +39,7 @@ feature 'Merge immediately', :feature, :js do
 
           expect(find('.accept-merge-request.btn-info')).to have_content('Merge in progress')
 
-          wait_for_vue_resource
+          wait_for_requests
         end
       end
     end
diff --git a/spec/features/merge_requests/mini_pipeline_graph_spec.rb b/spec/features/merge_requests/mini_pipeline_graph_spec.rb
index 5b2798af32f1b30649c50eeaa4bec868d013a9c2..51e7467c14cc53c2a4463344d32f37ed87953865 100644
--- a/spec/features/merge_requests/mini_pipeline_graph_spec.rb
+++ b/spec/features/merge_requests/mini_pipeline_graph_spec.rb
@@ -56,7 +56,7 @@ feature 'Mini Pipeline Graph', :js, :feature do
 
     before do
       toggle.click
-      wait_for_ajax
+      wait_for_requests
     end
 
     it 'should open when toggle is clicked' do
diff --git a/spec/features/merge_requests/only_allow_merge_if_build_succeeds_spec.rb b/spec/features/merge_requests/only_allow_merge_if_build_succeeds_spec.rb
index 63a4f4d90b446c79fae3b74b92c711f915616365..b1dc81a606ab27b40a656ebf8fb0c4cc1a5d9b62 100644
--- a/spec/features/merge_requests/only_allow_merge_if_build_succeeds_spec.rb
+++ b/spec/features/merge_requests/only_allow_merge_if_build_succeeds_spec.rb
@@ -1,8 +1,6 @@
 require 'spec_helper'
 
 feature 'Only allow merge requests to be merged if the pipeline succeeds', feature: true, js: true do
-  include WaitForVueResource
-
   let(:merge_request) { create(:merge_request_with_diffs) }
   let(:project)       { merge_request.target_project }
 
@@ -16,7 +14,7 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
     it 'allows MR to be merged' do
       visit_merge_request(merge_request)
 
-      wait_for_vue_resource
+      wait_for_requests
 
       expect(page).to have_button 'Merge'
     end
@@ -42,7 +40,7 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
         it 'does not allow to merge immediately' do
           visit_merge_request(merge_request)
 
-          wait_for_vue_resource
+          wait_for_requests
 
           expect(page).to have_button 'Merge when pipeline succeeds'
           expect(page).not_to have_button 'Select merge moment'
@@ -55,7 +53,7 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
         it 'does not allow MR to be merged' do
           visit_merge_request(merge_request)
 
-          wait_for_vue_resource
+          wait_for_requests
 
           expect(page).to have_css('button[disabled="disabled"]', text: 'Merge')
           expect(page).to have_content('Please retry the job or push a new commit to fix the failure.')
@@ -68,7 +66,7 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
         it 'does not allow MR to be merged' do
           visit_merge_request(merge_request)
 
-          wait_for_vue_resource
+          wait_for_requests
 
           expect(page).not_to have_button 'Merge'
           expect(page).to have_content('Please retry the job or push a new commit to fix the failure.')
@@ -81,7 +79,7 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
         it 'allows MR to be merged' do
           visit_merge_request(merge_request)
 
-          wait_for_vue_resource
+          wait_for_requests
 
           expect(page).to have_button 'Merge'
         end
@@ -93,7 +91,7 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
         it 'allows MR to be merged' do
           visit_merge_request(merge_request)
 
-          wait_for_vue_resource
+          wait_for_requests
 
           expect(page).to have_button 'Merge'
         end
@@ -111,7 +109,7 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
         it 'allows MR to be merged immediately' do
           visit_merge_request(merge_request)
 
-          wait_for_vue_resource
+          wait_for_requests
 
           expect(page).to have_button 'Merge when pipeline succeeds'
 
@@ -126,7 +124,7 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
         it 'allows MR to be merged' do
           visit_merge_request(merge_request)
 
-          wait_for_vue_resource
+          wait_for_requests
 
           expect(page).to have_button 'Merge'
         end
@@ -138,7 +136,7 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
         it 'allows MR to be merged' do
           visit_merge_request(merge_request)
 
-          wait_for_vue_resource
+          wait_for_requests
 
           expect(page).to have_button 'Merge'
         end
diff --git a/spec/features/merge_requests/pipelines_spec.rb b/spec/features/merge_requests/pipelines_spec.rb
index 99e283ac1813f392692c27189df5c8e4a7d84bbd..4c76004cb9348917250a54f3974a572ad8ab1173 100644
--- a/spec/features/merge_requests/pipelines_spec.rb
+++ b/spec/features/merge_requests/pipelines_spec.rb
@@ -26,7 +26,7 @@ feature 'Pipelines for Merge Requests', feature: true, js: true do
       page.within('.merge-request-tabs') do
         click_link('Pipelines')
       end
-      wait_for_ajax
+      wait_for_requests
 
       expect(page).to have_selector('.pipeline-actions')
     end
diff --git a/spec/features/merge_requests/update_merge_requests_spec.rb b/spec/features/merge_requests/update_merge_requests_spec.rb
index 9ecc998785bba3f1cc980c449b5c78883784bbd7..4ef59a8aeb8bbb1cc27dd8c7b2c22447c18cc1de 100644
--- a/spec/features/merge_requests/update_merge_requests_spec.rb
+++ b/spec/features/merge_requests/update_merge_requests_spec.rb
@@ -107,7 +107,7 @@ feature 'Multiple merge requests updating from merge_requests#index', feature: t
   def change_assignee(text)
     find('#check_all_issues').click
     find('.js-update-assignee').click
-    wait_for_ajax
+    wait_for_requests
 
     page.within '.dropdown-menu-user' do
       click_link text
@@ -125,6 +125,6 @@ feature 'Multiple merge requests updating from merge_requests#index', feature: t
 
   def click_update_merge_requests_button
     find('.update_selected_issues').click
-    wait_for_ajax
+    wait_for_requests
   end
 end
diff --git a/spec/features/merge_requests/user_posts_diff_notes_spec.rb b/spec/features/merge_requests/user_posts_diff_notes_spec.rb
index 7756202e3f580659e01c442e36dfaf2a77985e7e..14bc549c9f9854beb70e492d1bf67d83ec77709d 100644
--- a/spec/features/merge_requests/user_posts_diff_notes_spec.rb
+++ b/spec/features/merge_requests/user_posts_diff_notes_spec.rb
@@ -73,7 +73,7 @@ feature 'Merge requests > User posts diff notes', :js do
     context 'with an unfolded line' do
       before(:each) do
         find('.js-unfold', match: :first).click
-        wait_for_ajax
+        wait_for_requests
       end
 
       # The first `.js-unfold` unfolds upwards, therefore the first
@@ -122,7 +122,7 @@ feature 'Merge requests > User posts diff notes', :js do
     context 'with an unfolded line' do
       before(:each) do
         find('.js-unfold', match: :first).click
-        wait_for_ajax
+        wait_for_requests
       end
 
       # The first `.js-unfold` unfolds upwards, therefore the first
@@ -213,7 +213,7 @@ feature 'Merge requests > User posts diff notes', :js do
     write_comment_on_line(line_holder, diff_side)
 
     click_button 'Comment'
-    wait_for_ajax
+    wait_for_requests
 
     assert_comment_persistence(line_holder, asset_form_reset: asset_form_reset)
   end
diff --git a/spec/features/merge_requests/user_posts_notes_spec.rb b/spec/features/merge_requests/user_posts_notes_spec.rb
index 7fc0e2ce6eca499c3408b77fe20d8b0d9427959e..06de072257a913919f293d02c086c0d824466482 100644
--- a/spec/features/merge_requests/user_posts_notes_spec.rb
+++ b/spec/features/merge_requests/user_posts_notes_spec.rb
@@ -98,7 +98,7 @@ describe 'Merge requests > User posts notes', :js do
           find('.btn-save').click
         end
 
-        wait_for_ajax
+        wait_for_requests
         find('.note').hover
         find('.js-note-edit').click
 
@@ -139,7 +139,7 @@ describe 'Merge requests > User posts notes', :js do
         find('.js-note-attachment-delete').click
         is_expected.not_to have_css('.note-attachment')
         is_expected.not_to have_css('.current-note-edit-form')
-        wait_for_ajax
+        wait_for_requests
       end
     end
   end
diff --git a/spec/features/merge_requests/user_uses_slash_commands_spec.rb b/spec/features/merge_requests/user_uses_slash_commands_spec.rb
index f0ad57eb92fd83963fb11fbfa214c2a65418ef48..0e64a3e1a4b1752518c0375ee7bc415c6be4f43c 100644
--- a/spec/features/merge_requests/user_uses_slash_commands_spec.rb
+++ b/spec/features/merge_requests/user_uses_slash_commands_spec.rb
@@ -21,7 +21,7 @@ feature 'Merge Requests > User uses slash commands', feature: true, js: true do
     end
 
     after do
-      wait_for_ajax
+      wait_for_requests
     end
 
     describe 'toggling the WIP prefix in the title from note' do
@@ -160,7 +160,7 @@ feature 'Merge Requests > User uses slash commands', feature: true, js: true do
         it 'changes target branch from a note' do
           write_note("message start \n/target_branch merge-test\n message end.")
 
-          wait_for_ajax
+          wait_for_requests
           expect(page).not_to have_content('/target_branch')
           expect(page).to have_content('message start')
           expect(page).to have_content('message end.')
diff --git a/spec/features/merge_requests/versions_spec.rb b/spec/features/merge_requests/versions_spec.rb
index 2b5b803946c960df59a2c3112bfe75c1c8ee9c83..aef8ef209384da0e0928f9d25534ce6d23c7cbc6 100644
--- a/spec/features/merge_requests/versions_spec.rb
+++ b/spec/features/merge_requests/versions_spec.rb
@@ -75,7 +75,7 @@ feature 'Merge Request versions', js: true, feature: true do
           find(".js-comment-button").click
         end
 
-        wait_for_ajax
+        wait_for_requests
 
         expect(page).to have_content("Typo, please fix")
       end
@@ -126,7 +126,7 @@ feature 'Merge Request versions', js: true, feature: true do
       outdated_diff_note = create(:diff_note_on_merge_request, project: project, noteable: merge_request, position: position)
 
       visit current_url
-      wait_for_ajax
+      wait_for_requests
 
       expect(page).to have_css(".diffs .notes[data-discussion-id='#{outdated_diff_note.discussion_id}']")
     end
@@ -144,7 +144,7 @@ feature 'Merge Request versions', js: true, feature: true do
           find(".js-comment-button").click
         end
 
-        wait_for_ajax
+        wait_for_requests
 
         expect(page).to have_content("Typo, please fix")
       end
diff --git a/spec/features/merge_requests/widget_deployments_spec.rb b/spec/features/merge_requests/widget_deployments_spec.rb
index 8370499f6ed6a683652c4fa26e79912f82060ef5..118ecd9cba523cac3b179b6a27ddb283e021bb01 100644
--- a/spec/features/merge_requests/widget_deployments_spec.rb
+++ b/spec/features/merge_requests/widget_deployments_spec.rb
@@ -18,7 +18,7 @@ feature 'Widget Deployments Header', feature: true, js: true do
     end
 
     scenario 'displays that the environment is deployed' do
-      wait_for_ajax
+      wait_for_requests
 
       expect(page).to have_content("Deployed to #{environment.name}")
       expect(find('.js-deploy-time')['data-title']).to eq(deployment.created_at.to_time.in_time_zone.to_s(:medium))
@@ -34,7 +34,7 @@ feature 'Widget Deployments Header', feature: true, js: true do
       end
 
       background do
-        wait_for_ajax
+        wait_for_requests
       end
 
       scenario 'does show stop button' do
diff --git a/spec/features/merge_requests/widget_spec.rb b/spec/features/merge_requests/widget_spec.rb
index 9b182cc05b921d76d6211b6afd88590673a580e1..be8b1423c20299623ec415e8a45835ac99d9aba0 100644
--- a/spec/features/merge_requests/widget_spec.rb
+++ b/spec/features/merge_requests/widget_spec.rb
@@ -27,7 +27,7 @@ describe 'Merge request', :feature, :js do
     it 'shows widget status after creating new merge request' do
       click_button 'Submit merge request'
 
-      wait_for_ajax
+      wait_for_requests
 
       expect(page).to have_selector('.accept-merge-request')
       expect(find('.accept-merge-request')['disabled']).not_to be(true)
@@ -48,7 +48,7 @@ describe 'Merge request', :feature, :js do
     end
 
     it 'shows environments link' do
-      wait_for_ajax
+      wait_for_requests
 
       page.within('.mr-widget-heading') do
         expect(page).to have_content("Deployed to #{environment.name}")
@@ -58,7 +58,7 @@ describe 'Merge request', :feature, :js do
 
     it 'shows green accept merge request button' do
       # Wait for the `ci_status` and `merge_check` requests
-      wait_for_ajax
+      wait_for_requests
       expect(page).to have_selector('.accept-merge-request')
       expect(find('.accept-merge-request')['disabled']).not_to be(true)
     end
@@ -76,7 +76,7 @@ describe 'Merge request', :feature, :js do
 
     it 'has danger button while waiting for external CI status' do
       # Wait for the `ci_status` and `merge_check` requests
-      wait_for_ajax
+      wait_for_requests
       expect(page).to have_selector('.accept-merge-request.btn-danger')
     end
   end
@@ -97,7 +97,7 @@ describe 'Merge request', :feature, :js do
 
     it 'has danger button when not succeeded' do
       # Wait for the `ci_status` and `merge_check` requests
-      wait_for_ajax
+      wait_for_requests
       expect(page).to have_selector('.accept-merge-request.btn-danger')
     end
   end
@@ -141,7 +141,7 @@ describe 'Merge request', :feature, :js do
 
     it 'has info button when MWBS button' do
       # Wait for the `ci_status` and `merge_check` requests
-      wait_for_ajax
+      wait_for_requests
       expect(page).to have_selector('.accept-merge-request.btn-info')
     end
   end
@@ -159,7 +159,7 @@ describe 'Merge request', :feature, :js do
 
     it 'shows information about the merge error' do
       # Wait for the `ci_status` and `merge_check` requests
-      wait_for_ajax
+      wait_for_requests
 
       page.within('.mr-widget-body') do
         expect(page).to have_content('Something went wrong')
@@ -180,7 +180,7 @@ describe 'Merge request', :feature, :js do
 
     it 'shows information about the merge error' do
       # Wait for the `ci_status` and `merge_check` requests
-      wait_for_ajax
+      wait_for_requests
 
       page.within('.mr-widget-body') do
         expect(page).to have_content('Something went wrong')
diff --git a/spec/features/milestones/milestones_spec.rb b/spec/features/milestones/milestones_spec.rb
index 9eec3d7f270e79d7f824e6f5c5e8e9fa1902af82..b3dfd6d0e8126db58f102c7e199011753b03b99f 100644
--- a/spec/features/milestones/milestones_spec.rb
+++ b/spec/features/milestones/milestones_spec.rb
@@ -78,7 +78,7 @@ describe 'Milestone draggable', feature: true, js: true do
     scroll_into_view('.milestone-content')
     drag_to(selector: '.issues-sortable-list', list_to_index: 1)
 
-    wait_for_ajax
+    wait_for_requests
   end
 
   def create_and_drag_merge_request(params = {})
@@ -87,12 +87,12 @@ describe 'Milestone draggable', feature: true, js: true do
     visit namespace_project_milestone_path(project.namespace, project, milestone)
     page.find("a[href='#tab-merge-requests']").click
 
-    wait_for_ajax
+    wait_for_requests
 
     scroll_into_view('.milestone-content')
     drag_to(selector: '.merge_requests-sortable-list', list_to_index: 1)
 
-    wait_for_ajax
+    wait_for_requests
   end
 
   def scroll_into_view(selector)
diff --git a/spec/features/projects/artifacts/file_spec.rb b/spec/features/projects/artifacts/file_spec.rb
index 74308a7e8dd391936cb3101978ff687f42e7cc91..25db908d91730e6bc6675d86bc3cc4749a0d4623 100644
--- a/spec/features/projects/artifacts/file_spec.rb
+++ b/spec/features/projects/artifacts/file_spec.rb
@@ -13,7 +13,7 @@ feature 'Artifact file', :js, feature: true do
     before do
       visit_file('other_artifacts_0.1.2/doc_sample.txt')
 
-      wait_for_ajax
+      wait_for_requests
     end
 
     it 'displays an error' do
@@ -37,7 +37,7 @@ feature 'Artifact file', :js, feature: true do
     before do
       visit_file('rails_sample.jpg')
 
-      wait_for_ajax
+      wait_for_requests
     end
 
     it 'displays the blob' do
diff --git a/spec/features/projects/blobs/blob_show_spec.rb b/spec/features/projects/blobs/blob_show_spec.rb
index fc242082278a9e621d09e9abdf5445e3b3563ef5..82cfbfda1571e425f960bc1791c07d34c4df2a1c 100644
--- a/spec/features/projects/blobs/blob_show_spec.rb
+++ b/spec/features/projects/blobs/blob_show_spec.rb
@@ -6,7 +6,7 @@ feature 'File blob', :js, feature: true do
   def visit_blob(path, fragment = nil)
     visit namespace_project_blob_path(project.namespace, project, File.join('master', path), anchor: fragment)
 
-    wait_for_ajax
+    wait_for_requests
   end
 
   context 'Ruby file' do
@@ -61,7 +61,7 @@ feature 'File blob', :js, feature: true do
         before do
           find('.js-blob-viewer-switch-btn[data-viewer=simple]').click
 
-          wait_for_ajax
+          wait_for_requests
         end
 
         it 'displays the blob using the simple viewer' do
@@ -82,7 +82,7 @@ feature 'File blob', :js, feature: true do
           before do
             find('.js-blob-viewer-switch-btn[data-viewer=rich]').click
 
-            wait_for_ajax
+            wait_for_requests
           end
 
           it 'displays the blob using the rich viewer' do
@@ -170,7 +170,7 @@ feature 'File blob', :js, feature: true do
         before do
           find('.js-blob-viewer-switcher .js-blob-viewer-switch-btn[data-viewer=simple]').click
 
-          wait_for_ajax
+          wait_for_requests
         end
 
         it 'displays an error' do
diff --git a/spec/features/projects/blobs/edit_spec.rb b/spec/features/projects/blobs/edit_spec.rb
index cc5b1a7e734d8d218cdcfaa274ff79b8b5305c71..1a38997450db94732fba41e795bf42edc8725ef8 100644
--- a/spec/features/projects/blobs/edit_spec.rb
+++ b/spec/features/projects/blobs/edit_spec.rb
@@ -18,7 +18,7 @@ feature 'Editing file blob', feature: true, js: true do
     end
 
     def edit_and_commit
-      wait_for_ajax
+      wait_for_requests
       find('.js-edit-blob').click
       execute_script('ace.edit("editor").setValue("class NextFeature\nend\n")')
       click_button 'Commit changes'
diff --git a/spec/features/projects/blobs/user_create_spec.rb b/spec/features/projects/blobs/user_create_spec.rb
index d805450e0959ba2991252ebc6f12571d8de8e07d..4b6c55f5f44fbb68bebafbf615a28ba12001b6d7 100644
--- a/spec/features/projects/blobs/user_create_spec.rb
+++ b/spec/features/projects/blobs/user_create_spec.rb
@@ -15,7 +15,7 @@ feature 'New blob creation', feature: true, js: true do
   end
 
   def edit_file
-    wait_for_ajax
+    wait_for_requests
     fill_in 'file_name', with: 'feature.rb'
     execute_script("ace.edit('editor').setValue('#{content}')")
   end
diff --git a/spec/features/projects/commit/cherry_pick_spec.rb b/spec/features/projects/commit/cherry_pick_spec.rb
index fa67d390c4768025694405a15704a4218a726bea..bc7ca0ddd389ff29c3054eeace09cd6c70276758 100644
--- a/spec/features/projects/commit/cherry_pick_spec.rb
+++ b/spec/features/projects/commit/cherry_pick_spec.rb
@@ -72,11 +72,11 @@ describe 'Cherry-pick Commits' do
         click_button 'master'
       end
 
-      wait_for_ajax
+      wait_for_requests
 
       page.within('#modal-cherry-pick-commit .dropdown-menu') do
         find('.dropdown-input input').set('feature')
-        wait_for_ajax
+        wait_for_requests
         click_link "feature"
       end
 
diff --git a/spec/features/projects/commit/mini_pipeline_graph_spec.rb b/spec/features/projects/commit/mini_pipeline_graph_spec.rb
index 98c0f2c63b0975472dbb29a2e52435e0198db2f0..f2de195eb7fc5ba2512ce5ce01211d99b30f9cb7 100644
--- a/spec/features/projects/commit/mini_pipeline_graph_spec.rb
+++ b/spec/features/projects/commit/mini_pipeline_graph_spec.rb
@@ -32,7 +32,7 @@ feature 'Mini Pipeline Graph in Commit View', :js, :feature do
     it 'should show the builds list when stage is clicked' do
       first('.mini-pipeline-graph-dropdown-toggle').click
 
-      wait_for_ajax
+      wait_for_requests
 
       page.within '.js-builds-dropdown-list' do
         expect(page).to have_selector('.ci-status-icon-running')
diff --git a/spec/features/projects/compare_spec.rb b/spec/features/projects/compare_spec.rb
index b2a3b111c9ee2cd3f025f193eff60c147890cffb..294a63a5c6dbebf72e94b1f05995c1cf90cbff90 100644
--- a/spec/features/projects/compare_spec.rb
+++ b/spec/features/projects/compare_spec.rb
@@ -53,7 +53,7 @@ describe "Compare", js: true do
     dropdown = find(".js-compare-#{dropdown_type}-dropdown")
     dropdown.find(".compare-dropdown-toggle").click
     dropdown.fill_in("Filter by Git revision", with: selection)
-    wait_for_ajax
+    wait_for_requests
     dropdown.find_all("a[data-ref=\"#{selection}\"]", visible: true).last.click
   end
 end
diff --git a/spec/features/projects/features_visibility_spec.rb b/spec/features/projects/features_visibility_spec.rb
index 4533a6fb144cbb96c9cb25c8ff88c9f7383e74ef..c49648f54bdcab621a28870fc91602ae9454c6d7 100644
--- a/spec/features/projects/features_visibility_spec.rb
+++ b/spec/features/projects/features_visibility_spec.rb
@@ -21,17 +21,17 @@ describe 'Edit Project Settings', feature: true do
 
           select 'Disabled', from: "project_project_feature_attributes_#{tool_name}_access_level"
           click_button 'Save changes'
-          wait_for_ajax
+          wait_for_requests
           expect(page).not_to have_selector(".shortcuts-#{shortcut_name}")
 
           select 'Everyone with access', from: "project_project_feature_attributes_#{tool_name}_access_level"
           click_button 'Save changes'
-          wait_for_ajax
+          wait_for_requests
           expect(page).to have_selector(".shortcuts-#{shortcut_name}")
 
           select 'Only team members', from: "project_project_feature_attributes_#{tool_name}_access_level"
           click_button 'Save changes'
-          wait_for_ajax
+          wait_for_requests
           expect(page).to have_selector(".shortcuts-#{shortcut_name}")
 
           sleep 0.1
@@ -169,7 +169,7 @@ describe 'Edit Project Settings', feature: true do
       select "Disabled", from: "project_project_feature_attributes_wiki_access_level"
 
       click_button "Save changes"
-      wait_for_ajax
+      wait_for_requests
 
       visit namespace_project_path(project.namespace, project)
 
@@ -182,7 +182,7 @@ describe 'Edit Project Settings', feature: true do
       select "Disabled", from: "project_project_feature_attributes_wiki_access_level"
 
       click_button "Save changes"
-      wait_for_ajax
+      wait_for_requests
 
       visit activity_namespace_project_path(project.namespace, project)
 
@@ -223,7 +223,7 @@ describe 'Edit Project Settings', feature: true do
 
     def save_changes_and_check_activity_tab
       click_button "Save changes"
-      wait_for_ajax
+      wait_for_requests
 
       visit activity_namespace_project_path(project.namespace, project)
 
diff --git a/spec/features/projects/files/browse_files_spec.rb b/spec/features/projects/files/browse_files_spec.rb
index 4166aec19562a21aeae9c991c06f8d53069ed45f..c0a9327249c1af055b38f9e4c349fd22ce458657 100644
--- a/spec/features/projects/files/browse_files_spec.rb
+++ b/spec/features/projects/files/browse_files_spec.rb
@@ -24,7 +24,7 @@ feature 'user browses project', feature: true, js: true do
     click_link 'files'
     click_link 'lfs'
     click_link 'lfs_object.iso'
-    wait_for_ajax
+    wait_for_requests
 
     expect(page).not_to have_content 'Download (1.5 MB)'
     expect(page).to have_content 'version https://git-lfs.github.com/spec/v1'
@@ -36,7 +36,7 @@ feature 'user browses project', feature: true, js: true do
     last_commit = project.repository.last_commit_for_path(project.default_branch, 'files')
 
     click_link 'files'
-    wait_for_ajax
+    wait_for_requests
 
     page.within('.blob-commit-info') do
       expect(page).to have_content last_commit.short_id
diff --git a/spec/features/projects/files/dockerfile_dropdown_spec.rb b/spec/features/projects/files/dockerfile_dropdown_spec.rb
index 548131c7cd48861d3ce2d82f734f31af52286d1b..93909e91d05372d64168fcc6a14b865177e679f7 100644
--- a/spec/features/projects/files/dockerfile_dropdown_spec.rb
+++ b/spec/features/projects/files/dockerfile_dropdown_spec.rb
@@ -19,14 +19,14 @@ feature 'User wants to add a Dockerfile file', feature: true do
   scenario 'user can pick a Dockerfile file from the dropdown', js: true do
     find('.js-dockerfile-selector').click
 
-    wait_for_ajax
+    wait_for_requests
 
     within '.dockerfile-selector' do
       find('.dropdown-input-field').set('HTTPd')
       find('.dropdown-content li', text: 'HTTPd').click
     end
 
-    wait_for_ajax
+    wait_for_requests
 
     expect(page).to have_css('.dockerfile-selector .dropdown-toggle-text', text: 'HTTPd')
     expect(page).to have_content('COPY ./ /usr/local/apache2/htdocs/')
diff --git a/spec/features/projects/files/find_file_keyboard_spec.rb b/spec/features/projects/files/find_file_keyboard_spec.rb
index e7a6749d8acffe366ad553d41dee078d5fba2940..ee42bcaec4b6d3245c57480534fe105f40232045 100644
--- a/spec/features/projects/files/find_file_keyboard_spec.rb
+++ b/spec/features/projects/files/find_file_keyboard_spec.rb
@@ -10,7 +10,7 @@ feature 'Find file keyboard shortcuts', feature: true, js: true do
 
     visit namespace_project_find_file_path(project.namespace, project, project.repository.root_ref)
 
-    wait_for_ajax
+    wait_for_requests
   end
 
   it 'opens file when pressing enter key' do
diff --git a/spec/features/projects/files/gitignore_dropdown_spec.rb b/spec/features/projects/files/gitignore_dropdown_spec.rb
index e59428f8b245279f9cadfc0b5bd534fba93ddf6d..e9f49453121771f84008e07e201e9e687cc1e218 100644
--- a/spec/features/projects/files/gitignore_dropdown_spec.rb
+++ b/spec/features/projects/files/gitignore_dropdown_spec.rb
@@ -15,12 +15,12 @@ feature 'User wants to add a .gitignore file', feature: true do
 
   scenario 'user can pick a .gitignore file from the dropdown', js: true do
     find('.js-gitignore-selector').click
-    wait_for_ajax
+    wait_for_requests
     within '.gitignore-selector' do
       find('.dropdown-input-field').set('rails')
       find('.dropdown-content li', text: 'Rails').click
     end
-    wait_for_ajax
+    wait_for_requests
 
     expect(page).to have_css('.gitignore-selector .dropdown-toggle-text', text: 'Rails')
     expect(page).to have_content('/.bundle')
diff --git a/spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb b/spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb
index 85b66b93fba8b7de24ec4a908906822d13bfc9df..031b89d04996fab5a498092518949d0f84d57e80 100644
--- a/spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb
+++ b/spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb
@@ -15,12 +15,12 @@ feature 'User wants to add a .gitlab-ci.yml file', feature: true do
 
   scenario 'user can pick a template from the dropdown', js: true do
     find('.js-gitlab-ci-yml-selector').click
-    wait_for_ajax
+    wait_for_requests
     within '.gitlab-ci-yml-selector' do
       find('.dropdown-input-field').set('Jekyll')
       find('.dropdown-content li', text: 'Jekyll').click
     end
-    wait_for_ajax
+    wait_for_requests
 
     expect(page).to have_css('.gitlab-ci-yml-selector .dropdown-toggle-text', text: 'Jekyll')
     expect(page).to have_content('This file is a template, and might need editing before it works on your project')
diff --git a/spec/features/projects/files/project_owner_creates_license_file_spec.rb b/spec/features/projects/files/project_owner_creates_license_file_spec.rb
index 249830921acfa1a0e90f716c293fb1fb1bbd0e84..8d410cc3f2e0eb7dc56613a4970050f85b8685b7 100644
--- a/spec/features/projects/files/project_owner_creates_license_file_spec.rb
+++ b/spec/features/projects/files/project_owner_creates_license_file_spec.rb
@@ -63,7 +63,7 @@ feature 'project owner creates a license file', feature: true, js: true do
     page.within('.js-license-selector-wrap') do
       click_button 'Apply a license template'
       click_link template
-      wait_for_ajax
+      wait_for_requests
     end
   end
 end
diff --git a/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb b/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb
index 70a41886985a3c43015fa8fe5ed7e7606825dd23..8e197bccabf521c75d8bbd7ffed8eece8ed18fbf 100644
--- a/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb
+++ b/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb
@@ -40,7 +40,7 @@ feature 'project owner sees a link to create a license file in empty project', f
     page.within('.js-license-selector-wrap') do
       click_button 'Apply a license template'
       click_link template
-      wait_for_ajax
+      wait_for_requests
     end
   end
 end
diff --git a/spec/features/projects/files/undo_template_spec.rb b/spec/features/projects/files/undo_template_spec.rb
index cd3af0b7d29991aa0dc18a327a62c359ca0882a7..de10eec05577489f6d68215380319a7347536e02 100644
--- a/spec/features/projects/files/undo_template_spec.rb
+++ b/spec/features/projects/files/undo_template_spec.rb
@@ -57,7 +57,7 @@ end
 def select_file_template(template_selector_selector, template_name)
   find(template_selector_selector).click
   find('.dropdown-content li', text: template_name).click
-  wait_for_ajax
+  wait_for_requests
 end
 
 def select_file_template_type(template_type)
diff --git a/spec/features/projects/issuable_templates_spec.rb b/spec/features/projects/issuable_templates_spec.rb
index fa5e30075e3050a22c64076023f29648b42d7c61..3076c863dcb5455afb47be2df7a98cfa24291a27 100644
--- a/spec/features/projects/issuable_templates_spec.rb
+++ b/spec/features/projects/issuable_templates_spec.rb
@@ -34,14 +34,14 @@ feature 'issuable templates', feature: true, js: true do
 
     scenario 'user selects "bug" template' do
       select_template 'bug'
-      wait_for_ajax
+      wait_for_requests
       assert_template
       save_changes
     end
 
     scenario 'user selects "bug" template and then "no template"' do
       select_template 'bug'
-      wait_for_ajax
+      wait_for_requests
       select_option 'No template'
       assert_template('')
       save_changes('')
@@ -49,7 +49,7 @@ feature 'issuable templates', feature: true, js: true do
 
     scenario 'user selects "bug" template, edits description and then selects "reset template"' do
       select_template 'bug'
-      wait_for_ajax
+      wait_for_requests
       find_field('issue_description').send_keys(description_addition)
       assert_template(template_content + description_addition)
       select_option 'Reset template'
@@ -61,7 +61,7 @@ feature 'issuable templates', feature: true, js: true do
       start_height = page.evaluate_script('$(".markdown-area").outerHeight()')
 
       select_template 'test'
-      wait_for_ajax
+      wait_for_requests
 
       end_height = page.evaluate_script('$(".markdown-area").outerHeight()')
 
@@ -88,7 +88,7 @@ feature 'issuable templates', feature: true, js: true do
 
     scenario 'user selects "bug" template' do
       select_template 'bug'
-      wait_for_ajax
+      wait_for_requests
       assert_template("#{template_content}")
       save_changes
     end
@@ -111,7 +111,7 @@ feature 'issuable templates', feature: true, js: true do
 
     scenario 'user selects "feature-proposal" template' do
       select_template 'feature-proposal'
-      wait_for_ajax
+      wait_for_requests
       assert_template
       save_changes
     end
@@ -143,7 +143,7 @@ feature 'issuable templates', feature: true, js: true do
       context 'template exists in target project' do
         scenario 'user selects template' do
           select_template 'feature-proposal'
-          wait_for_ajax
+          wait_for_requests
           assert_template
           save_changes
         end
diff --git a/spec/features/projects/labels/update_prioritization_spec.rb b/spec/features/projects/labels/update_prioritization_spec.rb
index 836f81fb16da56e353d411341fd976ca1928f637..34fafe072a39ea72abf0d4968f7e3a156ff546a8 100644
--- a/spec/features/projects/labels/update_prioritization_spec.rb
+++ b/spec/features/projects/labels/update_prioritization_spec.rb
@@ -24,7 +24,7 @@ feature 'Prioritize labels', feature: true do
 
       page.within('.other-labels') do
         all('.js-toggle-priority')[1].click
-        wait_for_ajax
+        wait_for_requests
         expect(page).not_to have_content('feature')
       end
 
@@ -43,7 +43,7 @@ feature 'Prioritize labels', feature: true do
         expect(page).to have_content('feature')
 
         first('.js-toggle-priority').click
-        wait_for_ajax
+        wait_for_requests
         expect(page).not_to have_content('bug')
       end
 
@@ -59,7 +59,7 @@ feature 'Prioritize labels', feature: true do
 
       page.within('.other-labels') do
         first('.js-toggle-priority').click
-        wait_for_ajax
+        wait_for_requests
         expect(page).not_to have_content('bug')
       end
 
@@ -78,7 +78,7 @@ feature 'Prioritize labels', feature: true do
         expect(page).to have_content('bug')
 
         first('.js-toggle-priority').click
-        wait_for_ajax
+        wait_for_requests
         expect(page).not_to have_content('bug')
       end
 
@@ -107,7 +107,7 @@ feature 'Prioritize labels', feature: true do
       end
 
       refresh
-      wait_for_ajax
+      wait_for_requests
 
       page.within('.prioritized-labels') do
         expect(first('li')).to have_content('feature')
diff --git a/spec/features/projects/members/group_links_spec.rb b/spec/features/projects/members/group_links_spec.rb
index ab2b089db2e96fd12882990aaadf0b249af814ce..3d253f014840765d6c0c1449849be415365601af 100644
--- a/spec/features/projects/members/group_links_spec.rb
+++ b/spec/features/projects/members/group_links_spec.rb
@@ -20,7 +20,7 @@ feature 'Projects > Members > Anonymous user sees members', feature: true, js: t
       click_link 'Guest'
     end
 
-    wait_for_ajax
+    wait_for_requests
 
     visit namespace_project_settings_members_path(project.namespace, project)
 
@@ -31,7 +31,7 @@ feature 'Projects > Members > Anonymous user sees members', feature: true, js: t
     tomorrow = Date.today + 3
 
     fill_in "member_expires_at_#{group.id}", with: tomorrow.strftime("%F")
-    wait_for_ajax
+    wait_for_requests
 
     page.within(find('li.group_member')) do
       expect(page).to have_content('Expires in')
@@ -42,7 +42,7 @@ feature 'Projects > Members > Anonymous user sees members', feature: true, js: t
     page.within(first('.group_member')) do
       find('.btn-remove').click
     end
-    wait_for_ajax
+    wait_for_requests
 
     expect(page).not_to have_selector('.group_member')
   end
diff --git a/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb b/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb
index 19d14ad9af45353697bc922f58eb31b07a7074b1..1e6f15d8258b394ee3ea5666df8e14807c1e174f 100644
--- a/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb
+++ b/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb
@@ -38,7 +38,7 @@ feature 'Projects > Members > Master adds member with expiration date', feature:
 
       page.within "#project_member_#{new_member.project_members.first.id}" do
         find('.js-access-expiration-date').set date.to_s(:medium)
-        wait_for_ajax
+        wait_for_requests
         expect(page).to have_content('Expires in 3 days')
       end
     end
diff --git a/spec/features/projects/pipeline_schedules_spec.rb b/spec/features/projects/pipeline_schedules_spec.rb
index a521222fc9c4ce38197f1bc390d90c62c0ea2d1e..f40e1bc49306cebc26b93244ed6c54a9b18e84cc 100644
--- a/spec/features/projects/pipeline_schedules_spec.rb
+++ b/spec/features/projects/pipeline_schedules_spec.rb
@@ -2,7 +2,6 @@ require 'spec_helper'
 
 feature 'Pipeline Schedules', :feature do
   include PipelineSchedulesHelper
-  include WaitForAjax
 
   let!(:project) { create(:project) }
   let!(:pipeline_schedule) { create(:ci_pipeline_schedule, :nightly, project: project ) }
diff --git a/spec/features/projects/pipelines/pipelines_spec.rb b/spec/features/projects/pipelines/pipelines_spec.rb
index 5f82cf2f5e544736c2f6754f29ba19b4c34b73d4..a97a92aa64feb8c6dca846db67d11ab319b9e434 100644
--- a/spec/features/projects/pipelines/pipelines_spec.rb
+++ b/spec/features/projects/pipelines/pipelines_spec.rb
@@ -1,8 +1,6 @@
 require 'spec_helper'
 
 describe 'Pipelines', :feature, :js do
-  include WaitForVueResource
-
   let(:project) { create(:empty_project) }
 
   context 'when user is logged in' do
@@ -54,7 +52,7 @@ describe 'Pipelines', :feature, :js do
       context 'header tabs' do
         before do
           visit namespace_project_pipelines_path(project.namespace, project)
-          wait_for_vue_resource
+          wait_for_requests
         end
 
         it 'shows a tab for All pipelines and count' do
@@ -106,7 +104,7 @@ describe 'Pipelines', :feature, :js do
         context 'when canceling' do
           before do
             find('.js-pipelines-cancel-button').click
-            wait_for_vue_resource
+            wait_for_requests
           end
 
           it 'indicated that pipelines was canceled' do
@@ -136,7 +134,7 @@ describe 'Pipelines', :feature, :js do
         context 'when retrying' do
           before do
             find('.js-pipelines-retry-button').click
-            wait_for_vue_resource
+            wait_for_requests
           end
 
           it 'shows running pipeline that is not retryable' do
@@ -356,14 +354,14 @@ describe 'Pipelines', :feature, :js do
 
         it 'should render pagination' do
           visit namespace_project_pipelines_path(project.namespace, project)
-          wait_for_vue_resource
+          wait_for_requests
 
           expect(page).to have_selector('.gl-pagination')
         end
 
         it 'should render second page of pipelines' do
           visit namespace_project_pipelines_path(project.namespace, project, page: '2')
-          wait_for_vue_resource
+          wait_for_requests
 
           expect(page).to have_selector('.gl-pagination .page', count: 2)
         end
@@ -392,7 +390,7 @@ describe 'Pipelines', :feature, :js do
         create(:generic_commit_status, pipeline: pipeline, stage: 'external', name: 'jenkins', stage_idx: 3)
 
         visit namespace_project_pipeline_path(project.namespace, project, pipeline)
-        wait_for_vue_resource
+        wait_for_requests
       end
 
       it 'shows a graph with grouped stages' do
@@ -507,6 +505,6 @@ describe 'Pipelines', :feature, :js do
 
   def visit_project_pipelines(**query)
     visit namespace_project_pipelines_path(project.namespace, project, query)
-    wait_for_vue_resource
+    wait_for_requests
   end
 end
diff --git a/spec/features/projects/ref_switcher_spec.rb b/spec/features/projects/ref_switcher_spec.rb
index 881ad7910dd4e841a8c6a77af917d1a5130d3c77..04414490571b14eae2a1ff0e0c82229ae30e5eab 100644
--- a/spec/features/projects/ref_switcher_spec.rb
+++ b/spec/features/projects/ref_switcher_spec.rb
@@ -12,12 +12,12 @@ feature 'Ref switcher', feature: true, js: true do
 
   it 'allow user to change ref by enter key' do
     click_button 'master'
-    wait_for_ajax
+    wait_for_requests
 
     page.within '.project-refs-form' do
       input = find('input[type="search"]')
       input.set 'binary'
-      wait_for_ajax
+      wait_for_requests
 
       expect(find('.dropdown-content ul')).to have_selector('li', count: 6)
 
@@ -31,7 +31,7 @@ feature 'Ref switcher', feature: true, js: true do
 
   it "user selects ref with special characters" do
     click_button 'master'
-    wait_for_ajax
+    wait_for_requests
 
     page.within '.project-refs-form' do
       page.fill_in 'Search branches and tags', with: "'test'"
diff --git a/spec/features/projects/snippets/show_spec.rb b/spec/features/projects/snippets/show_spec.rb
index cedf3778c7ec3e8807ba2ea54e7da1e43ebffb3b..b844e60e5d5c4cef15bafc162dcd6b8a4c63adb0 100644
--- a/spec/features/projects/snippets/show_spec.rb
+++ b/spec/features/projects/snippets/show_spec.rb
@@ -17,7 +17,7 @@ feature 'Project snippet', :js, feature: true do
     before do
       visit namespace_project_snippet_path(project.namespace, project, snippet)
 
-      wait_for_ajax
+      wait_for_requests
     end
 
     it 'displays the blob' do
@@ -48,7 +48,7 @@ feature 'Project snippet', :js, feature: true do
       before do
         visit namespace_project_snippet_path(project.namespace, project, snippet)
 
-        wait_for_ajax
+        wait_for_requests
       end
 
       it 'displays the blob using the rich viewer' do
@@ -78,7 +78,7 @@ feature 'Project snippet', :js, feature: true do
         before do
           find('.js-blob-viewer-switch-btn[data-viewer=simple]').click
 
-          wait_for_ajax
+          wait_for_requests
         end
 
         it 'displays the blob using the simple viewer' do
@@ -99,7 +99,7 @@ feature 'Project snippet', :js, feature: true do
           before do
             find('.js-blob-viewer-switch-btn[data-viewer=rich]').click
 
-            wait_for_ajax
+            wait_for_requests
           end
 
           it 'displays the blob using the rich viewer' do
@@ -120,7 +120,7 @@ feature 'Project snippet', :js, feature: true do
       before do
         visit namespace_project_snippet_path(project.namespace, project, snippet, anchor: 'L1')
 
-        wait_for_ajax
+        wait_for_requests
       end
 
       it 'displays the blob using the simple viewer' do
diff --git a/spec/features/projects/view_on_env_spec.rb b/spec/features/projects/view_on_env_spec.rb
index b7a41ca54e6eebcb3402397b0419f24bc5132dba..640f1376548696e515c86dc1ab89e1a7f61d1897 100644
--- a/spec/features/projects/view_on_env_spec.rb
+++ b/spec/features/projects/view_on_env_spec.rb
@@ -54,7 +54,7 @@ describe 'View on environment', js: true do
 
           visit diffs_namespace_project_merge_request_path(project.namespace, project, merge_request)
 
-          wait_for_ajax
+          wait_for_requests
         end
 
         it 'has a "View on env" button' do
@@ -70,7 +70,7 @@ describe 'View on environment', js: true do
 
           visit namespace_project_compare_path(project.namespace, project, from: 'master', to: branch_name)
 
-          wait_for_ajax
+          wait_for_requests
         end
 
         it 'has a "View on env" button' do
@@ -84,7 +84,7 @@ describe 'View on environment', js: true do
 
           visit namespace_project_compare_path(project.namespace, project, from: 'master', to: sha)
 
-          wait_for_ajax
+          wait_for_requests
         end
 
         it 'has a "View on env" button' do
@@ -98,7 +98,7 @@ describe 'View on environment', js: true do
 
           visit namespace_project_blob_path(project.namespace, project, File.join(branch_name, file_path))
 
-          wait_for_ajax
+          wait_for_requests
         end
 
         it 'has a "View on env" button' do
@@ -112,7 +112,7 @@ describe 'View on environment', js: true do
 
           visit namespace_project_blob_path(project.namespace, project, File.join(sha, file_path))
 
-          wait_for_ajax
+          wait_for_requests
         end
 
         it 'has a "View on env" button' do
@@ -126,7 +126,7 @@ describe 'View on environment', js: true do
 
           visit namespace_project_commit_path(project.namespace, project, sha)
 
-          wait_for_ajax
+          wait_for_requests
         end
 
         it 'has a "View on env" button' do
diff --git a/spec/features/search_spec.rb b/spec/features/search_spec.rb
index 2fda7758407cee5967cbafd7297d8762c94fbf89..7834807b1f15953298ac2c54f6e58cc1ed36b9ba 100644
--- a/spec/features/search_spec.rb
+++ b/spec/features/search_spec.rb
@@ -28,7 +28,7 @@ describe "Search", feature: true  do
 
     it 'shows group name after filtering' do
       find('.js-search-group-dropdown').trigger('click')
-      wait_for_ajax
+      wait_for_requests
 
       page.within '.search-holder' do
         click_link group.name
@@ -39,7 +39,7 @@ describe "Search", feature: true  do
 
     it 'filters by group projects after filtering by group' do
       find('.js-search-group-dropdown').trigger('click')
-      wait_for_ajax
+      wait_for_requests
 
       page.within '.search-holder' do
         click_link group.name
@@ -49,7 +49,7 @@ describe "Search", feature: true  do
 
       page.within('.project-filter') do
         find('.js-search-project-dropdown').trigger('click')
-        wait_for_ajax
+        wait_for_requests
 
         expect(page).to have_link(group_project.name_with_namespace)
       end
@@ -58,7 +58,7 @@ describe "Search", feature: true  do
     it 'shows project name after filtering' do
       page.within('.project-filter') do
         find('.js-search-project-dropdown').trigger('click')
-        wait_for_ajax
+        wait_for_requests
 
         click_link project.name_with_namespace
       end
diff --git a/spec/features/snippets/create_snippet_spec.rb b/spec/features/snippets/create_snippet_spec.rb
index 9409c323288f2d2b43dabfe68cc70477459aa538..31a2d4ae9842b5a72f27266ca8216271e37c9821 100644
--- a/spec/features/snippets/create_snippet_spec.rb
+++ b/spec/features/snippets/create_snippet_spec.rb
@@ -13,7 +13,7 @@ feature 'Create Snippet', :js, feature: true do
     end
 
     click_button 'Create snippet'
-    wait_for_ajax
+    wait_for_requests
 
     expect(page).to have_content('My Snippet Title')
     expect(page).to have_content('Hello World!')
@@ -27,7 +27,7 @@ feature 'Create Snippet', :js, feature: true do
     end
 
     click_button 'Create snippet'
-    wait_for_ajax
+    wait_for_requests
 
     expect(page).to have_content('My Snippet Title')
     expect(page).to have_content('snippet+file+name')
diff --git a/spec/features/snippets/notes_on_personal_snippets_spec.rb b/spec/features/snippets/notes_on_personal_snippets_spec.rb
index 698eb46573fc15e3be5525577e1417e6b9bb8336..f7afc1740191de7828b602fa8cca22fd0f727de9 100644
--- a/spec/features/snippets/notes_on_personal_snippets_spec.rb
+++ b/spec/features/snippets/notes_on_personal_snippets_spec.rb
@@ -93,7 +93,7 @@ describe 'Comments on personal snippets', :js, feature: true do
         click_on 'Remove comment'
       end
 
-      wait_for_ajax
+      wait_for_requests
 
       expect(page).not_to have_selector("#notes-list li#note_#{snippet_notes[0].id}")
     end
diff --git a/spec/features/snippets/public_snippets_spec.rb b/spec/features/snippets/public_snippets_spec.rb
index 2df483818c3856c7af92e3c14577c12fcab24785..afd945a85551d452b4ccb1db647e052c3cc1f18b 100644
--- a/spec/features/snippets/public_snippets_spec.rb
+++ b/spec/features/snippets/public_snippets_spec.rb
@@ -5,7 +5,7 @@ feature 'Public Snippets', :js, feature: true do
     public_snippet = create(:personal_snippet, :public)
 
     visit snippet_path(public_snippet)
-    wait_for_ajax
+    wait_for_requests
 
     expect(page).to have_content(public_snippet.content)
   end
diff --git a/spec/features/snippets/show_spec.rb b/spec/features/snippets/show_spec.rb
index e36cf547f803e1a044b0e20825d9652eb5c6e278..95fc1d2bb62277f0ebb1046dd819a08d45a96069 100644
--- a/spec/features/snippets/show_spec.rb
+++ b/spec/features/snippets/show_spec.rb
@@ -11,7 +11,7 @@ feature 'Snippet', :js, feature: true do
     before do
       visit snippet_path(snippet)
 
-      wait_for_ajax
+      wait_for_requests
     end
 
     it 'displays the blob' do
@@ -42,7 +42,7 @@ feature 'Snippet', :js, feature: true do
       before do
         visit snippet_path(snippet)
 
-        wait_for_ajax
+        wait_for_requests
       end
 
       it 'displays the blob using the rich viewer' do
@@ -72,7 +72,7 @@ feature 'Snippet', :js, feature: true do
         before do
           find('.js-blob-viewer-switch-btn[data-viewer=simple]').click
 
-          wait_for_ajax
+          wait_for_requests
         end
 
         it 'displays the blob using the simple viewer' do
@@ -93,7 +93,7 @@ feature 'Snippet', :js, feature: true do
           before do
             find('.js-blob-viewer-switch-btn[data-viewer=rich]').click
 
-            wait_for_ajax
+            wait_for_requests
           end
 
           it 'displays the blob using the rich viewer' do
@@ -114,7 +114,7 @@ feature 'Snippet', :js, feature: true do
       before do
         visit snippet_path(snippet, anchor: 'L1')
 
-        wait_for_ajax
+        wait_for_requests
       end
 
       it 'displays the blob using the simple viewer' do
diff --git a/spec/features/task_lists_spec.rb b/spec/features/task_lists_spec.rb
index 8bd13caf2b0be85cbc98b2afcb0eef437c86d3cc..563e65d3cc54084d348c239d3d00767047761c9e 100644
--- a/spec/features/task_lists_spec.rb
+++ b/spec/features/task_lists_spec.rb
@@ -64,13 +64,11 @@ feature 'Task Lists', feature: true do
 
   describe 'for Issues', feature: true do
     describe 'multiple tasks', js: true do
-      include WaitForVueResource
-
       let!(:issue) { create(:issue, description: markdown, author: user, project: project) }
 
       it 'renders' do
         visit_issue(project, issue)
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_selector('ul.task-list',      count: 1)
         expect(page).to have_selector('li.task-list-item', count: 6)
@@ -79,7 +77,7 @@ feature 'Task Lists', feature: true do
 
       it 'contains the required selectors' do
         visit_issue(project, issue)
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_selector(".wiki .task-list .task-list-item .task-list-item-checkbox")
         expect(page).to have_selector('a.btn-close')
@@ -87,14 +85,14 @@ feature 'Task Lists', feature: true do
 
       it 'is only editable by author' do
         visit_issue(project, issue)
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_selector(".wiki .task-list .task-list-item .task-list-item-checkbox")
 
         logout(:user)
         login_as(user2)
         visit current_path
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_selector(".wiki .task-list .task-list-item .task-list-item-checkbox")
       end
@@ -106,13 +104,11 @@ feature 'Task Lists', feature: true do
     end
 
     describe 'single incomplete task', js: true do
-      include WaitForVueResource
-
       let!(:issue) { create(:issue, description: singleIncompleteMarkdown, author: user, project: project) }
 
       it 'renders' do
         visit_issue(project, issue)
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_selector('ul.task-list',      count: 1)
         expect(page).to have_selector('li.task-list-item', count: 1)
@@ -127,12 +123,11 @@ feature 'Task Lists', feature: true do
     end
 
     describe 'single complete task', js: true do
-      include WaitForVueResource
       let!(:issue) { create(:issue, description: singleCompleteMarkdown, author: user, project: project) }
 
       it 'renders' do
         visit_issue(project, issue)
-        wait_for_vue_resource
+        wait_for_requests
 
         expect(page).to have_selector('ul.task-list',      count: 1)
         expect(page).to have_selector('li.task-list-item', count: 1)
diff --git a/spec/features/todos/todos_filtering_spec.rb b/spec/features/todos/todos_filtering_spec.rb
index f32e70c2c3fdec4ad0ca497d331baa28d925033f..bbfa4e08379574bfedf2c66f7d60c88f5c2391e7 100644
--- a/spec/features/todos/todos_filtering_spec.rb
+++ b/spec/features/todos/todos_filtering_spec.rb
@@ -28,7 +28,7 @@ describe 'Dashboard > User filters todos', feature: true, js: true do
       click_link project_1.name_with_namespace
     end
 
-    wait_for_ajax
+    wait_for_requests
 
     expect(page).to     have_content project_1.name_with_namespace
     expect(page).not_to have_content project_2.name_with_namespace
@@ -43,7 +43,7 @@ describe 'Dashboard > User filters todos', feature: true, js: true do
         click_link user_1.name
       end
 
-      wait_for_ajax
+      wait_for_requests
 
       expect(find('.todos-list')).to     have_content 'merge request'
       expect(find('.todos-list')).not_to have_content 'issue'
@@ -90,7 +90,7 @@ describe 'Dashboard > User filters todos', feature: true, js: true do
       click_link 'Issue'
     end
 
-    wait_for_ajax
+    wait_for_requests
 
     expect(find('.todos-list')).to     have_content issue.to_reference
     expect(find('.todos-list')).not_to have_content merge_request.to_reference
@@ -132,7 +132,7 @@ describe 'Dashboard > User filters todos', feature: true, js: true do
         click_link name
       end
 
-      wait_for_ajax
+      wait_for_requests
     end
 
     def expect_to_see_action(action_name)
diff --git a/spec/features/todos/todos_spec.rb b/spec/features/todos/todos_spec.rb
index 55b3e3d94242391c5c6e46d3ad85dc01c4599e6b..bb4b2aed0e303692a82d87afafa7d950ec5010e7 100644
--- a/spec/features/todos/todos_spec.rb
+++ b/spec/features/todos/todos_spec.rb
@@ -64,7 +64,7 @@ describe 'Dashboard Todos', feature: true do
         before do
           within first('.todo') do
             click_link 'Done'
-            wait_for_ajax
+            wait_for_requests
             click_link 'Undo'
           end
         end
@@ -309,9 +309,9 @@ describe 'Dashboard Todos', feature: true do
 
         def mark_all_and_undo
           find('.js-todos-mark-all').trigger('click')
-          wait_for_ajax
+          wait_for_requests
           find('.js-todos-undo-all').trigger('click')
-          wait_for_ajax
+          wait_for_requests
         end
       end
     end
diff --git a/spec/features/u2f_spec.rb b/spec/features/u2f_spec.rb
index 544d2dcb87fe54498784a414b5802eee6ba8c589..2fed8067042409b64fce5d31add03a73d452fb55 100644
--- a/spec/features/u2f_spec.rb
+++ b/spec/features/u2f_spec.rb
@@ -6,7 +6,7 @@ feature 'Using U2F (Universal 2nd Factor) Devices for Authentication', :js do
   def manage_two_factor_authentication
     click_on 'Manage two-factor authentication'
     expect(page).to have_content("Setup new U2F device")
-    wait_for_ajax
+    wait_for_requests
   end
 
   def register_u2f_device(u2f_device = nil, name: 'My device')
diff --git a/spec/features/uploads/user_uploads_file_to_note_spec.rb b/spec/features/uploads/user_uploads_file_to_note_spec.rb
index 8f03024ea06f8c22e1cb453d5f89d4ef22b53653..9332d3b88d2c72a2be922579bab488e10399642c 100644
--- a/spec/features/uploads/user_uploads_file_to_note_spec.rb
+++ b/spec/features/uploads/user_uploads_file_to_note_spec.rb
@@ -64,7 +64,7 @@ feature 'User uploads file to note', feature: true do
   context 'uploading is complete' do
     it 'shows "Attach a file" button on uploading complete', js: true do
       dropzone_file([Rails.root.join('spec', 'fixtures', 'dk.png')])
-      wait_for_ajax
+      wait_for_requests
 
       expect(page).to have_button('Attach a file')
       expect(page).not_to have_selector('.uploading-progress-container', visible: true)
@@ -73,7 +73,7 @@ feature 'User uploads file to note', feature: true do
     scenario 'they see the attached file', js: true do
       dropzone_file([Rails.root.join('spec', 'fixtures', 'dk.png')])
       click_button 'Comment'
-      wait_for_ajax
+      wait_for_requests
 
       expect(find('a.no-attachment-icon img[alt="dk"]')['src'])
         .to match(%r{/#{project.full_path}/uploads/\h{32}/dk\.png$})
diff --git a/spec/features/users/projects_spec.rb b/spec/features/users/projects_spec.rb
index 373b64808f8ecbe54ad9739753a0512e2700c047..67ce4b444645c168efa0f1153a7b44c8d877d906 100644
--- a/spec/features/users/projects_spec.rb
+++ b/spec/features/users/projects_spec.rb
@@ -16,7 +16,7 @@ describe 'Projects tab on a user profile', :feature, :js do
       click_link('Personal projects')
     end
 
-    wait_for_ajax
+    wait_for_requests
   end
 
   it 'paginates results' do
diff --git a/spec/features/users/snippets_spec.rb b/spec/features/users/snippets_spec.rb
index 4efbd67232238d430706f7013d98a613f924d0f6..2e388115633f406d1e1d22727ab0ce071a18c973 100644
--- a/spec/features/users/snippets_spec.rb
+++ b/spec/features/users/snippets_spec.rb
@@ -11,7 +11,7 @@ describe 'Snippets tab on a user profile', feature: true, js: true do
         allow(Snippet).to receive(:default_per_page).and_return(1)
         visit user_path(user)
         page.within('.user-profile-nav') { click_link 'Snippets' }
-        wait_for_ajax
+        wait_for_requests
       end
 
       it_behaves_like 'paginated snippets', remote: true
@@ -27,7 +27,7 @@ describe 'Snippets tab on a user profile', feature: true, js: true do
         login_as(:user)
         visit user_path(user)
         page.within('.user-profile-nav') { click_link 'Snippets' }
-        wait_for_ajax
+        wait_for_requests
 
         expect(page).to have_selector('.snippet-row', count: 2)
 
@@ -38,7 +38,7 @@ describe 'Snippets tab on a user profile', feature: true, js: true do
       it 'contains only public snippets of a user when a user is not logged in' do
         visit user_path(user)
         page.within('.user-profile-nav') { click_link 'Snippets' }
-        wait_for_ajax
+        wait_for_requests
 
         expect(page).to have_selector('.snippet-row', count: 1)
         expect(page).to have_content(public_snippet.title)
diff --git a/spec/features/users_spec.rb b/spec/features/users_spec.rb
index c43feadc8086c8f40704a53c771c06d3e2590f40..fbe078bd136c6b192e4879bca8295451c6e695c5 100644
--- a/spec/features/users_spec.rb
+++ b/spec/features/users_spec.rb
@@ -78,25 +78,25 @@ feature 'Users', feature: true, js: true do
 
     scenario 'doesn\'t show an error border if the username is available' do
       fill_in username_input, with: 'new-user'
-      wait_for_ajax
+      wait_for_requests
       expect(find('.username')).not_to have_css '.gl-field-error-outline'
     end
 
     scenario 'does not show an error border if the username contains dots (.)' do
       fill_in username_input, with: 'new.user.username'
-      wait_for_ajax
+      wait_for_requests
       expect(find('.username')).not_to have_css '.gl-field-error-outline'
     end
 
     scenario 'shows an error border if the username already exists' do
       fill_in username_input, with: user.username
-      wait_for_ajax
+      wait_for_requests
       expect(find('.username')).to have_css '.gl-field-error-outline'
     end
 
     scenario 'shows an  error border if the username contains special characters' do
       fill_in username_input, with: 'new$user!username'
-      wait_for_ajax
+      wait_for_requests
       expect(find('.username')).to have_css '.gl-field-error-outline'
     end
   end
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index a58f4e664b712c4ef47d062059075b8469069e22..51571ddebe98fa202c99a5c635f264845c600b03 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -44,7 +44,6 @@ RSpec.configure do |config|
   config.include LoginHelpers, type: :feature
   config.include SearchHelpers, type: :feature
   config.include WaitForRequests, :js
-  config.include WaitForAjax, :js
   config.include StubConfiguration
   config.include EmailHelpers, type: :mailer
   config.include TestEnv
diff --git a/spec/support/features/issuable_slash_commands_shared_examples.rb b/spec/support/features/issuable_slash_commands_shared_examples.rb
index ad46b163cd61918589baed6ba607df2c26aceb54..fa82dc5e9f967f35b529a3ae8c31a9f5ffc8d42c 100644
--- a/spec/support/features/issuable_slash_commands_shared_examples.rb
+++ b/spec/support/features/issuable_slash_commands_shared_examples.rb
@@ -22,7 +22,7 @@ shared_examples 'issuable record that supports slash commands in its description
 
   after do
     # Ensure all outstanding Ajax requests are complete to avoid database deadlocks
-    wait_for_ajax
+    wait_for_requests
   end
 
   describe "new #{issuable_type}", js: true do
@@ -58,7 +58,7 @@ shared_examples 'issuable record that supports slash commands in its description
         expect(page).not_to have_content '/label ~bug'
         expect(page).not_to have_content '/milestone %"ASAP"'
 
-        wait_for_ajax
+        wait_for_requests
         issuable.reload
         note = issuable.notes.user.first
 
diff --git a/spec/support/protected_branches/access_control_ce_shared_examples.rb b/spec/support/protected_branches/access_control_ce_shared_examples.rb
index 7fda4ade6653429789ad85408c2c3ea14d90e1e2..287d6bb13c35309c97d0da66d1b5761401a17d05 100644
--- a/spec/support/protected_branches/access_control_ce_shared_examples.rb
+++ b/spec/support/protected_branches/access_control_ce_shared_examples.rb
@@ -38,7 +38,7 @@ RSpec.shared_examples "protected branches > access control > CE" do
         end
       end
 
-      wait_for_ajax
+      wait_for_requests
 
       expect(ProtectedBranch.last.push_access_levels.map(&:access_level)).to include(access_type_id)
     end
@@ -83,7 +83,7 @@ RSpec.shared_examples "protected branches > access control > CE" do
         end
       end
 
-      wait_for_ajax
+      wait_for_requests
 
       expect(ProtectedBranch.last.merge_access_levels.map(&:access_level)).to include(access_type_id)
     end
diff --git a/spec/support/protected_tags/access_control_ce_shared_examples.rb b/spec/support/protected_tags/access_control_ce_shared_examples.rb
index 12622cd548a55f16079424670788f57a823a3dcf..1d11512ef82e06da41a2464c4c1a8b9e162061a4 100644
--- a/spec/support/protected_tags/access_control_ce_shared_examples.rb
+++ b/spec/support/protected_tags/access_control_ce_shared_examples.rb
@@ -39,7 +39,7 @@ RSpec.shared_examples "protected tags > access control > CE" do
         end
       end
 
-      wait_for_ajax
+      wait_for_requests
 
       expect(ProtectedTag.last.create_access_levels.map(&:access_level)).to include(access_type_id)
     end
diff --git a/spec/support/snippets_shared_examples.rb b/spec/support/snippets_shared_examples.rb
index 57dfff3471ffca60c6066c4463b8e2cf80af68cc..85f0facd5c34822b2dc2f2820dce675eafe9fec2 100644
--- a/spec/support/snippets_shared_examples.rb
+++ b/spec/support/snippets_shared_examples.rb
@@ -7,7 +7,7 @@ RSpec.shared_examples 'paginated snippets' do |remote: false|
   context 'clicking on the link to the second page' do
     before do
       click_link('2')
-      wait_for_ajax if remote
+      wait_for_requests if remote
     end
 
     it 'shows the remaining snippets' do
diff --git a/spec/support/target_branch_helpers.rb b/spec/support/target_branch_helpers.rb
index 3ee8f0f657efc5be33e1df04b663a69b0134f037..01d1c53fe6cbc28d4ab2da3533748fb0531b43f0 100644
--- a/spec/support/target_branch_helpers.rb
+++ b/spec/support/target_branch_helpers.rb
@@ -1,7 +1,7 @@
 module TargetBranchHelpers
   def select_branch(name)
     first('button.js-target-branch').click
-    wait_for_ajax
+    wait_for_requests
     all('a[data-group="Branches"]').find do |el|
       el.text == name
     end.click
diff --git a/spec/support/time_tracking_shared_examples.rb b/spec/support/time_tracking_shared_examples.rb
index 84ef46ffa27bfef38cdde24f9aff0eca5423c822..b407b8097d27e3e83de17f6464164c81c47bc276 100644
--- a/spec/support/time_tracking_shared_examples.rb
+++ b/spec/support/time_tracking_shared_examples.rb
@@ -8,7 +8,7 @@ shared_examples 'issuable time tracker' do
   it 'updates the sidebar component when estimate is added' do
     submit_time('/estimate 3w 1d 1h')
 
-    wait_for_ajax
+    wait_for_requests
     page.within '.time-tracking-estimate-only-pane' do
       expect(page).to have_content '3w 1d 1h'
     end
@@ -17,7 +17,7 @@ shared_examples 'issuable time tracker' do
   it 'updates the sidebar component when spent is added' do
     submit_time('/spend 3w 1d 1h')
 
-    wait_for_ajax
+    wait_for_requests
     page.within '.time-tracking-spend-only-pane' do
       expect(page).to have_content '3w 1d 1h'
     end
@@ -27,7 +27,7 @@ shared_examples 'issuable time tracker' do
     submit_time('/estimate 3w 1d 1h')
     submit_time('/spend 3w 1d 1h')
 
-    wait_for_ajax
+    wait_for_requests
     page.within '.time-tracking-comparison-pane' do
       expect(page).to have_content '3w 1d 1h'
     end
@@ -81,5 +81,5 @@ end
 def submit_time(slash_command)
   fill_in 'note[note]', with: slash_command
   find('.js-comment-submit-button').trigger('click')
-  wait_for_ajax
+  wait_for_requests
 end
diff --git a/spec/support/wait_for_ajax.rb b/spec/support/wait_for_ajax.rb
deleted file mode 100644
index 508de2ee8e1c810d8624c8a9262df45239391e71..0000000000000000000000000000000000000000
--- a/spec/support/wait_for_ajax.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-module WaitForAjax
-  def wait_for_ajax
-    Timeout.timeout(Capybara.default_max_wait_time) do
-      loop until finished_all_ajax_requests?
-    end
-  end
-
-  def finished_all_ajax_requests?
-    return true unless javascript_test?
-    return true if page.evaluate_script('typeof jQuery === "undefined"')
-
-    page.evaluate_script('jQuery.active').zero?
-  end
-
-  def javascript_test?
-    Capybara.current_driver == Capybara.javascript_driver
-  end
-end
diff --git a/spec/support/wait_for_requests.rb b/spec/support/wait_for_requests.rb
index d41e83ae128935f72b33fca6085bc69e813f6305..05ec9026141f947439b99102e04831c9a85651f2 100644
--- a/spec/support/wait_for_requests.rb
+++ b/spec/support/wait_for_requests.rb
@@ -1,21 +1,31 @@
-require_relative './wait_for_ajax'
-require_relative './wait_for_vue_resource'
+require_relative './wait_for_requests'
 
 module WaitForRequests
   extend self
-  include WaitForAjax
-  include WaitForVueResource
 
   # This is inspired by http://www.salsify.com/blog/engineering/tearing-capybara-ajax-tests
-  def wait_for_requests_complete
+  def block_and_wait_for_requests_complete
     Gitlab::Testing::RequestBlockerMiddleware.block_requests!
-    wait_for('pending AJAX requests complete') do
+    wait_for('pending requests complete') do
       Gitlab::Testing::RequestBlockerMiddleware.num_active_requests.zero?
     end
   ensure
     Gitlab::Testing::RequestBlockerMiddleware.allow_requests!
   end
 
+  def wait_for_requests
+    wait_for('JS requests') { finished_all_requests? }
+  end
+
+  private
+
+  def finished_all_requests?
+    return true unless javascript_test?
+
+    finished_all_ajax_requests? &&
+      finished_all_vue_resource_requests?
+  end
+
   # Waits until the passed block returns true
   def wait_for(condition_name, max_wait_time: Capybara.default_max_wait_time, polling_interval: 0.01)
     wait_until = Time.now + max_wait_time.seconds
@@ -28,10 +38,24 @@ module WaitForRequests
       end
     end
   end
+
+  def finished_all_vue_resource_requests?
+    page.evaluate_script('window.activeVueResources || 0').zero?
+  end
+
+  def finished_all_ajax_requests?
+    return true if page.evaluate_script('typeof jQuery === "undefined"')
+
+    page.evaluate_script('jQuery.active').zero?
+  end
+
+  def javascript_test?
+    Capybara.current_driver == Capybara.javascript_driver
+  end
 end
 
 RSpec.configure do |config|
   config.after(:each, :js) do
-    wait_for_requests_complete
+    block_and_wait_for_requests_complete
   end
 end
diff --git a/spec/support/wait_for_vue_resource.rb b/spec/support/wait_for_vue_resource.rb
deleted file mode 100644
index 3bb3d9c2e5130dd80b92f9aa9aa99a32930566ed..0000000000000000000000000000000000000000
--- a/spec/support/wait_for_vue_resource.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-module WaitForVueResource
-  def wait_for_vue_resource(spinner: true)
-    Timeout.timeout(Capybara.default_max_wait_time) do
-      loop until finished_all_vue_resource_requests?
-    end
-  end
-
-  private
-
-  def finished_all_vue_resource_requests?
-    return true unless javascript_test?
-
-    page.evaluate_script('window.activeVueResources || 0').zero?
-  end
-
-  def javascript_test?
-    Capybara.current_driver == Capybara.javascript_driver
-  end
-end