diff --git a/app/assets/javascripts/vue_shared/vue_resource_interceptor.js b/app/assets/javascripts/vue_shared/vue_resource_interceptor.js index d5f87588c288c47e04f2dcfda36946d8356453a9..e38d5a4db810bbecfe2ced18f6b7687458be7cd8 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_ajax.rb Vue.http.interceptors.push((request, next) => { window.activeVueResources = window.activeVueResources || 0; window.activeVueResources += 1; diff --git a/features/steps/project/ff_merge_requests.rb b/features/steps/project/ff_merge_requests.rb index 657d112ea5859b3adbd773bbed1e699d0290fc9d..78c29b605b4c7bf50cdd678963c3adc095ecfe88 100644 --- a/features/steps/project/ff_merge_requests.rb +++ b/features/steps/project/ff_merge_requests.rb @@ -8,7 +8,6 @@ class Spinach::Features::ProjectFfMergeRequests < Spinach::FeatureSteps include SharedDiffNote include SharedUser include WaitForAjax - include WaitForVueResource step 'project "Shop" have "Bug NS-05" open merge request with diffs inside' do create(:merge_request_with_diffs, @@ -40,7 +39,7 @@ class Spinach::Features::ProjectFfMergeRequests < 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_ajax end end diff --git a/features/steps/project/forked_merge_requests.rb b/features/steps/project/forked_merge_requests.rb index 153cd299544bea9dbaff399185666e154a594706..ca4d8b8801902f5196396f34f3b8880af5778f5a 100644 --- a/features/steps/project/forked_merge_requests.rb +++ b/features/steps/project/forked_merge_requests.rb @@ -4,7 +4,7 @@ class Spinach::Features::ProjectForkedMergeRequests < Spinach::FeatureSteps include SharedNote include SharedPaths include Select2Helper - include WaitForVueResource + include WaitForAjax step 'I am a member of project "Shop"' do @project = ::Project.find_by(name: "Shop") @@ -32,7 +32,7 @@ class Spinach::Features::ProjectForkedMergeRequests < Spinach::FeatureSteps expect(page).to have_content @project.path_with_namespace expect(page).to have_content @merge_request.source_branch expect(page).to have_content @merge_request.target_branch - wait_for_vue_resource + wait_for_ajax end step 'I fill out a "Merge Request On Forked Project" merge request' do diff --git a/features/steps/project/merge_requests.rb b/features/steps/project/merge_requests.rb index c427f61cb3fa545d770941ae3fc99957f387e57b..0c403911ba6514a6270f4dba62636a4af8ab99f0 100644 --- a/features/steps/project/merge_requests.rb +++ b/features/steps/project/merge_requests.rb @@ -8,7 +8,6 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps include SharedDiffNote include SharedUser include WaitForAjax - include WaitForVueResource after do wait_for_ajax if javascript_test? @@ -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_ajax 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_ajax 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_ajax 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_ajax end step 'I should not see "master" branch' do @@ -363,7 +362,7 @@ 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_ajax end step 'I should see a badge of "0" next to the discussion link' do @@ -375,7 +374,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_ajax end end @@ -383,7 +382,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_ajax end end @@ -409,7 +408,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_ajax end end @@ -422,7 +421,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps expect(page).to have_content "Open" end - wait_for_vue_resource + wait_for_ajax 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_ajax end end @@ -530,7 +529,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_ajax end end @@ -644,7 +643,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps expect(page).not_to have_button("Approve") end - wait_for_vue_resource + wait_for_ajax end step 'I should see approved merge request "Bug NS-04"' do @@ -652,7 +651,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps expect(page).to have_button('Merge', disabled: false) end - wait_for_vue_resource + wait_for_ajax end step 'I should see message that merge request can be merged' do @@ -670,7 +669,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps step 'I should see message that MR require an approval' do page.within '.mr-state-widget' do expect(page).to have_content("Requires 1 more approval") - wait_for_vue_resource + wait_for_ajax end end @@ -717,7 +716,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps step 'I should not see the diverged commits count' do page.within ".mr-source-target" do expect(page).not_to have_content /([0-9]+ commit[s]? behind)/ - wait_for_vue_resource + wait_for_ajax end end diff --git a/features/steps/project/merge_requests/acceptance.rb b/features/steps/project/merge_requests/acceptance.rb index 92011ff8e5a79b93b971da6879df44d6a9d09cd5..517400cd82b853120cbcccb042c123e8382b3ea1 100644 --- a/features/steps/project/merge_requests/acceptance.rb +++ b/features/steps/project/merge_requests/acceptance.rb @@ -24,7 +24,7 @@ class Spinach::Features::ProjectMergeRequestsAcceptance < Spinach::FeatureSteps # Wait for AJAX 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_ajax end step 'I should not see the Remove Source Branch button' do @@ -32,7 +32,7 @@ class Spinach::Features::ProjectMergeRequestsAcceptance < Spinach::FeatureSteps # Wait for AJAX 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_ajax 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..c685ff330c2fc6e5f348ef853d4296f4942dfa89 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 WaitForAjax 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_ajax end step 'I should not see the revert button' do diff --git a/features/steps/shared/issuable.rb b/features/steps/shared/issuable.rb index 4c8708ab2932b47cdd4a2a0148cd88ec06506ea1..9bf75cfab2cecc8f8e89d2d04d2bcdc196b4b26c 100644 --- a/features/steps/shared/issuable.rb +++ b/features/steps/shared/issuable.rb @@ -1,6 +1,6 @@ module SharedIssuable include Spinach::DSL - include WaitForVueResource + include WaitForAjax def edit_issuable find('.issuable-edit', visible: true).click @@ -58,7 +58,7 @@ def edit_issuable step 'I visit merge request page "Enterprise fix"' do mr = MergeRequest.find_by(title: 'Enterprise fix') visit namespace_project_merge_request_path(mr.target_project.namespace, mr.target_project, mr) - wait_for_vue_resource + wait_for_ajax end step 'I visit issue page "Community issue"' do @@ -93,7 +93,7 @@ def edit_issuable from_project_name: 'Community', user_name: 'Mary Jane' ) - wait_for_vue_resource + wait_for_ajax end step 'I should see a note linking to "Enterprise issue" issue' do diff --git a/features/steps/shared/paths.rb b/features/steps/shared/paths.rb index 2bdb0b573a21e091cb5230f747c66f57329de171..66947eb3f5a0884ec6e226fc4dc4a6a19eb73f03 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 WaitForAjax step 'I visit new project page' do visit new_project_path @@ -402,28 +402,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_ajax end step 'I visit merge request page "Bug NS-05"' do visit merge_request_path("Bug NS-05") - wait_for_vue_resource + wait_for_ajax end step 'I visit merge request page "Bug NS-07"' do visit merge_request_path("Bug NS-07") - wait_for_vue_resource + wait_for_ajax end step 'I visit merge request page "Bug NS-08"' do visit merge_request_path("Bug NS-08") - wait_for_vue_resource + wait_for_ajax 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_ajax end step 'I visit project "Shop" merge requests page' do diff --git a/features/support/env.rb b/features/support/env.rb index 566d3b6189694340d8d32469475e0e520342ce8b..6f7d978b5bf6e87de1138a18e710b310f7ad75c3 100644 --- a/features/support/env.rb +++ b/features/support/env.rb @@ -10,7 +10,7 @@ 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 wait_for_ajax sidekiq).each do |f| require Rails.root.join('spec', 'support', f) end diff --git a/spec/features/boards/add_issues_modal_spec.rb b/spec/features/boards/add_issues_modal_spec.rb index 505e0b5c3552ef078cd780a7aabd66d706d8c9df..fea63deb85b3d8a006093e28a105494736cef85c 100644 --- a/spec/features/boards/add_issues_modal_spec.rb +++ b/spec/features/boards/add_issues_modal_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe 'Issue Boards add issue modal', :feature, :js do - include WaitForVueResource + include WaitForAjax let(:project) { create(:empty_project, :public) } let(:board) { create(:board, project: project) } @@ -19,13 +19,13 @@ login_as(user) visit namespace_project_board_path(project.namespace, project, board) - wait_for_vue_resource + wait_for_ajax end it 'resets filtered search state' do visit namespace_project_board_path(project.namespace, project, board, search: 'testing') - wait_for_vue_resource + wait_for_ajax click_button('Add issues') @@ -74,7 +74,7 @@ before do click_button('Add issues') - wait_for_vue_resource + wait_for_ajax end it 'loads issues' do @@ -107,7 +107,7 @@ click_button('Add issues') - wait_for_vue_resource + wait_for_ajax page.within('.add-issues-modal') do expect(find('.add-issues-footer')).not_to have_button(planning.title) @@ -122,7 +122,7 @@ find('.form-control').native.send_keys(issue.title) find('.form-control').native.send_keys(:enter) - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.card', count: 1) end @@ -133,7 +133,7 @@ find('.form-control').native.send_keys('testing search') find('.form-control').native.send_keys(:enter) - wait_for_vue_resource + wait_for_ajax 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/board_with_milestone_spec.rb b/spec/features/boards/board_with_milestone_spec.rb index 845921ad0686c356b38d1b0f362d6e2496959193..2db8cd7ae3dc8d0c47af2ce428eb23bb15f9d809 100644 --- a/spec/features/boards/board_with_milestone_spec.rb +++ b/spec/features/boards/board_with_milestone_spec.rb @@ -2,7 +2,6 @@ describe 'Board with milestone', :feature, :js do include WaitForAjax - include WaitForVueResource let(:user) { create(:user) } let(:project) { create(:empty_project, :public) } @@ -25,7 +24,7 @@ create_board_with_milestone expect(find('.tokens-container')).to have_content(milestone.title) - wait_for_vue_resource + wait_for_ajax find('.card', match: :first) @@ -45,7 +44,7 @@ page.within '#js-multiple-boards-switcher' do find('.dropdown-menu-toggle').click - wait_for_vue_resource + wait_for_ajax click_link board.name end @@ -107,7 +106,7 @@ end it 'removes issues milestone when removing from the board' do - wait_for_vue_resource + wait_for_ajax first('.card').click @@ -134,7 +133,7 @@ end it 'creates new issue with boards milestone' do - wait_for_vue_resource + wait_for_ajax page.within(first('.board')) do find('.btn-default').click @@ -143,7 +142,7 @@ click_button('Submit issue') - wait_for_vue_resource + wait_for_ajax click_link('testing new issue with milestone') end @@ -152,7 +151,7 @@ end it 'updates issue with milestone from add issues modal' do - wait_for_vue_resource + wait_for_ajax click_button 'Add issues' diff --git a/spec/features/boards/boards_spec.rb b/spec/features/boards/boards_spec.rb index f962cd6d0b6ebf3fcfa7bcba1d75c93fa47b4715..83366646faa630004581c38aff9101cc8e598009 100644 --- a/spec/features/boards/boards_spec.rb +++ b/spec/features/boards/boards_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe 'Issue Boards', feature: true, js: true do - include WaitForVueResource + include WaitForAjax include DragTo let(:project) { create(:empty_project, :public) } @@ -19,7 +19,7 @@ context 'no lists' do before do visit namespace_project_boards_path(project.namespace, project) - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.board', count: 2) end @@ -46,7 +46,7 @@ page.within(find('.board-blank-state')) do click_button('Add default lists') end - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.board', count: 3) @@ -84,7 +84,7 @@ before do visit namespace_project_boards_path(project.namespace, project) - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.board', count: 3) expect(find('.board:nth-child(1)')).to have_selector('.card') @@ -117,7 +117,7 @@ find('.filtered-search').set(issue8.title) find('.filtered-search').native.send_keys(:enter) - wait_for_vue_resource + wait_for_ajax 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 +128,7 @@ find('.filtered-search').set(issue5.title) find('.filtered-search').native.send_keys(:enter) - wait_for_vue_resource + wait_for_ajax 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,7 +140,7 @@ find('.board-delete').click end - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.board', count: 2) end @@ -153,7 +153,7 @@ find('.board-delete').click end - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.board', count: 2) end @@ -164,7 +164,7 @@ end visit namespace_project_boards_path(project.namespace, project) - wait_for_vue_resource + wait_for_ajax page.within(find('.board', match: :first)) do expect(page.find('.board-header')).to have_content('58') @@ -172,13 +172,13 @@ 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_ajax 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_ajax expect(page).to have_selector('.card', count: 58) expect(page).to have_content('Showing all issues') @@ -289,7 +289,7 @@ click_link testing.title end - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.board', count: 4) end @@ -302,7 +302,7 @@ click_link backlog.title end - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.board', count: 4) end @@ -315,7 +315,7 @@ click_link closed.title end - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.board', count: 4) end @@ -328,7 +328,7 @@ click_link closed.title end - wait_for_vue_resource + wait_for_ajax expect(page).to have_css('#js-add-list.open') end @@ -347,7 +347,7 @@ click_button 'Create' wait_for_ajax - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.board', count: 4) end @@ -360,7 +360,7 @@ click_filter_link(user2.username) submit_filter - wait_for_vue_resource + wait_for_ajax wait_for_board_cards(1, 1) wait_for_empty_boards((2..3)) end @@ -370,7 +370,7 @@ click_filter_link(user.username) submit_filter - wait_for_vue_resource + wait_for_ajax wait_for_board_cards(1, 1) wait_for_empty_boards((2..3)) @@ -381,7 +381,7 @@ click_filter_link(milestone.title) submit_filter - wait_for_vue_resource + wait_for_ajax wait_for_board_cards(1, 1) wait_for_board_cards(2, 0) wait_for_board_cards(3, 0) @@ -392,7 +392,7 @@ click_filter_link(testing.title) submit_filter - wait_for_vue_resource + wait_for_ajax wait_for_board_cards(1, 1) wait_for_empty_boards((2..3)) end @@ -407,7 +407,7 @@ wait_for_board_cards(1, 1) wait_for_empty_boards((2..3)) - wait_for_vue_resource + wait_for_ajax page.within(find('.board', match: :first)) do expect(page.find('.board-header')).to have_content('1') @@ -442,7 +442,7 @@ click_filter_link(testing.title) submit_filter - wait_for_vue_resource + wait_for_ajax page.within(find('.board', match: :first)) do expect(page.find('.board-header')).to have_content('51') @@ -470,7 +470,7 @@ submit_filter - wait_for_vue_resource + wait_for_ajax wait_for_board_cards(1, 1) wait_for_empty_boards((2..3)) @@ -481,14 +481,14 @@ 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_ajax end page.within('.tokens-container') do expect(page).to have_content(bug.title) end - wait_for_vue_resource + wait_for_ajax wait_for_board_cards(1, 1) wait_for_empty_boards((2..3)) @@ -500,12 +500,12 @@ click_button(bug.title) end - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.card', count: 1) end - wait_for_vue_resource + wait_for_ajax end end end @@ -513,7 +513,7 @@ context 'keyboard shortcuts' do before do visit namespace_project_boards_path(project.namespace, project) - wait_for_vue_resource + wait_for_ajax end it 'allows user to use keyboard shortcuts' do @@ -526,7 +526,7 @@ before do logout visit namespace_project_boards_path(project.namespace, project) - wait_for_vue_resource + wait_for_ajax end it 'displays lists' do @@ -550,7 +550,7 @@ logout login_as(user_guest) visit namespace_project_boards_path(project.namespace, project) - wait_for_vue_resource + wait_for_ajax 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..1377f942c3b5bade376661c88f8391e034a6d992 100644 --- a/spec/features/boards/issue_ordering_spec.rb +++ b/spec/features/boards/issue_ordering_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe 'Issue Boards', :feature, :js do - include WaitForVueResource + include WaitForAjax include DragTo let(:project) { create(:empty_project, :public) } @@ -24,7 +24,7 @@ before do visit namespace_project_board_path(project.namespace, project, board) - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.board', count: 2) end @@ -38,7 +38,7 @@ it 'moves un-ordered issue to top of list' do drag(from_index: 3, to_index: 0) - wait_for_vue_resource + wait_for_ajax page.within(first('.board')) do expect(first('.card')).to have_content(issue4.title) @@ -49,7 +49,7 @@ context 'ordering in list' do before do visit namespace_project_board_path(project.namespace, project, board) - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.board', count: 2) end @@ -57,7 +57,7 @@ it 'moves from middle to top' do drag(from_index: 1, to_index: 0) - wait_for_vue_resource + wait_for_ajax expect(first('.card')).to have_content(issue2.title) end @@ -65,7 +65,7 @@ it 'moves from middle to bottom' do drag(from_index: 1, to_index: 2) - wait_for_vue_resource + wait_for_ajax expect(all('.card').last).to have_content(issue2.title) end @@ -73,7 +73,7 @@ it 'moves from top to bottom' do drag(from_index: 0, to_index: 2) - wait_for_vue_resource + wait_for_ajax expect(all('.card').last).to have_content(issue3.title) end @@ -81,7 +81,7 @@ it 'moves from bottom to top' do drag(from_index: 2, to_index: 0) - wait_for_vue_resource + wait_for_ajax expect(first('.card')).to have_content(issue1.title) end @@ -89,7 +89,7 @@ it 'moves from top to middle' do drag(from_index: 0, to_index: 1) - wait_for_vue_resource + wait_for_ajax expect(first('.card')).to have_content(issue2.title) end @@ -97,7 +97,7 @@ it 'moves from bottom to middle' do drag(from_index: 2, to_index: 1) - wait_for_vue_resource + wait_for_ajax expect(all('.card').last).to have_content(issue2.title) end @@ -112,7 +112,7 @@ before do visit namespace_project_board_path(project.namespace, project, board) - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.board', count: 3) end @@ -120,7 +120,7 @@ it 'moves to top of another list' do drag(list_from_index: 0, list_to_index: 1) - wait_for_vue_resource + wait_for_ajax expect(first('.board')).to have_selector('.card', count: 2) expect(all('.board')[1]).to have_selector('.card', count: 4) @@ -133,7 +133,7 @@ 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_ajax expect(first('.board')).to have_selector('.card', count: 2) expect(all('.board')[1]).to have_selector('.card', count: 4) @@ -146,7 +146,7 @@ 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_ajax 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..20ae4b25508628c435397a5a35e4c446843f0ba5 100644 --- a/spec/features/boards/keyboard_shortcut_spec.rb +++ b/spec/features/boards/keyboard_shortcut_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe 'Issue Boards shortcut', feature: true, js: true do - include WaitForVueResource + include WaitForAjax let(:project) { create(:empty_project) } @@ -17,6 +17,6 @@ find('body').native.send_keys('gb') expect(page).to have_selector('.boards-list') - wait_for_vue_resource + wait_for_ajax end end diff --git a/spec/features/boards/modal_filter_spec.rb b/spec/features/boards/modal_filter_spec.rb index 4a4c13e79c8a966ad8ce950e7580d433233cf27e..1f6ed858f0b439734552e304335818f73a81c19d 100644 --- a/spec/features/boards/modal_filter_spec.rb +++ b/spec/features/boards/modal_filter_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe 'Issue Boards add issue modal filtering', :feature, :js do - include WaitForVueResource + include WaitForAjax let(:project) { create(:empty_project, :public) } let(:board) { create(:board, project: project) } @@ -24,7 +24,7 @@ find('.form-control').native.send_keys('testing empty state') find('.form-control').native.send_keys(:enter) - wait_for_vue_resource + wait_for_ajax expect(page).to have_content('There are no issues to show.') end @@ -38,7 +38,7 @@ submit_filter page.within('.add-issues-modal') do - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.card', count: 0) @@ -48,7 +48,7 @@ click_button('Add issues') page.within('.add-issues-modal') do - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.card', count: 1) end @@ -62,13 +62,13 @@ submit_filter page.within('.add-issues-modal') do - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.card', count: 0) find('.clear-search').click - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.card', count: 1) end @@ -89,7 +89,7 @@ submit_filter page.within('.add-issues-modal') do - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.js-visual-token', text: user2.username) expect(page).to have_selector('.card', count: 1) @@ -112,7 +112,7 @@ submit_filter page.within('.add-issues-modal') do - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.js-visual-token', text: 'none') expect(page).to have_selector('.card', count: 1) @@ -125,7 +125,7 @@ submit_filter page.within('.add-issues-modal') do - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.js-visual-token', text: user2.username) expect(page).to have_selector('.card', count: 1) @@ -147,7 +147,7 @@ submit_filter page.within('.add-issues-modal') do - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.js-visual-token', text: 'upcoming') expect(page).to have_selector('.card', count: 0) @@ -160,7 +160,7 @@ submit_filter page.within('.add-issues-modal') do - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.js-visual-token', text: milestone.name) expect(page).to have_selector('.card', count: 1) @@ -182,7 +182,7 @@ submit_filter page.within('.add-issues-modal') do - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.js-visual-token', text: 'none') expect(page).to have_selector('.card', count: 1) @@ -195,7 +195,7 @@ submit_filter page.within('.add-issues-modal') do - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.js-visual-token', text: label.title) expect(page).to have_selector('.card', count: 1) @@ -205,7 +205,7 @@ def visit_board visit namespace_project_board_path(project.namespace, project, board) - wait_for_vue_resource + wait_for_ajax click_button('Add issues') end diff --git a/spec/features/boards/multiple_boards_spec.rb b/spec/features/boards/multiple_boards_spec.rb index 8ebef6b8889f79b0327efadad0b7d33b20912852..87e8856283a039165bc230622a990e29437e36d1 100644 --- a/spec/features/boards/multiple_boards_spec.rb +++ b/spec/features/boards/multiple_boards_spec.rb @@ -2,7 +2,6 @@ describe 'Multiple Issue Boards', feature: true, js: true do include WaitForAjax - include WaitForVueResource let(:user) { create(:user) } let(:project) { create(:empty_project, :public) } @@ -17,7 +16,7 @@ login_as(user) visit namespace_project_boards_path(project.namespace, project) - wait_for_vue_resource + wait_for_ajax end it 'shows current board name' do @@ -42,7 +41,7 @@ click_link board2.name end - wait_for_vue_resource + wait_for_ajax page.within('.boards-switcher') do expect(page).to have_content(board2.name) @@ -60,7 +59,7 @@ click_button 'Save' end - wait_for_vue_resource + wait_for_ajax page.within('.dropdown-menu') do expect(page).to have_content('Testing') @@ -78,7 +77,7 @@ click_button 'Save' end - wait_for_vue_resource + wait_for_ajax page.within('.dropdown-menu') do expect(page).to have_content('Testing') @@ -88,7 +87,7 @@ it 'deletes board' do click_button board.name - wait_for_vue_resource + wait_for_ajax page.within('.dropdown-menu') do click_link 'Delete board' @@ -115,7 +114,7 @@ click_link board2.name end - wait_for_vue_resource + wait_for_ajax page.within('.boards-switcher') do expect(page).to have_content(board2.name) @@ -129,7 +128,7 @@ click_link planning.title end - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.board', count: 2) @@ -139,7 +138,7 @@ click_link board.name end - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.board', count: 1) end @@ -148,7 +147,7 @@ context 'unauthorized user' do before do visit namespace_project_boards_path(project.namespace, project) - wait_for_vue_resource + wait_for_ajax end it 'does not show action links' do diff --git a/spec/features/boards/new_issue_spec.rb b/spec/features/boards/new_issue_spec.rb index f04a1a89e960d4cad37836740bf8c9b45e8448fd..104dd8d1e71b093a7985d2bd44aa5fa36a373f14 100644 --- a/spec/features/boards/new_issue_spec.rb +++ b/spec/features/boards/new_issue_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe 'Issue Boards new issue', feature: true, js: true do - include WaitForVueResource + include WaitForAjax let(:project) { create(:empty_project, :public) } let(:board) { create(:board, project: project) } @@ -15,7 +15,7 @@ login_as(user) visit namespace_project_board_path(project.namespace, project, board) - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.board', count: 2) end @@ -60,7 +60,7 @@ click_button 'Submit issue' end - wait_for_vue_resource + wait_for_ajax page.within(first('.board .board-issue-count')) do expect(page).to have_content('1') @@ -77,7 +77,7 @@ click_button 'Submit issue' end - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('.issue-boards-sidebar') end @@ -86,7 +86,7 @@ context 'unauthorized user' do before do visit namespace_project_board_path(project.namespace, project, board) - wait_for_vue_resource + wait_for_ajax 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 bafa4f05937105461686cef7a37e9b58a2f02853..e6e2478ec9aee3ecfc13104b2ee88c27a24963aa 100644 --- a/spec/features/boards/sidebar_spec.rb +++ b/spec/features/boards/sidebar_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe 'Issue Boards', feature: true, js: true do - include WaitForVueResource + include WaitForAjax let(:user) { create(:user) } let(:project) { create(:empty_project, :public) } @@ -24,7 +24,7 @@ login_as(user) visit namespace_project_board_path(project.namespace, project, board) - wait_for_vue_resource + wait_for_ajax end after do @@ -73,7 +73,7 @@ click_button 'Remove from board' end - wait_for_vue_resource + wait_for_ajax page.within(first('.board')) do expect(page).to have_selector('.card', count: 1) @@ -92,7 +92,7 @@ page.within('.dropdown-menu-user') do click_link user.name - wait_for_vue_resource + wait_for_ajax end expect(page).to have_content(user.name) @@ -113,7 +113,7 @@ page.within('.dropdown-menu-user') do click_link 'Unassigned' - wait_for_vue_resource + wait_for_ajax end expect(page).to have_content('No assignee') @@ -130,7 +130,7 @@ click_link 'assign yourself' - wait_for_vue_resource + wait_for_ajax expect(page).to have_content(user.name) end @@ -149,7 +149,7 @@ page.within('.dropdown-menu-user') do click_link user.name - wait_for_vue_resource + wait_for_ajax end expect(page).to have_content(user.name) @@ -178,7 +178,7 @@ click_link milestone.title - wait_for_vue_resource + wait_for_ajax page.within('.value') do expect(page).to have_content(milestone.title) @@ -196,7 +196,7 @@ click_link "No Milestone" - wait_for_vue_resource + wait_for_ajax page.within('.value') do expect(page).not_to have_content(milestone.title) @@ -214,7 +214,7 @@ click_button Date.today.day - wait_for_vue_resource + wait_for_ajax expect(page).to have_content(Date.today.to_s(:medium)) end @@ -232,7 +232,7 @@ click_link bug.title - wait_for_vue_resource + wait_for_ajax find('.dropdown-menu-close-icon').click @@ -257,7 +257,7 @@ click_link bug.title click_link regression.title - wait_for_vue_resource + wait_for_ajax find('.dropdown-menu-close-icon').click @@ -283,7 +283,7 @@ click_link stretch.title - wait_for_vue_resource + wait_for_ajax find('.dropdown-menu-close-icon').click diff --git a/spec/features/gitlab_flavored_markdown_spec.rb b/spec/features/gitlab_flavored_markdown_spec.rb index f5b54463df8ffe08987de94f324ceef472c22bcc..25b10cac2ac9de8d400f7a5c441c52ca0bc1b48d 100644 --- a/spec/features/gitlab_flavored_markdown_spec.rb +++ b/spec/features/gitlab_flavored_markdown_spec.rb @@ -49,7 +49,7 @@ end describe "for issues", feature: true, js: true do - include WaitForVueResource + include WaitForAjax before do @other_issue = create(:issue, diff --git a/spec/features/issues/award_emoji_spec.rb b/spec/features/issues/award_emoji_spec.rb index 71df3c949db4b05745d10da2e4b32ffae0e27f1a..05e83102baf24bd748331cc85422b15cf9a372cf 100644 --- a/spec/features/issues/award_emoji_spec.rb +++ b/spec/features/issues/award_emoji_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe 'Awards Emoji', feature: true do - include WaitForVueResource + include WaitForAjax let!(:project) { create(:project, :public) } let!(:user) { create(:user) } @@ -22,7 +22,7 @@ # 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_ajax end # Regression test: https://gitlab.com/gitlab-org/gitlab-ce/issues/29529 @@ -36,7 +36,7 @@ before do visit namespace_project_issue_path(project.namespace, project, issue) - wait_for_vue_resource + wait_for_ajax end it 'increments the thumbsdown emoji', js: true do diff --git a/spec/features/issues/award_spec.rb b/spec/features/issues/award_spec.rb index 08e3f99e29f0dafac5555773d52a87c2d91df97f..445d4db362a40367f32e85128446f3d934715457 100644 --- a/spec/features/issues/award_spec.rb +++ b/spec/features/issues/award_spec.rb @@ -6,12 +6,12 @@ let(:issue) { create(:issue, project: project) } describe 'logged in' do - include WaitForVueResource + include WaitForAjax before do login_as(user) visit namespace_project_issue_path(project.namespace, project, issue) - wait_for_vue_resource + wait_for_ajax end it 'adds award to issue' do @@ -41,11 +41,11 @@ end describe 'logged out' do - include WaitForVueResource - + include WaitForAjax + before do visit namespace_project_issue_path(project.namespace, project, issue) - wait_for_vue_resource + wait_for_ajax end it 'does not see award menu button' do diff --git a/spec/features/issues_spec.rb b/spec/features/issues_spec.rb index 8154d5d264c5e5d8f6995efa971c614d6d311c48..ebecd35ffbb62b674d055a4be776b916cb7ee0c1 100644 --- a/spec/features/issues_spec.rb +++ b/spec/features/issues_spec.rb @@ -731,7 +731,7 @@ end describe 'title issue#show', js: true do - include WaitForVueResource + include WaitForAjax it 'updates the title', js: true do issue = create(:issue, author: @user, assignee: @user, project: project, title: 'new title') @@ -742,7 +742,7 @@ issue.update(title: "updated title") - wait_for_vue_resource + wait_for_ajax expect(page).to have_text("updated title") end end diff --git a/spec/features/merge_requests/approvals_spec.rb b/spec/features/merge_requests/approvals_spec.rb index bed0aa78541d9f7472d624b4f135e2dd2817d635..cd6cb7d854bccbef849cb38a03c829d85d5ac922 100644 --- a/spec/features/merge_requests/approvals_spec.rb +++ b/spec/features/merge_requests/approvals_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' feature 'Merge request approvals', js: true, feature: true do - include WaitForVueResource + include WaitForAjax let(:user) { create(:user) } let(:project) { create(:project, approvals_before_merge: 1) } @@ -74,7 +74,7 @@ visit new_namespace_project_merge_request_path(project.namespace, project, merge_request: { target_branch: 'master', source_branch: 'feature' }) find('#s2id_merge_request_approver_group_ids .select2-input').click - wait_for_vue_resource + wait_for_ajax expect(find('.select2-results')).to have_content(group.name) @@ -103,7 +103,7 @@ click_on("Submit merge request") - wait_for_vue_resource + wait_for_ajax expect(page).not_to have_selector(".approvals-required-text a[title='#{other_user.name}']") expect(page).to have_selector(".approvals-required-text a[title='#{approver.name}']") @@ -129,14 +129,14 @@ visit edit_namespace_project_merge_request_path(project.namespace, project, merge_request) find('#s2id_merge_request_approver_group_ids .select2-input').click - wait_for_vue_resource + wait_for_ajax expect(find('.select2-results')).to have_content(group.name) find('.select2-results').click click_on("Save changes") - wait_for_vue_resource + wait_for_ajax find('.approvals-components') expect(page).to have_content("Requires 1 more approval") end @@ -236,7 +236,7 @@ it 'I am able to approve' do approve_merge_request - wait_for_vue_resource + wait_for_ajax expect(page).to have_content('Approved by') expect(page).to have_css('.approver-avatar') end @@ -259,7 +259,7 @@ # before approval status is loaded expect(page).to have_button('Merge when pipeline succeeds', disabled: true) - wait_for_vue_resource + wait_for_ajax # after approval status is loaded expect(page).to have_button('Merge when pipeline succeeds', disabled: true) @@ -285,7 +285,7 @@ # before approval status is loaded expect(page).to have_button("Rebase", disabled: true) - wait_for_vue_resource + wait_for_ajax # after approval status is loaded expect(page).to have_button("Rebase", disabled: true) @@ -320,12 +320,12 @@ def approve_merge_request page.within '.mr-state-widget' do find('.approve-btn').click end - wait_for_vue_resource + wait_for_ajax end def unapprove_merge_request page.within '.mr-state-widget' do find('.unapprove-btn-wrap').click end - wait_for_vue_resource + wait_for_ajax end diff --git a/spec/features/merge_requests/create_new_mr_spec.rb b/spec/features/merge_requests/create_new_mr_spec.rb index fbe834f47f12df60121da555a275813307eaefe2..56ff733d7e4dd7735a51bfb6f9dadbb7edef059b 100644 --- a/spec/features/merge_requests/create_new_mr_spec.rb +++ b/spec/features/merge_requests/create_new_mr_spec.rb @@ -1,7 +1,7 @@ require 'spec_helper' feature 'Create New Merge Request', feature: true, js: true do - include WaitForVueResource + include WaitForAjax let(:user) { create(:user) } let(:project) { create(:project, :public) } @@ -175,7 +175,7 @@ page.within('.merge-request') do click_link 'Pipelines' - wait_for_vue_resource + wait_for_ajax expect(page).to have_content "##{pipeline.id}" end 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 187e927dac447095688a292fa293af6245ebdd61..88285d6d8ff50e1f41eb21b947c9d8bc4513b163 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,7 +1,7 @@ require 'spec_helper' feature 'Only allow merge requests to be merged if the pipeline succeeds', feature: true, js: true do - include WaitForVueResource + include WaitForAjax let(:merge_request) { create(:merge_request_with_diffs) } let(:project) { merge_request.target_project } @@ -16,7 +16,7 @@ it 'allows MR to be merged' do visit_merge_request(merge_request) - wait_for_vue_resource + wait_for_ajax expect(page).to have_button 'Merge' end @@ -42,7 +42,7 @@ it 'does not allow to merge immediately' do visit_merge_request(merge_request) - wait_for_vue_resource + wait_for_ajax expect(page).to have_button 'Merge when pipeline succeeds' expect(page).not_to have_button 'Select merge moment' @@ -55,7 +55,7 @@ it 'does not allow MR to be merged' do visit_merge_request(merge_request) - wait_for_vue_resource + wait_for_ajax 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 +68,7 @@ it 'does not allow MR to be merged' do visit_merge_request(merge_request) - wait_for_vue_resource + wait_for_ajax 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 +81,7 @@ it 'allows MR to be merged' do visit_merge_request(merge_request) - wait_for_vue_resource + wait_for_ajax expect(page).to have_button 'Merge' end @@ -93,7 +93,7 @@ it 'allows MR to be merged' do visit_merge_request(merge_request) - wait_for_vue_resource + wait_for_ajax expect(page).to have_button 'Merge' end @@ -111,7 +111,7 @@ it 'allows MR to be merged immediately' do visit_merge_request(merge_request) - wait_for_vue_resource + wait_for_ajax expect(page).to have_button 'Merge when pipeline succeeds' @@ -126,7 +126,7 @@ it 'allows MR to be merged' do visit_merge_request(merge_request) - wait_for_vue_resource + wait_for_ajax expect(page).to have_button 'Merge' end @@ -138,7 +138,7 @@ it 'allows MR to be merged' do visit_merge_request(merge_request) - wait_for_vue_resource + wait_for_ajax expect(page).to have_button 'Merge' end diff --git a/spec/features/projects/pipelines/pipelines_spec.rb b/spec/features/projects/pipelines/pipelines_spec.rb index 2272b19bc8f17a35561588c246239b18a00f1903..87a42cd2d508c0b06a795aa011f7b1983091b501 100644 --- a/spec/features/projects/pipelines/pipelines_spec.rb +++ b/spec/features/projects/pipelines/pipelines_spec.rb @@ -1,7 +1,7 @@ require 'spec_helper' describe 'Pipelines', :feature, :js do - include WaitForVueResource + include WaitForAjax let(:project) { create(:empty_project) } @@ -54,7 +54,7 @@ context 'header tabs' do before do visit namespace_project_pipelines_path(project.namespace, project) - wait_for_vue_resource + wait_for_ajax end it 'shows a tab for All pipelines and count' do @@ -106,7 +106,7 @@ context 'when canceling' do before do find('.js-pipelines-cancel-button').click - wait_for_vue_resource + wait_for_ajax end it 'indicated that pipelines was canceled' do @@ -136,7 +136,7 @@ context 'when retrying' do before do find('.js-pipelines-retry-button').click - wait_for_vue_resource + wait_for_ajax end it 'shows running pipeline that is not retryable' do @@ -356,14 +356,14 @@ it 'should render pagination' do visit namespace_project_pipelines_path(project.namespace, project) - wait_for_vue_resource + wait_for_ajax 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_ajax expect(page).to have_selector('.gl-pagination .page', count: 2) end @@ -455,6 +455,6 @@ def visit_project_pipelines(**query) visit namespace_project_pipelines_path(project.namespace, project, query) - wait_for_vue_resource + wait_for_ajax end end diff --git a/spec/features/task_lists_spec.rb b/spec/features/task_lists_spec.rb index 8bd13caf2b0be85cbc98b2afcb0eef437c86d3cc..7b571096ab5686136ab9750d8751c3e41e912022 100644 --- a/spec/features/task_lists_spec.rb +++ b/spec/features/task_lists_spec.rb @@ -64,13 +64,13 @@ def visit_issue(project, issue) describe 'for Issues', feature: true do describe 'multiple tasks', js: true do - include WaitForVueResource + include WaitForAjax let!(:issue) { create(:issue, description: markdown, author: user, project: project) } it 'renders' do visit_issue(project, issue) - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('ul.task-list', count: 1) expect(page).to have_selector('li.task-list-item', count: 6) @@ -79,7 +79,7 @@ def visit_issue(project, issue) it 'contains the required selectors' do visit_issue(project, issue) - wait_for_vue_resource + wait_for_ajax 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 +87,14 @@ def visit_issue(project, issue) it 'is only editable by author' do visit_issue(project, issue) - wait_for_vue_resource + wait_for_ajax 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_ajax expect(page).to have_selector(".wiki .task-list .task-list-item .task-list-item-checkbox") end @@ -106,13 +106,13 @@ def visit_issue(project, issue) end describe 'single incomplete task', js: true do - include WaitForVueResource + include WaitForAjax let!(:issue) { create(:issue, description: singleIncompleteMarkdown, author: user, project: project) } it 'renders' do visit_issue(project, issue) - wait_for_vue_resource + wait_for_ajax expect(page).to have_selector('ul.task-list', count: 1) expect(page).to have_selector('li.task-list-item', count: 1) @@ -127,12 +127,12 @@ def visit_issue(project, issue) end describe 'single complete task', js: true do - include WaitForVueResource + include WaitForAjax let!(:issue) { create(:issue, description: singleCompleteMarkdown, author: user, project: project) } it 'renders' do visit_issue(project, issue) - wait_for_vue_resource + wait_for_ajax 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/support/wait_for_ajax.rb b/spec/support/wait_for_ajax.rb index 508de2ee8e1c810d8624c8a9262df45239391e71..0c1a62bf52f237d10b8827f04778e5f823952227 100644 --- a/spec/support/wait_for_ajax.rb +++ b/spec/support/wait_for_ajax.rb @@ -1,12 +1,35 @@ module WaitForAjax - def wait_for_ajax - Timeout.timeout(Capybara.default_max_wait_time) do - loop until finished_all_ajax_requests? + def wait_for_ajax(spinner: true) + wait_for('JS requests') { finished_all_requests? } + end + + 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 + loop do + break if yield + if Time.now > wait_until + raise "Condition not met: #{condition_name}" + else + sleep(polling_interval) + end end end + private + + def finished_all_vue_resource_requests? + page.evaluate_script('window.activeVueResources || 0').zero? + 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? diff --git a/spec/support/wait_for_requests.rb b/spec/support/wait_for_requests.rb index a18c8e03aa61de9b297b36a3ba1ac49b4ebde160..c08ba20a80d4976ab3c234e49a85e75f5e18f47a 100644 --- a/spec/support/wait_for_requests.rb +++ b/spec/support/wait_for_requests.rb @@ -4,7 +4,6 @@ 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 @@ -16,23 +15,6 @@ def wait_for_requests_complete ensure Gitlab::Testing::RequestBlockerMiddleware.allow_requests! end - - def finished_all_requests? - 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 - loop do - break if yield - if Time.now > wait_until - raise "Condition not met: #{condition_name}" - else - sleep(polling_interval) - end - end - end end RSpec.configure do |config| diff --git a/spec/support/wait_for_vue_resource.rb b/spec/support/wait_for_vue_resource.rb index 3bb3d9c2e5130dd80b92f9aa9aa99a32930566ed..a674430fff6666545c1fa4ea68c9e1a3e469304d 100644 --- a/spec/support/wait_for_vue_resource.rb +++ b/spec/support/wait_for_vue_resource.rb @@ -1,12 +1,4 @@ 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?