From 8a740c4532a4f7331f9939c22cbd58f5cb3f948c Mon Sep 17 00:00:00 2001 From: Oswaldo Ferreira Date: Tue, 9 May 2017 19:29:46 -0300 Subject: [PATCH] Use WaitForAjax for checking any kind of XHR requests (Vue/Ajax) --- .../vue_shared/vue_resource_interceptor.js | 2 +- features/steps/project/ff_merge_requests.rb | 3 +- .../steps/project/forked_merge_requests.rb | 4 +- features/steps/project/merge_requests.rb | 31 +++++----- .../project/merge_requests/acceptance.rb | 4 +- .../steps/project/merge_requests/revert.rb | 4 +- features/steps/shared/issuable.rb | 6 +- features/steps/shared/paths.rb | 12 ++-- features/support/env.rb | 2 +- spec/features/boards/add_issues_modal_spec.rb | 14 ++--- .../boards/board_with_milestone_spec.rb | 13 ++-- spec/features/boards/boards_spec.rb | 60 +++++++++---------- spec/features/boards/issue_ordering_spec.rb | 28 ++++----- .../features/boards/keyboard_shortcut_spec.rb | 4 +- spec/features/boards/modal_filter_spec.rb | 28 ++++----- spec/features/boards/multiple_boards_spec.rb | 19 +++--- spec/features/boards/new_issue_spec.rb | 10 ++-- spec/features/boards/sidebar_spec.rb | 26 ++++---- .../features/gitlab_flavored_markdown_spec.rb | 2 +- spec/features/issues/award_emoji_spec.rb | 6 +- spec/features/issues/award_spec.rb | 10 ++-- spec/features/issues_spec.rb | 4 +- .../features/merge_requests/approvals_spec.rb | 20 +++---- .../merge_requests/create_new_mr_spec.rb | 4 +- ...only_allow_merge_if_build_succeeds_spec.rb | 20 +++---- .../projects/pipelines/pipelines_spec.rb | 14 ++--- spec/features/task_lists_spec.rb | 18 +++--- spec/support/wait_for_ajax.rb | 31 ++++++++-- spec/support/wait_for_requests.rb | 18 ------ spec/support/wait_for_vue_resource.rb | 8 --- 30 files changed, 209 insertions(+), 216 deletions(-) diff --git a/app/assets/javascripts/vue_shared/vue_resource_interceptor.js b/app/assets/javascripts/vue_shared/vue_resource_interceptor.js index d5f87588c288c4..e38d5a4db810bb 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 657d112ea5859b..78c29b605b4c7b 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 153cd299544bea..ca4d8b8801902f 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 c427f61cb3fa54..0c403911ba6514 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 92011ff8e5a79b..517400cd82b853 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 aa76d6f8c48435..c685ff330c2fc6 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 4c8708ab2932b4..9bf75cfab2cecc 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 2bdb0b573a21e0..66947eb3f5a088 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 566d3b61896943..6f7d978b5bf6e8 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 505e0b5c3552ef..fea63deb85b3d8 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 845921ad0686c3..2db8cd7ae3dc8d 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 f962cd6d0b6ebf..83366646faa630 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 bfa2a72a2569d3..1377f942c3b5ba 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 a9cc6c49f8efd1..20ae4b25508628 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 4a4c13e79c8a96..1f6ed858f0b439 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 8ebef6b8889f79..87e8856283a039 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 f04a1a89e960d4..104dd8d1e71b09 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 bafa4f05937105..e6e2478ec9aee3 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 f5b54463df8ffe..25b10cac2ac9de 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 71df3c949db4b0..05e83102baf24b 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 08e3f99e29f0da..445d4db362a403 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 8154d5d264c5e5..ebecd35ffbb62b 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 bed0aa78541d9f..cd6cb7d854bccb 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 fbe834f47f12df..56ff733d7e4dd7 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 187e927dac4470..88285d6d8ff50e 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 2272b19bc8f17a..87a42cd2d508c0 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 8bd13caf2b0be8..7b571096ab5686 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 508de2ee8e1c81..0c1a62bf52f237 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 a18c8e03aa61de..c08ba20a80d497 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 3bb3d9c2e5130d..a674430fff6666 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? -- GitLab