Commit 1c42b35b authored by Oswaldo Ferreira's avatar Oswaldo Ferreira

Use wait_for_requests to wait all JS request

parent cc572c43
......@@ -4,7 +4,7 @@ import VueResource from 'vue-resource';
Vue.use(VueResource);
// Maintain a global counter for active requests
// see: spec/support/wait_for_vue_resource.rb
// see: spec/support/wait_for_requests.rb
Vue.http.interceptors.push((request, next) => {
window.activeVueResources = window.activeVueResources || 0;
window.activeVueResources += 1;
......
---
title: Use wait_for_requests for both ajax and Vue requests
merge_request:
author:
class Spinach::Features::EventFilters < Spinach::FeatureSteps
include WaitForAjax
include WaitForRequests
include SharedAuthentication
include SharedPaths
include SharedProject
......@@ -73,20 +73,20 @@ class Spinach::Features::EventFilters < Spinach::FeatureSteps
end
When 'I click "push" event filter' do
wait_for_ajax
wait_for_requests
click_link("Push events")
wait_for_ajax
wait_for_requests
end
When 'I click "team" event filter' do
wait_for_ajax
wait_for_requests
click_link("Team")
wait_for_ajax
wait_for_requests
end
When 'I click "merge" event filter' do
wait_for_ajax
wait_for_requests
click_link("Merge events")
wait_for_ajax
wait_for_requests
end
end
......@@ -3,7 +3,7 @@ class Spinach::Features::DashboardTodos < Spinach::FeatureSteps
include SharedPaths
include SharedProject
include SharedUser
include WaitForAjax
include WaitForRequests
step '"John Doe" is a developer of project "Shop"' do
project.team << [john_doe, :developer]
......@@ -140,7 +140,7 @@ class Spinach::Features::DashboardTodos < Spinach::FeatureSteps
step 'I should be directed to the corresponding page' do
page.should have_css('.identifier', text: 'Merge Request !1')
# Merge request page loads and issues a number of Ajax requests
wait_for_ajax
wait_for_requests
end
def should_see_todo(position, title, body, state: :pending)
......
class Spinach::Features::GroupMembers < Spinach::FeatureSteps
include WaitForAjax
include WaitForRequests
include SharedAuthentication
include SharedPaths
include SharedGroup
......@@ -58,7 +58,7 @@ class Spinach::Features::GroupMembers < Spinach::FeatureSteps
click_link 'Developer'
end
wait_for_ajax
wait_for_requests
end
end
......
class Spinach::Features::GroupMilestones < Spinach::FeatureSteps
include WaitForAjax
include WaitForRequests
include SharedAuthentication
include SharedPaths
include SharedGroup
......@@ -91,7 +91,7 @@ class Spinach::Features::GroupMilestones < Spinach::FeatureSteps
end
step 'I should see the list of labels' do
wait_for_ajax
wait_for_requests
page.within('#tab-labels') do
expect(page).to have_content 'bug'
......
......@@ -3,7 +3,7 @@ class Spinach::Features::ProjectBuildsArtifacts < Spinach::FeatureSteps
include SharedProject
include SharedBuilds
include RepoHelpers
include WaitForAjax
include WaitForRequests
step 'I click artifacts download button' do
click_link 'Download'
......@@ -79,7 +79,7 @@ class Spinach::Features::ProjectBuildsArtifacts < Spinach::FeatureSteps
step 'I click a link to file within build artifacts' do
page.within('.tree-table') { find_link('ci_artifacts.txt').click }
wait_for_ajax
wait_for_requests
end
step 'I see a download link' do
......
......@@ -7,8 +7,7 @@ class Spinach::Features::ProjectFfMergeRequests < Spinach::FeatureSteps
include SharedMarkdown
include SharedDiffNote
include SharedUser
include WaitForAjax
include WaitForVueResource
include WaitForRequests
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_requests
end
end
......@@ -76,7 +75,6 @@ class Spinach::Features::ProjectFfMergeRequests < Spinach::FeatureSteps
step 'I press rebase button' do
click_button "Rebase"
wait_for_ajax
end
step "I should see rebase in progress message" do
......
......@@ -4,8 +4,7 @@ class Spinach::Features::ProjectForkedMergeRequests < Spinach::FeatureSteps
include SharedNote
include SharedPaths
include Select2Helper
include WaitForVueResource
include WaitForAjax
include WaitForRequests
step 'I am a member of project "Shop"' do
@project = ::Project.find_by(name: "Shop")
......@@ -34,7 +33,7 @@ class Spinach::Features::ProjectForkedMergeRequests < Spinach::FeatureSteps
expect(page).to have_content @merge_request.source_branch
expect(page).to have_content @merge_request.target_branch
wait_for_vue_resource
wait_for_requests
end
step 'I fill out a "Merge Request On Forked Project" merge request' do
......@@ -48,7 +47,7 @@ class Spinach::Features::ProjectForkedMergeRequests < Spinach::FeatureSteps
first('.dropdown-target-project a', text: @project.path_with_namespace)
first('.js-source-branch').click
wait_for_ajax
wait_for_requests
first('.dropdown-source-branch .dropdown-content a', text: 'fix').click
click_button "Compare branches and continue"
......
......@@ -7,11 +7,10 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
include SharedMarkdown
include SharedDiffNote
include SharedUser
include WaitForAjax
include WaitForVueResource
include WaitForRequests
after do
wait_for_ajax if javascript_test?
wait_for_requests if javascript_test?
end
step 'I click link "New Merge Request"' do
......@@ -46,23 +45,23 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
page.within '.merge-request' do
expect(page).to have_content "Wiki Feature"
end
wait_for_vue_resource
wait_for_requests
end
step 'I should see closed merge request "Bug NS-04"' do
expect(page).to have_content "Bug NS-04"
expect(page).to have_content "Closed by"
wait_for_vue_resource
wait_for_requests
end
step 'I should see merge request "Bug NS-04"' do
expect(page).to have_content "Bug NS-04"
wait_for_vue_resource
wait_for_requests
end
step 'I should see merge request "Feature NS-05"' do
expect(page).to have_content "Feature NS-05"
wait_for_vue_resource
wait_for_requests
end
step 'I should not see "master" branch' do
......@@ -99,7 +98,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
step 'I click button "Unsubscribe"' do
click_on "Unsubscribe"
wait_for_ajax
wait_for_requests
end
step 'I click link "Close"' do
......@@ -353,7 +352,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
step 'I should see a discussion by user "John Doe" has started on diff' do
# Trigger a refresh of notes
execute_script("$(document).trigger('visibilitychange');")
wait_for_ajax
wait_for_requests
page.within(".notes .discussion") do
page.should have_content "#{user_exists("John Doe").name} #{user_exists("John Doe").to_reference} started a discussion"
page.should have_content sample_commit.line_code_path
......@@ -363,12 +362,12 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
step 'I should see a badge of "1" next to the discussion link' do
expect_discussion_badge_to_have_counter("1")
wait_for_vue_resource
wait_for_requests
end
step 'I should see a badge of "0" next to the discussion link' do
expect_discussion_badge_to_have_counter("0")
wait_for_vue_resource
wait_for_requests
end
step 'I should see a discussion has started on commit diff' do
......@@ -376,7 +375,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
page.should have_content "#{current_user.name} #{current_user.to_reference} started a discussion on commit"
page.should have_content sample_commit.line_code_path
page.should have_content "Line is wrong"
wait_for_vue_resource
wait_for_requests
end
end
......@@ -384,7 +383,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
page.within(".notes .discussion") do
page.should have_content "#{current_user.name} #{current_user.to_reference} started a discussion on commit"
page.should have_content "One comment to rule them all"
wait_for_vue_resource
wait_for_requests
end
end
......@@ -410,7 +409,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
step 'I should see merged request' do
page.within '.status-box' do
expect(page).to have_content "Merged"
wait_for_vue_resource
wait_for_requests
end
end
......@@ -422,7 +421,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
page.within '.status-box' do
expect(page).to have_content "Open"
end
wait_for_vue_resource
wait_for_requests
end
step 'I click link "Hide inline discussion" of the third file' do
......@@ -446,7 +445,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
step 'I should see a comment like "Line is wrong" in the third file' do
page.within '.files>div:nth-child(3) .note-body > .note-text' do
expect(page).to have_visible_content "Line is wrong"
wait_for_vue_resource
wait_for_requests
end
end
......@@ -470,7 +469,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
click_button "Comment"
end
wait_for_ajax
wait_for_requests
page.within ".files>div:nth-child(2) .note-body > .note-text" do
expect(page).to have_content "Line is correct"
......@@ -485,7 +484,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
click_button "Comment"
end
wait_for_ajax
wait_for_requests
end
step 'I should still see a comment like "Line is correct" in the second file' do
......@@ -534,7 +533,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
step 'I should see comments on the side-by-side diff page' do
page.within '.files>div:nth-child(2) .parallel .note-body > .note-text' do
expect(page).to have_visible_content "Line is correct"
wait_for_vue_resource
wait_for_requests
end
end
......@@ -558,7 +557,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
step 'I should see new target branch changes' do
expect(page).to have_content 'Request to merge fix into feature'
expect(page).to have_content 'changed target branch from merge-test to feature'
wait_for_ajax
wait_for_requests
end
step 'project settings contain list of approvers' do
......@@ -626,7 +625,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
step 'I click link "Approve"' do
page.within '.mr-state-widget' do
wait_for_ajax
wait_for_requests
click_button 'Approve'
end
end
......@@ -648,7 +647,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
expect(page).not_to have_button("Approve")
end
wait_for_vue_resource
wait_for_requests
end
step 'I should see approved merge request "Bug NS-04"' do
......@@ -656,7 +655,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
expect(page).to have_button('Merge', disabled: false)
end
wait_for_vue_resource
wait_for_requests
end
step 'I should see message that merge request can be merged' do
......@@ -674,7 +673,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_requests
end
end
......@@ -718,16 +717,16 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
expect(page).to have_content /([0-9]+ commits behind)/
end
wait_for_vue_resource
wait_for_requests
end
step 'I should not see the diverged commits count' do
page.within ".mr-source-target" do
expect(page).not_to have_content /([0-9]+ commit[s]? behind)/
wait_for_vue_resource
wait_for_requests
end
wait_for_vue_resource
wait_for_requests
end
def merge_request
......@@ -744,7 +743,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
click_button "Comment"
end
wait_for_ajax
wait_for_requests
page.within(".notes_holder", visible: true) do
expect(page).to have_content message
......
class Spinach::Features::ProjectMergeRequestsAcceptance < Spinach::FeatureSteps
include LoginHelpers
include GitlabRoutingHelper
include WaitForVueResource
include WaitForRequests
step 'I am on the Merge Request detail page' do
visit merge_request_path(@merge_request)
......@@ -24,7 +24,7 @@ class Spinach::Features::ProjectMergeRequestsAcceptance < Spinach::FeatureSteps
# Wait for View Resource requests to complete so they don't blow up if they are
# only handled after `DatabaseCleaner` has already run
wait_for_vue_resource
wait_for_requests
end
step 'I should not see the Remove Source Branch button' do
......@@ -32,7 +32,7 @@ class Spinach::Features::ProjectMergeRequestsAcceptance < Spinach::FeatureSteps
# Wait for View Resource requests to complete so they don't blow up if they are
# only handled after `DatabaseCleaner` has already run
wait_for_vue_resource
wait_for_requests
end
step 'There is an open Merge Request' do
......
class Spinach::Features::RevertMergeRequests < Spinach::FeatureSteps
include LoginHelpers
include GitlabRoutingHelper
include WaitForVueResource
include WaitForRequests
step 'I click on the revert button' do
find("a[href='#modal-revert-commit']").click
......@@ -16,7 +16,7 @@ class Spinach::Features::RevertMergeRequests < Spinach::FeatureSteps
step 'I should see the revert merge request notice' do
page.should have_content('The merge request has been successfully reverted.')
wait_for_vue_resource
wait_for_requests
end
step 'I should not see the revert button' do
......
......@@ -3,7 +3,7 @@ class Spinach::Features::Project < Spinach::FeatureSteps
include SharedProject
include SharedPaths
include Select2Helper
include WaitForAjax
include WaitForRequests
step 'change project settings' do
fill_in 'project_name_edit', with: 'NewName'
......@@ -110,7 +110,7 @@ class Spinach::Features::Project < Spinach::FeatureSteps
end
step 'I should see project "Shop" README' do
wait_for_ajax
wait_for_requests
page.within('.readme-holder') do
expect(page).to have_content 'testme'
end
......
......@@ -2,7 +2,7 @@ class Spinach::Features::ProjectMilestone < Spinach::FeatureSteps
include SharedAuthentication
include SharedProject
include SharedPaths
include WaitForAjax
include WaitForRequests
step 'milestone has issue "Bugfix1" with labels: "bug", "feature"' do
project = Project.find_by(name: "Shop")
......@@ -35,7 +35,7 @@ class Spinach::Features::ProjectMilestone < Spinach::FeatureSteps
end
step 'I should see the labels "bug", "enhancement" and "feature"' do
wait_for_ajax
wait_for_requests
page.within('#tab-issues') do
expect(page).to have_content 'bug'
......
......@@ -3,7 +3,7 @@ class Spinach::Features::ProjectSnippets < Spinach::FeatureSteps
include SharedProject
include SharedNote
include SharedPaths
include WaitForAjax
include WaitForRequests
step 'project "Shop" have "Snippet one" snippet' do
create(:project_snippet,
......@@ -59,7 +59,7 @@ class Spinach::Features::ProjectSnippets < Spinach::FeatureSteps
find('.ace_editor').native.send_keys 'Content of snippet three'
end
click_button "Create snippet"
wait_for_ajax
wait_for_requests
end
step 'I should see snippet "Snippet three"' do
......@@ -81,7 +81,7 @@ class Spinach::Features::ProjectSnippets < Spinach::FeatureSteps
fill_in "note_note", with: "Good snippet!"
click_button "Comment"
end
wait_for_ajax
wait_for_requests
end
step 'I should see comment "Good snippet!"' do
......
......@@ -4,7 +4,7 @@ class Spinach::Features::ProjectSourceBrowseFiles < Spinach::FeatureSteps
include SharedProject
include SharedPaths
include RepoHelpers
include WaitForAjax
include WaitForRequests
step "I don't have write access" do
@project = create(:project, :repository, name: "Other Project", path: "other-project")
......@@ -37,12 +37,12 @@ class Spinach::Features::ProjectSourceBrowseFiles < Spinach::FeatureSteps
end
step 'I should see its content' do
wait_for_ajax
wait_for_requests
expect(page).to have_content old_gitignore_content
end
step 'I should see its new content' do
wait_for_ajax
wait_for_requests
expect(page).to have_content new_gitignore_content
end
......
......@@ -5,7 +5,7 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
include SharedAuthentication
include SharedPaths
include SharedMarkdown
include WaitForAjax
include WaitForRequests
step 'I own project "Delta"' do
@project = ::Project.find_by(name: "Delta")
......@@ -35,7 +35,7 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
step 'I should see correct document rendered' do
expect(current_path).to eq namespace_project_blob_path(@project.namespace, @project, "markdown/doc/api/README.md")
wait_for_ajax
wait_for_requests
expect(page).to have_content "All API requests require authentication"
end
......@@ -65,7 +65,7 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
step 'I should see correct maintenance file rendered' do
expect(current_path).to eq namespace_project_blob_path(@project.namespace, @project, "markdown/doc/raketasks/maintenance.md")
wait_for_ajax
wait_for_requests
expect(page).to have_content "bundle exec rake gitlab:env:info RAILS_ENV=production"
end
......@@ -97,7 +97,7 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
step 'I see correct file rendered' do
expect(current_path).to eq namespace_project_blob_path(@project.namespace, @project, "markdown/doc/api/README.md")
wait_for_ajax
wait_for_requests
expect(page).to have_content "Contents"
expect(page).to have_link "Users"
expect(page).to have_link "Rake tasks"
......@@ -120,7 +120,7 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
When 'I visit markdown branch' do
visit namespace_project_tree_path(@project.namespace, @project, "markdown")
wait_for_ajax
wait_for_requests
end
When 'I visit markdown branch "README.md" blob' do
......@@ -143,7 +143,7 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
step 'I see correct file rendered in markdown branch' do
expect(current_path).to eq namespace_project_blob_path(@project.namespace, @project, "markdown/doc/api/README.md")
wait_for_ajax
wait_for_requests
expect(page).to have_content "Contents"
expect(page).to have_link "Users"
expect(page).to have_link "Rake tasks"
......@@ -151,7 +151,7 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
step 'I should see correct document rendered for markdown branch' do
expect(current_path).to eq namespace_project_blob_path(@project.namespace, @project, "markdown/doc/api/README.md")
wait_for_ajax
wait_for_requests
expect(page).to have_content "All API requests require authentication"
end
......@@ -169,7 +169,7 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
# Expected link contents
step 'The link with text "empty" should have url "tree/markdown"' do
wait_for_ajax
wait_for_requests
find('a', text: /^empty$/)['href'] == current_host + namespace_project_tree_path(@project.namespace, @project, "markdown")
end
......@@ -205,7 +205,7 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
end
step 'The link with text "ID" should have url "blob/markdown/README.mdID"' do
wait_for_ajax
wait_for_requests
find('a', text: /^#id$/)['href'] == current_host + namespace_project_blob_path(@project.namespace, @project, "markdown/README.md") + '#id'
end
......@@ -300,12 +300,12 @@ class Spinach::Features::ProjectSourceMarkdownRender < Spinach::FeatureSteps
step 'I should see the correct markdown' do
expect(current_path).to eq namespace_project_blob_path(@project.namespace, @project, "markdown/doc/api/users.md")
wait_for_ajax
wait_for_requests
expect(page).to have_content "List users"
end
step 'Header "Application details" should have correct id and link' do
wait_for_ajax
wait_for_requests
header_should_have_correct_id_and_link(2, 'Application details', 'application-details')
end
......
module SharedActiveTab
include Spinach::DSL
include WaitForAjax
include WaitForRequests
after do
wait_for_ajax if javascript_test?
wait_for_requests if javascript_test?
end
def ensure_active_main_tab(content)
......
module SharedDiffNote
include Spinach::DSL
include RepoHelpers
include WaitForAjax
include WaitForRequests
after do
wait_for_ajax if javascript_test?
wait_for_requests if javascript_test?
end
step 'I cancel the diff comment' do
......
module SharedIssuable
include Spinach::DSL
include WaitForVueResource
include WaitForRequests
def edit_issuable
find('.issuable-edit', visible: true).click
......@@ -58,7 +58,7 @@ module SharedIssuable
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_requests
end
step 'I visit issue page "Community issue"' do
......@@ -93,7 +93,7 @@ module SharedIssuable
from_project_name: 'Community',
user_name: 'Mary Jane'
)
wait_for_vue_resource
wait_for_requests
end
step 'I should see a note linking to "Enterprise issue" issue' do
......
module SharedNote
include Spinach::DSL
include WaitForAjax
include WaitForRequests
after do
wait_for_ajax if javascript_test?
wait_for_requests if javascript_test?
end
step 'I delete a comment' do
......@@ -25,7 +25,7 @@ module SharedNote
click_button "Comment"
end
wait_for_ajax
wait_for_requests
end
step 'I preview a comment text like "Bug fixed :smile:"' do
......@@ -40,7 +40,7 @@ module SharedNote
click_button "Comment"
end
wait_for_ajax
wait_for_requests
end
step 'I write a comment like ":+1: Nice"' do
......@@ -127,7 +127,7 @@ module SharedNote
click_button "Comment"
end
wait_for_ajax
wait_for_requests
end
step 'The comment with the header should not have an ID' do
......
......@@ -2,7 +2,7 @@ module SharedPaths
include Spinach::DSL
include RepoHelpers
include DashboardHelper
include WaitForVueResource
include WaitForRequests
step 'I visit new project page' do
visit new_project_path
......@@ -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_requests
end
step 'I visit merge request page "Bug NS-05"' do
visit merge_request_path("Bug NS-05")
wait_for_vue_resource
wait_for_requests
end
step 'I visit merge request page "Bug NS-07"' do
visit merge_request_path("Bug NS-07")
wait_for_vue_resource
wait_for_requests
end
step 'I visit merge request page "Bug NS-08"' do
visit merge_request_path("Bug NS-08")
wait_for_vue_resource
wait_for_requests
end
step 'I visit merge request page "Bug CO-01"' do
mr = MergeRequest.find_by(title: "Bug CO-01")
visit namespace_project_merge_request_path(mr.target_project.namespace, mr.target_project, mr)
wait_for_vue_resource
wait_for_requests
end
step 'I visit project "Shop" merge requests page' do
......
......@@ -3,7 +3,7 @@ class Spinach::Features::Snippets < Spinach::FeatureSteps
include SharedPaths
include SharedProject
include SharedSnippet
include WaitForAjax
include WaitForRequests
step 'I click link "Personal snippet one"' do
click_link "Personal snippet one"
......@@ -30,7 +30,7 @@ class Spinach::Features::Snippets < Spinach::FeatureSteps
find('.ace_editor').native.send_keys 'Content of snippet three'
end
click_button "Create snippet"
wait_for_ajax
wait_for_requests
end
step 'I submit new internal snippet' do
......
......@@ -10,7 +10,7 @@ if ENV['CI']
Knapsack::Adapters::SpinachAdapter.bind
end
%w(select2_helper test_env repo_helpers wait_for_ajax wait_for_requests sidekiq wait_for_vue_resource).each do |f|
%w(select2_helper test_env repo_helpers wait_for_requests sidekiq).each do |f|
require Rails.root.join('spec', 'support', f)
end
......@@ -41,7 +41,7 @@ end
Spinach.hooks.after_scenario do |scenario_data, step_definitions|
if scenario_data.tags.include?('javascript')
include WaitForRequests
wait_for_requests_complete
block_and_wait_for_requests_complete
end
end
......
require 'spec_helper'
describe "Admin::Emails", feature: true, js: true do
include WaitForAjax
let!(:current_user) { login_as :admin }
let!(:group) { create(:group) }
let!(:project) { create(:project, namespace: group) }
......@@ -15,7 +13,7 @@ describe "Admin::Emails", feature: true, js: true do
describe 'Recipient group select' do
it "includes groups and projects" do
find('.ajax-admin-email-select').click
wait_for_ajax
wait_for_requests
expect(page).to have_selector('.ajax-admin-email-dropdown li', count: 3)
group_names = page.all('.ajax-admin-email-dropdown li .group-name')
......
......@@ -34,11 +34,11 @@ RSpec.describe 'admin issues labels' do
page.within '.labels' do
page.all('.btn-remove').each do |remove|
remove.click
wait_for_ajax
wait_for_requests
end
end
wait_for_ajax
wait_for_requests
expect(page).to have_content("There are no labels yet")
expect(page).not_to have_content('bug')
......
......@@ -339,7 +339,7 @@ describe "Admin::Users", feature: true do
page.within(first('.group_member')) do
find('.btn-remove').click
end
wait_for_ajax
wait_for_requests
expect(page).not_to have_selector('.group_member')
end
......
......@@ -46,7 +46,7 @@ describe 'Auto deploy' do
within '.gitlab-ci-yml-selector' do
click_on 'OpenShift'
end
wait_for_ajax
wait_for_requests
click_button 'Commit changes'
expect(page).to have_content('New Merge Request From auto-deploy into master')
......
require 'rails_helper'
describe 'Issue Boards add issue modal', :feature, :js do
include WaitForVueResource
let(:project) { create(:empty_project, :public) }
let(:board) { create(:board, project: project) }
let(:user) { create(:user) }
......@@ -19,13 +17,13 @@ describe 'Issue Boards add issue modal', :feature, :js do
login_as(user)
visit namespace_project_board_path(project.namespace, project, board)
wait_for_vue_resource
wait_for_requests
end
it 'resets filtered search state' do
visit namespace_project_board_path(project.namespace, project, board, search: 'testing')
wait_for_vue_resource
wait_for_requests
click_button('Add issues')
......@@ -74,7 +72,7 @@ describe 'Issue Boards add issue modal', :feature, :js do
before do
click_button('Add issues')
wait_for_vue_resource
wait_for_requests
end
it 'loads issues' do
......@@ -107,7 +105,7 @@ describe 'Issue Boards add issue modal', :feature, :js do
click_button('Add issues')
wait_for_vue_resource
wait_for_requests
page.within('.add-issues-modal') do
expect(find('.add-issues-footer')).not_to have_button(planning.title)
......@@ -122,7 +120,7 @@ describe 'Issue Boards add issue modal', :feature, :js do
find('.form-control').native.send_keys(issue.title)
find('.form-control').native.send_keys(:enter)
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.card', count: 1)
end
......@@ -133,7 +131,7 @@ describe 'Issue Boards add issue modal', :feature, :js do
find('.form-control').native.send_keys('testing search')
find('.form-control').native.send_keys(:enter)
wait_for_vue_resource
wait_for_requests
expect(page).not_to have_selector('.card')
expect(page).not_to have_content("You haven't added any issues to your project yet")
......
require 'rails_helper'
describe 'Board with milestone', :feature, :js do
include WaitForAjax
include WaitForVueResource
let(:user) { create(:user) }
let(:project) { create(:empty_project, :public) }
let!(:milestone) { create(:milestone, project: project) }
......@@ -25,7 +22,7 @@ describe 'Board with milestone', :feature, :js do
create_board_with_milestone
expect(find('.tokens-container')).to have_content(milestone.title)
wait_for_vue_resource
wait_for_requests
find('.card', match: :first)
......@@ -45,7 +42,7 @@ describe 'Board with milestone', :feature, :js do
page.within '#js-multiple-boards-switcher' do
find('.dropdown-menu-toggle').click
wait_for_vue_resource
wait_for_requests
click_link board.name
end
......@@ -107,7 +104,7 @@ describe 'Board with milestone', :feature, :js do
end
it 'removes issues milestone when removing from the board' do
wait_for_vue_resource
wait_for_requests
first('.card .card-number').click
......@@ -134,7 +131,7 @@ describe 'Board with milestone', :feature, :js do
end
it 'creates new issue with boards milestone' do
wait_for_vue_resource
wait_for_requests
page.within(first('.board')) do
find('.btn-default').click
......@@ -143,7 +140,7 @@ describe 'Board with milestone', :feature, :js do
click_button('Submit issue')
wait_for_vue_resource
wait_for_requests
click_link('testing new issue with milestone')
end
......@@ -152,7 +149,7 @@ describe 'Board with milestone', :feature, :js do
end
it 'updates issue with milestone from add issues modal' do
wait_for_vue_resource
wait_for_requests
click_button 'Add issues'
......
This diff is collapsed.
require 'rails_helper'
describe 'Issue Boards', :feature, :js do
include WaitForVueResource
include DragTo
let(:project) { create(:empty_project, :public) }
......@@ -24,7 +23,7 @@ describe 'Issue Boards', :feature, :js do
before do
visit namespace_project_board_path(project.namespace, project, board)
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.board', count: 2)
end
......@@ -38,7 +37,7 @@ describe 'Issue Boards', :feature, :js do
it 'moves un-ordered issue to top of list' do
drag(from_index: 3, to_index: 0)
wait_for_vue_resource
wait_for_requests
page.within(first('.board')) do
expect(first('.card')).to have_content(issue4.title)
......@@ -49,7 +48,7 @@ describe 'Issue Boards', :feature, :js do
context 'ordering in list' do
before do
visit namespace_project_board_path(project.namespace, project, board)
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.board', count: 2)
end
......@@ -57,7 +56,7 @@ describe 'Issue Boards', :feature, :js do
it 'moves from middle to top' do
drag(from_index: 1, to_index: 0)
wait_for_vue_resource
wait_for_requests
expect(first('.card')).to have_content(issue2.title)
end
......@@ -65,7 +64,7 @@ describe 'Issue Boards', :feature, :js do
it 'moves from middle to bottom' do
drag(from_index: 1, to_index: 2)
wait_for_vue_resource
wait_for_requests
expect(all('.card').last).to have_content(issue2.title)
end
......@@ -73,7 +72,7 @@ describe 'Issue Boards', :feature, :js do
it 'moves from top to bottom' do
drag(from_index: 0, to_index: 2)
wait_for_vue_resource
wait_for_requests
expect(all('.card').last).to have_content(issue3.title)
end
......@@ -81,7 +80,7 @@ describe 'Issue Boards', :feature, :js do
it 'moves from bottom to top' do
drag(from_index: 2, to_index: 0)
wait_for_vue_resource
wait_for_requests
expect(first('.card')).to have_content(issue1.title)
end
......@@ -89,7 +88,7 @@ describe 'Issue Boards', :feature, :js do
it 'moves from top to middle' do
drag(from_index: 0, to_index: 1)
wait_for_vue_resource
wait_for_requests
expect(first('.card')).to have_content(issue2.title)
end
......@@ -97,7 +96,7 @@ describe 'Issue Boards', :feature, :js do
it 'moves from bottom to middle' do
drag(from_index: 2, to_index: 1)
wait_for_vue_resource
wait_for_requests
expect(all('.card').last).to have_content(issue2.title)
end
......@@ -112,7 +111,7 @@ describe 'Issue Boards', :feature, :js do
before do
visit namespace_project_board_path(project.namespace, project, board)
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.board', count: 3)
end
......@@ -120,7 +119,7 @@ describe 'Issue Boards', :feature, :js do
it 'moves to top of another list' do
drag(list_from_index: 0, list_to_index: 1)
wait_for_vue_resource
wait_for_requests
expect(first('.board')).to have_selector('.card', count: 2)
expect(all('.board')[1]).to have_selector('.card', count: 4)
......@@ -133,7 +132,7 @@ describe 'Issue Boards', :feature, :js do
it 'moves to bottom of another list' do
drag(list_from_index: 0, list_to_index: 1, to_index: 2)
wait_for_vue_resource
wait_for_requests
expect(first('.board')).to have_selector('.card', count: 2)
expect(all('.board')[1]).to have_selector('.card', count: 4)
......@@ -146,7 +145,7 @@ describe 'Issue Boards', :feature, :js do
it 'moves to index of another list' do
drag(list_from_index: 0, list_to_index: 1, to_index: 1)
wait_for_vue_resource
wait_for_requests
expect(first('.board')).to have_selector('.card', count: 2)
expect(all('.board')[1]).to have_selector('.card', count: 4)
......
require 'rails_helper'
describe 'Issue Boards shortcut', feature: true, js: true do
include WaitForVueResource
let(:project) { create(:empty_project) }
before do
......@@ -17,6 +15,6 @@ describe 'Issue Boards shortcut', feature: true, js: true do
find('body').native.send_keys('gb')
expect(page).to have_selector('.boards-list')
wait_for_vue_resource
wait_for_requests
end
end
require 'rails_helper'
describe 'Issue Boards add issue modal filtering', :feature, :js do
include WaitForVueResource
let(:project) { create(:empty_project, :public) }
let(:board) { create(:board, project: project) }
let(:planning) { create(:label, project: project, name: 'Planning') }
......@@ -24,7 +22,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
find('.form-control').native.send_keys('testing empty state')
find('.form-control').native.send_keys(:enter)
wait_for_vue_resource
wait_for_requests
expect(page).to have_content('There are no issues to show.')
end
......@@ -38,7 +36,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
submit_filter
page.within('.add-issues-modal') do
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.card', count: 0)
......@@ -48,7 +46,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
click_button('Add issues')
page.within('.add-issues-modal') do
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.card', count: 1)
end
......@@ -62,13 +60,13 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
submit_filter
page.within('.add-issues-modal') do
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.card', count: 0)
find('.clear-search').click
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.card', count: 1)
end
......@@ -89,7 +87,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
submit_filter
page.within('.add-issues-modal') do
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.js-visual-token', text: user2.username)
expect(page).to have_selector('.card', count: 1)
......@@ -112,7 +110,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
submit_filter
page.within('.add-issues-modal') do
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.js-visual-token', text: 'none')
expect(page).to have_selector('.card', count: 1)
......@@ -125,7 +123,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
submit_filter
page.within('.add-issues-modal') do
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.js-visual-token', text: user2.username)
expect(page).to have_selector('.card', count: 1)
......@@ -147,7 +145,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
submit_filter
page.within('.add-issues-modal') do
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.js-visual-token', text: 'upcoming')
expect(page).to have_selector('.card', count: 0)
......@@ -160,7 +158,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
submit_filter
page.within('.add-issues-modal') do
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.js-visual-token', text: milestone.name)
expect(page).to have_selector('.card', count: 1)
......@@ -182,7 +180,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
submit_filter
page.within('.add-issues-modal') do
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.js-visual-token', text: 'none')
expect(page).to have_selector('.card', count: 1)
......@@ -195,7 +193,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
submit_filter
page.within('.add-issues-modal') do
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.js-visual-token', text: label.title)
expect(page).to have_selector('.card', count: 1)
......@@ -205,7 +203,7 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do
def visit_board
visit namespace_project_board_path(project.namespace, project, board)
wait_for_vue_resource
wait_for_requests
click_button('Add issues')
end
......
require 'rails_helper'
describe 'Multiple Issue Boards', feature: true, js: true do
include WaitForAjax
include WaitForVueResource
let(:user) { create(:user) }
let(:project) { create(:empty_project, :public) }
let!(:planning) { create(:label, project: project, name: 'Planning') }
......@@ -17,7 +14,7 @@ describe 'Multiple Issue Boards', feature: true, js: true do
login_as(user)
visit namespace_project_boards_path(project.namespace, project)
wait_for_vue_resource
wait_for_requests
end
it 'shows current board name' do
......@@ -42,7 +39,7 @@ describe 'Multiple Issue Boards', feature: true, js: true do
click_link board2.name
end
wait_for_vue_resource
wait_for_requests
page.within('.boards-switcher') do
expect(page).to have_content(board2.name)
......@@ -60,7 +57,7 @@ describe 'Multiple Issue Boards', feature: true, js: true do
click_button 'Save'
end
wait_for_vue_resource
wait_for_requests
page.within('.dropdown-menu') do
expect(page).to have_content('Testing')
......@@ -78,7 +75,7 @@ describe 'Multiple Issue Boards', feature: true, js: true do
click_button 'Save'
end
wait_for_vue_resource
wait_for_requests
page.within('.dropdown-menu') do
expect(page).to have_content('Testing')
......@@ -88,7 +85,7 @@ describe 'Multiple Issue Boards', feature: true, js: true do
it 'deletes board' do
click_button board.name
wait_for_vue_resource
wait_for_requests
page.within('.dropdown-menu') do
click_link 'Delete board'
......@@ -115,7 +112,7 @@ describe 'Multiple Issue Boards', feature: true, js: true do
click_link board2.name
end
wait_for_vue_resource
wait_for_requests
page.within('.boards-switcher') do
expect(page).to have_content(board2.name)
......@@ -123,13 +120,13 @@ describe 'Multiple Issue Boards', feature: true, js: true do
click_button 'Add list'
wait_for_ajax
wait_for_requests
page.within '.dropdown-menu-issues-board-new' do
click_link planning.title
end
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.board', count: 2)
......@@ -139,7 +136,7 @@ describe 'Multiple Issue Boards', feature: true, js: true do
click_link board.name
end
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.board', count: 1)
end
......@@ -148,7 +145,7 @@ describe 'Multiple Issue Boards', feature: true, js: true do
context 'unauthorized user' do
before do
visit namespace_project_boards_path(project.namespace, project)
wait_for_vue_resource
wait_for_requests
end
it 'does not show action links' do
......
require 'rails_helper'
describe 'Issue Boards new issue', feature: true, js: true do
include WaitForVueResource
let(:project) { create(:empty_project, :public) }
let(:board) { create(:board, project: project) }
let!(:list) { create(:list, board: board, position: 0) }
......@@ -15,7 +13,7 @@ describe 'Issue Boards new issue', feature: true, js: true do
login_as(user)
visit namespace_project_board_path(project.namespace, project, board)
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.board', count: 2)
end
......@@ -60,7 +58,7 @@ describe 'Issue Boards new issue', feature: true, js: true do
click_button 'Submit issue'
end
wait_for_vue_resource
wait_for_requests
page.within(first('.board .board-issue-count')) do
expect(page).to have_content('1')
......@@ -77,7 +75,7 @@ describe 'Issue Boards new issue', feature: true, js: true do
click_button 'Submit issue'
end
wait_for_vue_resource
wait_for_requests
expect(page).to have_selector('.issue-boards-sidebar')
end
......@@ -86,7 +84,7 @@ describe 'Issue Boards new issue', feature: true, js: true do
context 'unauthorized user' do
before do
visit namespace_project_board_path(project.namespace, project, board)
wait_for_vue_resource
wait_for_requests
end
it 'does not display new issue button' do
......
require 'rails_helper'
describe 'Issue Boards', feature: true, js: true do
include WaitForVueResource
let(:user) { create(:user) }
let(:user2) { create(:user) }
let(:project) { create(:empty_project, :public) }
......@@ -26,7 +24,7 @@ describe 'Issue Boards', feature: true, js: true do
login_as(user)
visit namespace_project_board_path(project.namespace, project, board)
wait_for_vue_resource
wait_for_requests
end
after do
......@@ -75,7 +73,7 @@ describe 'Issue Boards', feature: true, js: true do
click_button 'Remove from board'
end
wait_for_vue_resource
wait_for_requests
page.within(first('.board')) do
expect(page).to have_selector('.card', count: 1)
......@@ -89,12 +87,12 @@ describe 'Issue Boards', feature: true, js: true do
page.within('.assignee') do
click_link 'Edit'
wait_for_ajax
wait_for_requests
page.within('.dropdown-menu-user') do
click_link user.name
wait_for_vue_resource
wait_for_requests
end
expect(page).to have_content(user.name)
......@@ -109,7 +107,7 @@ describe 'Issue Boards', feature: true, js: true do
page.within('.assignee') do
click_link 'Edit'
wait_for_ajax
wait_for_requests
page.within('.dropdown-menu-user') do
click_link user.name
......@@ -130,14 +128,14 @@ describe 'Issue Boards', feature: true, js: true do
page.within('.assignee') do
click_link 'Edit'
wait_for_ajax
wait_for_requests
page.within('.dropdown-menu-user') do
click_link 'Unassigned'
end
find('.dropdown-menu-toggle').click
wait_for_vue_resource
wait_for_requests
expect(page).to have_content('No assignee')
end
......@@ -153,7 +151,7 @@ describe 'Issue Boards', feature: true, js: true do
click_button 'assign yourself'
wait_for_vue_resource
wait_for_requests
expect(page).to have_content(user.name)
end
......@@ -167,12 +165,12 @@ describe 'Issue Boards', feature: true, js: true do
page.within('.assignee') do
click_link 'Edit'
wait_for_ajax
wait_for_requests
page.within('.dropdown-menu-user') do
click_link user.name
wait_for_vue_resource
wait_for_requests
end
expect(page).to have_content(user.name)
......@@ -197,11 +195,11 @@ describe 'Issue Boards', feature: true, js: true do
page.within('.milestone') do
click_link 'Edit'
wait_for_ajax
wait_for_requests
click_link milestone.title
wait_for_vue_resource
wait_for_requests
page.within('.value') do
expect(page).to have_content(milestone.title)
......@@ -215,11 +213,11 @@ describe 'Issue Boards', feature: true, js: true do
page.within('.milestone') do
click_link 'Edit'
wait_for_ajax
wait_for_requests
click_link "No Milestone"
wait_for_vue_resource
wait_for_requests
page.within('.value') do
expect(page).not_to have_content(milestone.title)
......@@ -237,7 +235,7 @@ describe 'Issue Boards', feature: true, js: true do
click_button Date.today.day
wait_for_vue_resource
wait_for_requests
expect(page).to have_content(Date.today.to_s(:medium))
end
......@@ -251,11 +249,11 @@ describe 'Issue Boards', feature: true, js: true do
page.within('.labels') do
click_link 'Edit'
wait_for_ajax
wait_for_requests
click_link bug.title
wait_for_vue_resource
wait_for_requests
find('.dropdown-menu-close-icon').click
......@@ -275,12 +273,12 @@ describe 'Issue Boards', feature: true, js: true do
page.within('.labels') do
click_link 'Edit'
wait_for_ajax
wait_for_requests
click_link bug.title
click_link regression.title
wait_for_vue_resource
wait_for_requests
find('.dropdown-menu-close-icon').click
......@@ -302,11 +300,11 @@ describe 'Issue Boards', feature: true, js: true do
page.within('.labels') do
click_link 'Edit'
wait_for_ajax
wait_for_requests
click_link stretch.title
wait_for_vue_resource
wait_for_requests
find('.dropdown-menu-close-icon').click
......@@ -327,7 +325,7 @@ describe 'Issue Boards', feature: true, js: true do
page.within('.subscription') do
click_button 'Subscribe'
wait_for_ajax
wait_for_requests
expect(page).to have_content("Unsubscribe")
end
end
......
require 'rails_helper'
describe 'Sub-group project issue boards', :feature, :js do
include WaitForVueResource
let(:group) { create(:group) }
let(:nested_group_1) { create(:group, parent: group) }
let(:project) { create(:empty_project, group: nested_group_1) }
......@@ -18,7 +16,7 @@ describe 'Sub-group project issue boards', :feature, :js do
login_as(user)
visit namespace_project_board_path(project.namespace, project, board)
wait_for_vue_resource
wait_for_requests
end
it 'creates new label from sidebar' do
......@@ -35,7 +33,7 @@ describe 'Sub-group project issue boards', :feature, :js do
click_button 'Create'
wait_for_ajax
wait_for_requests
end
page.within '.labels' do
......
......@@ -74,7 +74,7 @@ feature 'Contributions Calendar', :feature, :js do
describe 'calendar day selection' do
before do
visit user.username
wait_for_ajax
wait_for_requests
end
it 'displays calendar' do
......@@ -86,7 +86,7 @@ feature 'Contributions Calendar', :feature, :js do
before do
cells[0].click
wait_for_ajax
wait_for_requests
@first_day_activities = selected_day_activities
end
......@@ -97,7 +97,7 @@ feature 'Contributions Calendar', :feature, :js do
describe 'select another calendar day' do
before do
cells[1].click
wait_for_ajax
wait_for_requests
end
it 'displays different calendar day activities' do
......@@ -108,7 +108,7 @@ feature 'Contributions Calendar', :feature, :js do
describe 'deselect calendar day' do
before do
cells[0].click
wait_for_ajax
wait_for_requests
end
it 'hides calendar day activities' do
......@@ -122,7 +122,7 @@ feature 'Contributions Calendar', :feature, :js do
shared_context 'visit user page' do
before do
visit user.username
wait_for_ajax
wait_for_requests
end
end
......
......@@ -479,7 +479,7 @@ describe 'Copy as GFM', feature: true, js: true do
context 'from a blob' do
before do
visit namespace_project_blob_path(project.namespace, project, File.join('master', 'files/ruby/popen.rb'))
wait_for_ajax
wait_for_requests
end
context 'selecting one word of text' do
......@@ -521,7 +521,7 @@ describe 'Copy as GFM', feature: true, js: true do
context 'from a GFM code block' do
before do
visit namespace_project_blob_path(project.namespace, project, File.join('markdown', 'doc/api/users.md'))
wait_for_ajax
wait_for_requests
end
context 'selecting one word of text' do
......
......@@ -17,7 +17,7 @@ feature 'Cycle Analytics', feature: true, js: true do
login_as(user)
visit namespace_project_cycle_analytics_path(project.namespace, project)
wait_for_ajax
wait_for_requests
end
it 'shows introductory message' do
......@@ -73,7 +73,7 @@ feature 'Cycle Analytics', feature: true, js: true do
project.team << [user, :master]
login_as(user)
visit namespace_project_cycle_analytics_path(project.namespace, project)
wait_for_ajax
wait_for_requests
end
it 'shows the content in Spanish' do
......@@ -96,7 +96,7 @@ feature 'Cycle Analytics', feature: true, js: true do
login_as(guest)
visit namespace_project_cycle_analytics_path(project.namespace, project)
wait_for_ajax
wait_for_requests
end
it 'needs permissions to see restricted stages' do
......@@ -140,6 +140,6 @@ feature 'Cycle Analytics', feature: true, js: true do
def click_stage(stage_name)
find('.stage-nav li', text: stage_name).click
wait_for_ajax
wait_for_requests
end
end
......@@ -15,7 +15,7 @@ feature 'Tooltips on .timeago dates', feature: true, js: true do
login_as user
visit user_path(user)
wait_for_ajax()
wait_for_requests()
page.find('.js-timeago').hover
end
......@@ -32,7 +32,7 @@ feature 'Tooltips on .timeago dates', feature: true, js: true do
login_as user
visit user_snippets_path(user)
wait_for_ajax()
wait_for_requests()
page.find('.js-timeago.snippet-created-ago').hover
end
......
......@@ -23,7 +23,7 @@ describe 'Dashboard Groups page', js: true, feature: true do
it 'filters groups' do
fill_in 'filter_groups', with: group.name
wait_for_ajax
wait_for_requests
expect(page).to have_content(group.full_name)
expect(page).not_to have_content(nested_group.full_name)
......@@ -32,10 +32,10 @@ describe 'Dashboard Groups page', js: true, feature: true do
it 'resets search when user cleans the input' do
fill_in 'filter_groups', with: group.name
wait_for_ajax
wait_for_requests
fill_in 'filter_groups', with: ""
wait_for_ajax
wait_for_requests
expect(page).to have_content(group.full_name)
expect(page).to have_content(nested_group.full_name)
......
require 'spec_helper'
describe 'Dashboard > milestone filter', :feature, :js do
include WaitForAjax
let(:user) { create(:user) }
let(:project) { create(:project, name: 'test', namespace: user.namespace) }
let(:milestone) { create(:milestone, title: "v1.0", project: project) }
......@@ -28,14 +26,14 @@ describe 'Dashboard > milestone filter', :feature, :js do
before do
find(milestone_select).click
wait_for_ajax
wait_for_requests
page.within('.dropdown-content') do
click_link 'v1.0'
end
find(milestone_select).click
wait_for_ajax
wait_for_requests
end
it 'shows issues with Milestone v1.0' do
......
......@@ -11,7 +11,7 @@ feature 'Project member activity', feature: true, js: true do
def visit_activities_and_wait_with_event(event_type)
Event.create(project: project, author_id: user.id, action: event_type)
visit activity_namespace_project_path(project.namespace, project)
wait_for_ajax
wait_for_requests
end
subject { page.find(".event-title").text }
......
......@@ -7,7 +7,7 @@ feature 'Group elastic search', js: true, feature: true do
def choose_group(group)
find('.js-search-group-dropdown').trigger('click')
wait_for_ajax
wait_for_requests
page.within '.search-holder' do
click_link group.name
......
......@@ -36,7 +36,7 @@ feature 'Expand and collapse diffs', js: true, feature: true do
visit namespace_project_commit_path(project.namespace, project, project.commit(branch), anchor: "#{large_diff[:id]}_0_1")
execute_script('window.location.reload()')
wait_for_ajax
wait_for_requests
expect(large_diff).to have_selector('.code')
expect(large_diff).not_to have_selector('.nothing-here-block')
......@@ -50,7 +50,7 @@ feature 'Expand and collapse diffs', js: true, feature: true do
visit namespace_project_commit_path(project.namespace, project, project.commit(branch), anchor: large_diff[:id])
execute_script('window.location.reload()')
wait_for_ajax
wait_for_requests
expect(large_diff).to have_selector('.code')
expect(large_diff).not_to have_selector('.nothing-here-block')
......@@ -94,7 +94,7 @@ feature 'Expand and collapse diffs', js: true, feature: true do
context 'expanding a diff for a renamed file' do
before do
large_diff_renamed.find('.click-to-expand').click
wait_for_ajax
wait_for_requests
end
it 'shows the old content' do
......@@ -116,7 +116,7 @@ feature 'Expand and collapse diffs', js: true, feature: true do
find('.js-file-title', match: :first)
# Click `large_diff.md` title
all('.diff-toggle-caret')[1].click
wait_for_ajax
wait_for_requests
end
it 'makes a request to get the content' do
......@@ -139,7 +139,7 @@ feature 'Expand and collapse diffs', js: true, feature: true do
large_diff.find('.add-diff-note').click
large_diff.find('.note-textarea').send_keys comment_text
large_diff.find_button('Comment').click
wait_for_ajax
wait_for_requests
end
it 'adds the comment' do
......@@ -160,7 +160,7 @@ feature 'Expand and collapse diffs', js: true, feature: true do
find('.js-file-title', match: :first)
# Click `large_diff.md` title
all('.diff-toggle-caret')[1].click
wait_for_ajax
wait_for_requests
end
it 'shows the diff content' do
......@@ -216,7 +216,7 @@ feature 'Expand and collapse diffs', js: true, feature: true do
expect(page).to have_no_content('No longer a symlink')
find('.click-to-expand').click
wait_for_ajax
wait_for_requests
expect(page).to have_content('No longer a symlink')
end
......@@ -273,7 +273,7 @@ feature 'Expand and collapse diffs', js: true, feature: true do
expect(page).to have_content('too_large_image.jpg')
find('.note-textarea')
wait_for_ajax
wait_for_requests
execute_script('window.ajaxUris = []; $(document).ajaxSend(function(event, xhr, settings) { ajaxUris.push(settings.url) });')
end
......
......@@ -23,7 +23,7 @@ describe 'Explore Groups page', :js, :feature do
it 'filters groups' do
fill_in 'filter_groups', with: group.name
wait_for_ajax
wait_for_requests
expect(page).to have_content(group.full_name)
expect(page).not_to have_content(public_group.full_name)
......@@ -32,10 +32,10 @@ describe 'Explore Groups page', :js, :feature do
it 'resets search when user cleans the input' do
fill_in 'filter_groups', with: group.name
wait_for_ajax
wait_for_requests
fill_in 'filter_groups', with: ""
wait_for_ajax
wait_for_requests
expect(page).to have_content(group.full_name)
expect(page).to have_content(public_group.full_name)
......
......@@ -49,7 +49,7 @@ describe "GitLab Flavored Markdown", feature: true do
end
describe "for issues", feature: true, js: true do
include WaitForVueResource
include WaitForRequests
before do
@other_issue = create(:issue,
......
......@@ -33,7 +33,7 @@ feature 'Group issues page', feature: true do
it 'filters by only group users' do
click_button('Assignee')
wait_for_ajax
wait_for_requests
expect(find('.dropdown-menu-assignee')).to have_link(user.name)
expect(find('.dropdown-menu-assignee')).not_to have_link(user2.name)
......
require 'spec_helper'
feature 'Groups > Members > Master/Owner can override LDAP access levels', feature: true do
include WaitForAjax
include WaitForRequests
let(:johndoe) { create(:user, name: 'John Doe') }
let(:maryjane) { create(:user, name: 'Mary Jane') }
......@@ -56,7 +56,7 @@ feature 'Groups > Members > Master/Owner can override LDAP access levels', featu
click_link 'Revert to LDAP group sync settings'
end
wait_for_ajax
wait_for_requests
expect(page).to have_button 'Guest', disabled: true
expect(page).to have_button 'Edit permissions'
......
require 'rails_helper'
describe 'Awards Emoji', feature: true do
include WaitForVueResource
include WaitForRequests
let!(:project) { create(:project, :public) }
let!(:user) { create(:user) }
......@@ -22,7 +22,7 @@ describe 'Awards Emoji', feature: true do
# The `heart_tip` emoji is not valid anymore so we need to skip validation
issue.award_emoji.build(user: user, name: 'heart_tip').save!(validate: false)
visit namespace_project_issue_path(project.namespace, project, issue)
wait_for_vue_resource
wait_for_requests
end
# Regression test: https://gitlab.com/gitlab-org/gitlab-ce/issues/29529
......@@ -36,19 +36,19 @@ describe 'Awards Emoji', feature: true do
before do
visit namespace_project_issue_path(project.namespace, project, issue)
wait_for_vue_resource
wait_for_requests
end
it 'increments the thumbsdown emoji', js: true do
find('[data-name="thumbsdown"]').click
wait_for_ajax
wait_for_requests
expect(thumbsdown_emoji).to have_text("1")
end
context 'click the thumbsup emoji' do
it 'increments the thumbsup emoji', js: true do
find('[data-name="thumbsup"]').click
wait_for_ajax
wait_for_requests
expect(thumbsup_emoji).to have_text("1")
end
......@@ -60,7 +60,7 @@ describe 'Awards Emoji', feature: true do
context 'click the thumbsdown emoji' do
it 'increments the thumbsdown emoji', js: true do
find('[data-name="thumbsdown"]').click
wait_for_ajax
wait_for_requests
expect(thumbsdown_emoji).to have_text("1")
end
......@@ -113,7 +113,7 @@ describe 'Awards Emoji', feature: true do
click_button 'Comment'
end
wait_for_ajax
wait_for_requests
end
def thumbsup_emoji
......@@ -143,6 +143,6 @@ describe 'Awards Emoji', feature: true do
find('[data-name="smiley"]').click
end
wait_for_ajax
wait_for_requests
end
end
......@@ -6,12 +6,10 @@ feature 'Issue awards', js: true, feature: true do
let(:issue) { create(:issue, project: project) }
describe 'logged in' do
include WaitForVueResource
before do
login_as(user)
visit namespace_project_issue_path(project.namespace, project, issue)
wait_for_vue_resource
wait_for_requests
end
it 'adds award to issue' do
......@@ -41,11 +39,9 @@ feature 'Issue awards', js: true, feature: true do
end
describe 'logged out' do
include WaitForVueResource
before do
visit namespace_project_issue_path(project.namespace, project, issue)
wait_for_vue_resource
wait_for_requests
end
it 'does not see award menu button' do
......
......@@ -306,7 +306,7 @@ feature 'Issues > Labels bulk assignment', feature: true do
page.within('.issues_bulk_update') do
click_button 'Labels'
wait_for_ajax
wait_for_requests
expect(find('.dropdown-menu-labels li', text: 'bug')).to have_css('.is-active')
expect(find('.dropdown-menu-labels li', text: 'feature')).to have_css('.is-indeterminate')
......@@ -349,7 +349,7 @@ feature 'Issues > Labels bulk assignment', feature: true do
def open_milestone_dropdown(items = [])
page.within('.issues_bulk_update') do
click_button 'Milestone'
wait_for_ajax
wait_for_requests
items.map do |item|
click_link item
end
......@@ -359,7 +359,7 @@ feature 'Issues > Labels bulk assignment', feature: true do
def open_labels_dropdown(items = [], unmark = false)
page.within('.issues_bulk_update') do
click_button 'Labels'
wait_for_ajax
wait_for_requests
items.map do |item|
click_link item
end
......@@ -392,6 +392,6 @@ feature 'Issues > Labels bulk assignment', feature: true do
def update_issues
click_button 'Update issues'
wait_for_ajax
wait_for_requests
end
end
......@@ -16,7 +16,7 @@ feature 'Create Branch/Merge Request Dropdown on issue page', feature: true, js:
select_dropdown_option('create-mr')
wait_for_ajax
wait_for_requests
expect(page).to have_content("created branch 1-cherry-coloured-funk")
expect(page).to have_content("mentioned in merge request !1")
......@@ -32,7 +32,7 @@ feature 'Create Branch/Merge Request Dropdown on issue page', feature: true, js:
select_dropdown_option('create-branch')
wait_for_ajax
wait_for_requests
expect(page).to have_selector('.dropdown-toggle-text ', text: '1-cherry-coloured-funk')
expect(current_path).to eq namespace_project_tree_path(project.namespace, project, '1-cherry-coloured-funk')
......
......@@ -16,7 +16,7 @@ describe 'Dropdown author', js: true, feature: true do
end
sleep 0.5
wait_for_ajax
wait_for_requests
end
def dropdown_author_size
......
......@@ -2,7 +2,6 @@ require 'rails_helper'
describe 'Dropdown weight', js: true, feature: true do
include FilteredSearchHelpers
include WaitForAjax
let!(:project) { create(:empty_project) }
let!(:user) { create(:user) }
......@@ -13,7 +12,7 @@ describe 'Dropdown weight', js: true, feature: true do
input.split("").each do |i|
filtered_search.send_keys(i)
sleep 3
wait_for_ajax
wait_for_requests
end
end
......
......@@ -761,7 +761,7 @@ describe 'Filter issues', js: true, feature: true do
sort_toggle.click
find('.filtered-search-wrapper .dropdown-menu li a', text: 'Oldest updated').click
wait_for_ajax
wait_for_requests
expect(find('.issues-list .issue:first-of-type .issue-title-text a')).to have_content(old_issue.title)
end
......@@ -778,17 +778,17 @@ describe 'Filter issues', js: true, feature: true do
it 'open state' do
find('.issues-state-filters a', text: 'Closed').click
wait_for_ajax
wait_for_requests
find('.issues-state-filters a', text: 'Open').click
wait_for_ajax
wait_for_requests
expect(page).to have_selector('.issues-list .issue', count: 4)
end
it 'closed state' do
find('.issues-state-filters a', text: 'Closed').click
wait_for_ajax
wait_for_requests
expect(page).to have_selector('.issues-list .issue', count: 1)
expect(find('.issues-list .issue:first-of-type .issue-title-text a')).to have_content(closed_issue.title)
......@@ -796,7 +796,7 @@ describe 'Filter issues', js: true, feature: true do
it 'all state' do
find('.issues-state-filters a', text: 'All').click
wait_for_ajax
wait_for_requests
expect(page).to have_selector('.issues-list .issue', count: 5)
end
......
......@@ -2,7 +2,6 @@ require 'rails_helper'
describe 'Filter issues weight', js: true, feature: true do
include FilteredSearchHelpers
include WaitForAjax
let!(:project) { create(:empty_project) }
let!(:user) { create(:user, name: 'administrator', username: 'root') }
......
......@@ -3,7 +3,6 @@ require 'rails_helper'
describe 'New/edit issue', :feature, :js do
include GitlabRoutingHelper
include ActionView::Helpers::JavaScriptHelper
include WaitForAjax
let!(:project) { create(:project) }
let!(:user) { create(:user)}
......@@ -28,7 +27,7 @@ describe 'New/edit issue', :feature, :js do
before do
click_button 'Unassigned'
wait_for_ajax
wait_for_requests
end
it 'unselects other assignees when unassigned is selected' do
......@@ -69,7 +68,7 @@ describe 'New/edit issue', :feature, :js do
expect(find('a', text: 'Assign to me')).to be_visible
click_button 'Unassigned'
wait_for_ajax
wait_for_requests
page.within '.dropdown-menu-user' do
click_link user2.name
......@@ -168,7 +167,7 @@ describe 'New/edit issue', :feature, :js do
it 'correctly updates the selected user when changing assignee' do
click_button 'Unassigned'
wait_for_ajax
wait_for_requests
page.within '.dropdown-menu-user' do
click_link user.name
......
......@@ -11,7 +11,7 @@ feature 'GFM autocomplete', feature: true, js: true do
login_as(user)
visit namespace_project_issue_path(project.namespace, project, issue)
wait_for_ajax
wait_for_requests
end
it 'opens autocomplete menu when field starts with text' do
......@@ -40,7 +40,7 @@ feature 'GFM autocomplete', feature: true, js: true do
expect(page).to have_selector('.atwho-container')
wait_for_ajax
wait_for_requests
expect(find('#at-view-58')).not_to have_selector('.cur:first-of-type')
end
......@@ -80,7 +80,7 @@ feature 'GFM autocomplete', feature: true, js: true do
expect(page).to have_selector('.atwho-container')
wait_for_ajax
wait_for_requests
expect(find('#at-view-64')).to have_selector('.cur:first-of-type')
end
......@@ -93,7 +93,7 @@ feature 'GFM autocomplete', feature: true, js: true do
expect(page).to have_selector('.atwho-container')
wait_for_ajax
wait_for_requests
expect(find('#at-view-64')).to have_content(user.name)
end
......@@ -106,7 +106,7 @@ feature 'GFM autocomplete', feature: true, js: true do
expect(page).to have_selector('.atwho-container')
wait_for_ajax
wait_for_requests
expect(find('#at-view-58')).to have_selector('.cur:first-of-type')
end
......
......@@ -23,7 +23,7 @@ feature 'Issue Sidebar', feature: true do
find('.block.assignee .edit-link').click
wait_for_ajax
wait_for_requests
end
it 'shows author in assignee dropdown' do
......@@ -37,7 +37,7 @@ feature 'Issue Sidebar', feature: true do
find('.dropdown-input-field').native.send_keys user2.name
sleep 1 # Required to wait for end of input delay
wait_for_ajax
wait_for_requests
expect(page).to have_content(user2.name)
end
......@@ -48,7 +48,7 @@ feature 'Issue Sidebar', feature: true do
click_button 'assign yourself'
wait_for_ajax
wait_for_requests
find('.block.assignee .edit-link').click
......
......@@ -15,7 +15,7 @@ describe 'Create notes on issues', :js, :feature do
fill_in 'note[note]', with: note_text
click_button 'Comment'
wait_for_ajax
wait_for_requests
end
it 'creates a note with reference and cross references the issue' do
......
......@@ -108,11 +108,11 @@ feature 'Multiple issue updating from issues#index', feature: true do
def click_update_assignee_button
find('.js-update-assignee').click
wait_for_ajax
wait_for_requests
end
def click_update_issues_button
find('.update_selected_issues').click
wait_for_ajax
wait_for_requests
end
end
......@@ -18,7 +18,7 @@ feature 'Issues > User uses slash commands', feature: true, js: true do
end
after do
wait_for_ajax
wait_for_requests
end
describe 'adding a due date from note' do
......
......@@ -388,7 +388,7 @@ describe 'Issues', feature: true do
previous_token = find('input#issue_email').value
find('.incoming-email-token-reset').trigger('click')
wait_for_ajax
wait_for_requests
expect(page).to have_no_field('issue_email', with: previous_token)
new_token = project1.new_issue_address(@user.reload)
......@@ -434,7 +434,7 @@ describe 'Issues', feature: true do
expect(page).to have_content 'No assignee'
end
# wait_for_ajax does not work with vue-resource at the moment
# wait_for_requests does not work with vue-resource at the moment
sleep 1
expect(issue.reload.assignees).to be_empty
......@@ -697,7 +697,7 @@ describe 'Issues', feature: true do
click_button date.day
end
wait_for_ajax
wait_for_requests
expect(find('.value').text).to have_content date.strftime('%b %-d, %Y')
end
......@@ -713,7 +713,7 @@ describe 'Issues', feature: true do
click_button date.day
end
wait_for_ajax
wait_for_requests
expect(page).to have_no_content 'No due date'
......@@ -725,7 +725,7 @@ describe 'Issues', feature: true do
end
describe 'title issue#show', js: true do
include WaitForVueResource
include WaitForRequests
it 'updates the title', js: true do
issue = create(:issue, author: @user, assignees: [@user], project: project, title: 'new title')
......@@ -736,7 +736,7 @@ describe 'Issues', feature: true do
issue.update(title: "updated title")
wait_for_vue_resource
wait_for_requests
expect(page).to have_text("updated title")
end
end
......
require 'rails_helper'
feature 'Merge request approvals', js: true, feature: true do
include WaitForVueResource
let(:user) { create(:user) }
let(:project) { create(:project, approvals_before_merge: 1) }
......@@ -74,7 +72,7 @@ feature 'Merge request approvals', js: true, feature: true do
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_requests
expect(find('.select2-results')).to have_content(group.name)
......@@ -103,7 +101,7 @@ feature 'Merge request approvals', js: true, feature: true do
click_on("Submit merge request")
wait_for_vue_resource
wait_for_requests
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 +127,14 @@ feature 'Merge request approvals', js: true, feature: true do
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_requests
expect(find('.select2-results')).to have_content(group.name)
find('.select2-results').click
click_on("Save changes")
wait_for_vue_resource
wait_for_requests
find('.approvals-components')
expect(page).to have_content("Requires 1 more approval")
end
......@@ -236,7 +234,7 @@ feature 'Merge request approvals', js: true, feature: true do
it 'I am able to approve' do
approve_merge_request
wait_for_vue_resource
wait_for_requests
expect(page).to have_content('Approved by')
expect(page).to have_css('.approver-avatar')
end
......@@ -260,7 +258,7 @@ feature 'Merge request approvals', js: true, feature: true do
# before approval status is loaded
expect(page).to have_button('Merge when pipeline succeeds', disabled: true)
wait_for_vue_resource
wait_for_requests
# after approval status is loaded
expect(page).to have_button('Merge when pipeline succeeds', disabled: true)
......@@ -286,7 +284,7 @@ feature 'Merge request approvals', js: true, feature: true do
# before approval status is loaded
expect(page).to have_button("Rebase", disabled: true)
wait_for_vue_resource
wait_for_requests
# after approval status is loaded
expect(page).to have_button("Rebase", disabled: true)
......@@ -321,12 +319,12 @@ def approve_merge_request
page.within '.mr-state-widget' do
find('.approve-btn').click
end
wait_for_vue_resource
wait_for_requests
end
def unapprove_merge_request
page.within '.mr-state-widget' do
find('.unapprove-btn-wrap').click
end
wait_for_vue_resource
wait_for_requests
end
require 'spec_helper'
feature 'Merge Request closing issues message', feature: true, js: true do
include WaitForAjax
let(:user) { create(:user) }
let(:project) { create(:project, :public) }
let(:issue_1) { create(:issue, project: project)}
......@@ -25,7 +23,7 @@ feature 'Merge Request closing issues message', feature: true, js: true do
login_as user
visit namespace_project_merge_request_path(project.namespace, project, merge_request)
wait_for_ajax
wait_for_requests
end
context 'not closing or mentioning any issue' do
......@@ -93,7 +91,7 @@ feature 'Merge Request closing issues message', feature: true, js: true do
let(:merge_request_description) { "Description\n\nclosing #{issue_1.to_reference}, #{issue_2.to_reference}" }
it 'displays closing issue message exactly one time' do
wait_for_ajax
wait_for_requests
expect(page).to have_content("Closes issues #{issue_1.to_reference} and #{issue_2.to_reference}", count: 1)
end
end
......
......@@ -23,13 +23,13 @@ feature 'Merge request conflict resolution', js: true, feature: true do
end
click_button 'Commit conflict resolution'
wait_for_ajax
wait_for_requests
expect(page).to have_content('All merge conflicts were resolved')
merge_request.reload_diff
click_on 'Changes'
wait_for_ajax
wait_for_requests
within find('.diff-file', text: 'files/ruby/popen.rb') do
expect(page).to have_selector('.line_content.new', text: "vars = { 'PWD' => path }")
......@@ -53,23 +53,23 @@ feature 'Merge request conflict resolution', js: true, feature: true do
within find('.files-wrapper .diff-file', text: 'files/ruby/popen.rb') do
click_button 'Edit inline'
wait_for_ajax
wait_for_requests
execute_script('ace.edit($(".files-wrapper .diff-file pre")[0]).setValue("One morning");')
end
within find('.files-wrapper .diff-file', text: 'files/ruby/regex.rb') do
click_button 'Edit inline'
wait_for_ajax
wait_for_requests
execute_script('ace.edit($(".files-wrapper .diff-file pre")[1]).setValue("Gregor Samsa woke from troubled dreams");')
end
click_button 'Commit conflict resolution'
wait_for_ajax
wait_for_requests
expect(page).to have_content('All merge conflicts were resolved')
merge_request.reload_diff
click_on 'Changes'
wait_for_ajax
wait_for_requests
expect(page).to have_content('One morning')
expect(page).to have_content('Gregor Samsa woke from troubled dreams')
......@@ -126,21 +126,21 @@ feature 'Merge request conflict resolution', js: true, feature: true do
it 'conflicts are resolved in Edit inline mode' do
within find('.files-wrapper .diff-file', text: 'files/markdown/ruby-style-guide.md') do
wait_for_ajax
wait_for_requests
execute_script('ace.edit($(".files-wrapper .diff-file pre")[0]).setValue("Gregor Samsa woke from troubled dreams");')
end
click_button 'Commit conflict resolution'
wait_for_ajax
wait_for_requests
expect(page).to have_content('All merge conflicts were resolved')
merge_request.reload_diff
click_on 'Changes'
wait_for_ajax
wait_for_requests
click_link 'Expand all'
wait_for_ajax
wait_for_requests
expect(page).to have_content('Gregor Samsa woke from troubled dreams')
end
......@@ -171,7 +171,7 @@ feature 'Merge request conflict resolution', js: true, feature: true do
it 'shows an error if the conflicts page is visited directly' do
visit current_url + '/conflicts'
wait_for_ajax
wait_for_requests
expect(find('#conflicts')).to have_content('Please try to resolve them locally.')
end
......
require 'spec_helper'
feature 'Create New Merge Request', feature: true, js: true do
include WaitForVueResource
let(:user) { create(:user) }
let(:project) { create(:project, :public) }
......@@ -175,7 +173,7 @@ feature 'Create New Merge Request', feature: true, js: true do
page.within('.merge-request') do
click_link 'Pipelines'
wait_for_vue_resource
wait_for_requests
expect(page).to have_content "##{pipeline.id}"
end
......
......@@ -32,7 +32,7 @@ describe 'Deleted source branch', feature: true, js: true do
end
click_on 'Changes'
wait_for_ajax
wait_for_requests
expect(page).to have_selector('.diffs.tab-pane .nothing-here-block')
expect(page).to have_content('Source branch does not exist.')
......
......@@ -60,7 +60,7 @@ feature 'Diff note avatars', feature: true, js: true do
click_button 'Comment'
wait_for_ajax
wait_for_requests
end
visit namespace_project_merge_request_path(project.namespace, project, merge_request)
......@@ -76,7 +76,7 @@ feature 'Diff note avatars', feature: true, js: true do
before do
visit diffs_namespace_project_merge_request_path(project.namespace, project, merge_request, view: view)
wait_for_ajax
wait_for_requests
end
it 'shows note avatar' do
......@@ -114,7 +114,7 @@ feature 'Diff note avatars', feature: true, js: true do
find('.js-note-delete').click
end
wait_for_ajax
wait_for_requests
page.within find("[id='#{position.line_code(project.repository)}']") do
expect(page).not_to have_selector('img.js-diff-comment-avatar')
......@@ -129,7 +129,7 @@ feature 'Diff note avatars', feature: true, js: true do
click_button 'Comment'
wait_for_ajax
wait_for_requests
end
page.within find("[id='#{position.line_code(project.repository)}']") do
......@@ -148,7 +148,7 @@ feature 'Diff note avatars', feature: true, js: true do
find('.js-comment-button').trigger 'click'
wait_for_ajax
wait_for_requests
end
end
......@@ -166,7 +166,7 @@ feature 'Diff note avatars', feature: true, js: true do
visit diffs_namespace_project_merge_request_path(project.namespace, project, merge_request, view: view)
wait_for_ajax
wait_for_requests
end
it 'shows extra comment count' do
......
......@@ -289,7 +289,7 @@ describe 'Filter merge requests', feature: true do
page.within '.dropdown-menu-sort' do
click_link 'Oldest created'
end
wait_for_ajax
wait_for_requests
page.within '.mr-list' do
expect(page).to have_content('Frontend')
......
......@@ -37,9 +37,9 @@ feature 'Merge immediately', :feature, :js do
Sidekiq::Testing.fake! do
click_link 'Merge immediately'
expect(find('.accept-merge-request.btn-info')).to have_content('Merge in progress')
wait_for_requests
wait_for_vue_resource
expect(find('.accept-merge-request.btn-info')).to have_content('Merge in progress')
end
end
end
......
......@@ -56,7 +56,7 @@ feature 'Mini Pipeline Graph', :js, :feature do
before do
toggle.click
wait_for_ajax
wait_for_requests
end
it 'should open when toggle is clicked' do
......
require 'spec_helper'
feature 'Only allow merge requests to be merged if the pipeline succeeds', feature: true, js: true do
include WaitForVueResource
let(:merge_request) { create(:merge_request_with_diffs) }
let(:project) { merge_request.target_project }
......@@ -16,7 +14,7 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
it 'allows MR to be merged' do
visit_merge_request(merge_request)
wait_for_vue_resource
wait_for_requests
expect(page).to have_button 'Merge'
end
......@@ -44,7 +42,7 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
it 'does not allow to merge immediately' do
visit_merge_request(merge_request)
wait_for_vue_resource
wait_for_requests
expect(page).to have_button 'Merge when pipeline succeeds'
expect(page).not_to have_button 'Select merge moment'
......@@ -57,7 +55,7 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
it 'does not allow MR to be merged' do
visit_merge_request(merge_request)
wait_for_vue_resource
wait_for_requests
expect(page).to have_css('button[disabled="disabled"]', text: 'Merge')
expect(page).to have_content('Please retry the job or push a new commit to fix the failure.')
......@@ -70,7 +68,7 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
it 'does not allow MR to be merged' do
visit_merge_request(merge_request)
wait_for_vue_resource
wait_for_requests
expect(page).not_to have_button 'Merge'
expect(page).to have_content('Please retry the job or push a new commit to fix the failure.')
......@@ -83,7 +81,7 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
it 'allows MR to be merged' do
visit_merge_request(merge_request)
wait_for_vue_resource
wait_for_requests
expect(page).to have_button 'Merge'
end
......@@ -95,7 +93,7 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
it 'allows MR to be merged' do
visit_merge_request(merge_request)
wait_for_vue_resource
wait_for_requests
expect(page).to have_button 'Merge'
end
......@@ -113,7 +111,7 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
it 'allows MR to be merged immediately' do
visit_merge_request(merge_request)
wait_for_vue_resource
wait_for_requests
expect(page).to have_button 'Merge when pipeline succeeds'
......@@ -128,7 +126,7 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
it 'allows MR to be merged' do
visit_merge_request(merge_request)
wait_for_vue_resource
wait_for_requests
expect(page).to have_button 'Merge'
end
......@@ -140,7 +138,7 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
it 'allows MR to be merged' do
visit_merge_request(merge_request)
wait_for_vue_resource
wait_for_requests
expect(page).to have_button 'Merge'
end
......
......@@ -26,7 +26,7 @@ feature 'Pipelines for Merge Requests', feature: true, js: true do
page.within('.merge-request-tabs') do
click_link('Pipelines')
end
wait_for_ajax
wait_for_requests
expect(page).to have_selector('.pipeline-actions')
end
......
require 'spec_helper'
feature 'Squashing merge requests', js: true, feature: true do
include WaitForAjax
let(:user) { create(:user) }
let(:project) { create(:project) }
let(:source_branch) { 'csv' }
......@@ -67,7 +65,7 @@ feature 'Squashing merge requests', js: true, feature: true do
visit new_namespace_project_merge_request_path(project.namespace, project, merge_request: { target_branch: 'master', source_branch: source_branch })
check 'merge_request[squash]'
click_on 'Submit merge request'
wait_for_ajax
wait_for_requests
end
it 'shows the squash checkbox as checked' do
......@@ -96,7 +94,7 @@ feature 'Squashing merge requests', js: true, feature: true do
before do
visit new_namespace_project_merge_request_path(project.namespace, project, merge_request: { target_branch: 'master', source_branch: source_branch })
click_on 'Submit merge request'
wait_for_ajax
wait_for_requests
end
it 'shows the squash checkbox as unchecked' do
......
......@@ -107,7 +107,7 @@ feature 'Multiple merge requests updating from merge_requests#index', feature: t
def change_assignee(text)
find('#check_all_issues').click
find('.js-update-assignee').click
wait_for_ajax
wait_for_requests
page.within '.dropdown-menu-user' do
click_link text
......@@ -125,6 +125,6 @@ feature 'Multiple merge requests updating from merge_requests#index', feature: t
def click_update_merge_requests_button
find('.update_selected_issues').click
wait_for_ajax
wait_for_requests
end
end
......@@ -73,7 +73,7 @@ feature 'Merge requests > User posts diff notes', :js do
context 'with an unfolded line' do
before(:each) do
find('.js-unfold', match: :first).click
wait_for_ajax
wait_for_requests
end
# The first `.js-unfold` unfolds upwards, therefore the first
......@@ -122,7 +122,7 @@ feature 'Merge requests > User posts diff notes', :js do
context 'with an unfolded line' do
before(:each) do
find('.js-unfold', match: :first).click
wait_for_ajax
wait_for_requests
end
# The first `.js-unfold` unfolds upwards, therefore the first
......@@ -213,7 +213,7 @@ feature 'Merge requests > User posts diff notes', :js do
write_comment_on_line(line_holder, diff_side)
click_button 'Comment'
wait_for_ajax
wait_for_requests
assert_comment_persistence(line_holder, asset_form_reset: asset_form_reset)
end
......
......@@ -98,7 +98,7 @@ describe 'Merge requests > User posts notes', :js do
find('.btn-save').click
end
wait_for_ajax
wait_for_requests
find('.note').hover
find('.js-note-edit').click
......@@ -139,7 +139,7 @@ describe 'Merge requests > User posts notes', :js do
find('.js-note-attachment-delete').click
is_expected.not_to have_css('.note-attachment')
is_expected.not_to have_css('.current-note-edit-form')
wait_for_ajax
wait_for_requests
end
end
end
......
......@@ -21,7 +21,7 @@ feature 'Merge Requests > User uses slash commands', feature: true, js: true do
end
after do
wait_for_ajax
wait_for_requests
end
describe 'toggling the WIP prefix in the title from note' do
......@@ -160,7 +160,7 @@ feature 'Merge Requests > User uses slash commands', feature: true, js: true do
it 'changes target branch from a note' do
write_note("message start \n/target_branch merge-test\n message end.")
wait_for_ajax
wait_for_requests
expect(page).not_to have_content('/target_branch')
expect(page).to have_content('message start')
expect(page).to have_content('message end.')
......
......@@ -75,7 +75,7 @@ feature 'Merge Request versions', js: true, feature: true do
find(".js-comment-button").click
end
wait_for_ajax
wait_for_requests
expect(page).to have_content("Typo, please fix")
end
......@@ -126,7 +126,7 @@ feature 'Merge Request versions', js: true, feature: true do
outdated_diff_note = create(:diff_note_on_merge_request, project: project, noteable: merge_request, position: position)
visit current_url
wait_for_ajax
wait_for_requests
expect(page).to have_css(".diffs .notes[data-discussion-id='#{outdated_diff_note.discussion_id}']")
end
......@@ -144,7 +144,7 @@ feature 'Merge Request versions', js: true, feature: true do
find(".js-comment-button").click
end
wait_for_ajax
wait_for_requests
expect(page).to have_content("Typo, please fix")
end
......
......@@ -18,7 +18,7 @@ feature 'Widget Deployments Header', feature: true, js: true do
end
scenario 'displays that the environment is deployed' do
wait_for_ajax
wait_for_requests
expect(page).to have_content("Deployed to #{environment.name}")
expect(find('.js-deploy-time')['data-title']).to eq(deployment.created_at.to_time.in_time_zone.to_s(:medium))
......@@ -34,7 +34,7 @@ feature 'Widget Deployments Header', feature: true, js: true do
end
background do
wait_for_ajax
wait_for_requests
end
scenario 'does show stop button' do
......
......@@ -27,7 +27,7 @@ describe 'Merge request', :feature, :js do
it 'shows widget status after creating new merge request' do
click_button 'Submit merge request'
wait_for_ajax
wait_for_requests
expect(page).to have_selector('.accept-merge-request')
expect(find('.accept-merge-request')['disabled']).not_to be(true)
......@@ -48,7 +48,7 @@ describe 'Merge request', :feature, :js do
end
it 'shows environments link' do
wait_for_ajax
wait_for_requests
page.within('.mr-widget-heading') do
expect(page).to have_content("Deployed to #{environment.name}")
......@@ -58,7 +58,7 @@ describe 'Merge request', :feature, :js do
it 'shows green accept merge request button' do
# Wait for the `ci_status` and `merge_check` requests
wait_for_ajax
wait_for_requests
expect(page).to have_selector('.accept-merge-request')
expect(find('.accept-merge-request')['disabled']).not_to be(true)
end
......@@ -76,7 +76,7 @@ describe 'Merge request', :feature, :js do
it 'has danger button while waiting for external CI status' do
# Wait for the `ci_status` and `merge_check` requests
wait_for_ajax
wait_for_requests
expect(page).to have_selector('.accept-merge-request.btn-danger')
end
end
......@@ -98,7 +98,7 @@ describe 'Merge request', :feature, :js do
it 'has danger button when not succeeded' do
# Wait for the `ci_status` and `merge_check` requests
wait_for_ajax
wait_for_requests
expect(page).to have_selector('.accept-merge-request.btn-danger')
end
end
......@@ -145,7 +145,7 @@ describe 'Merge request', :feature, :js do
it 'has info button when MWBS button' do
# Wait for the `ci_status` and `merge_check` requests
wait_for_ajax
wait_for_requests
expect(page).to have_selector('.accept-merge-request.btn-info')
end
end
......@@ -163,7 +163,7 @@ describe 'Merge request', :feature, :js do
it 'shows information about the merge error' do
# Wait for the `ci_status` and `merge_check` requests
wait_for_ajax
wait_for_requests
page.within('.mr-widget-body') do
expect(page).to have_content('Something went wrong')
......@@ -184,7 +184,7 @@ describe 'Merge request', :feature, :js do
it 'shows information about the merge error' do
# Wait for the `ci_status` and `merge_check` requests
wait_for_ajax
wait_for_requests
page.within('.mr-widget-body') do
expect(page).to have_content('Something went wrong')
......@@ -207,7 +207,7 @@ describe 'Merge request', :feature, :js do
it 'shows information about the merge error' do
# Wait for the `ci_status` and `merge_check` requests
wait_for_ajax
wait_for_requests
page.within('.mr-widget-body') do
expect(page).to have_content('Fast-forward merge is not possible')
......
......@@ -78,7 +78,7 @@ describe 'Milestone draggable', feature: true, js: true do
scroll_into_view('.milestone-content')
drag_to(selector: '.issues-sortable-list', list_to_index: 1)
wait_for_ajax
wait_for_requests
end
def create_and_drag_merge_request(params = {})
......@@ -87,12 +87,12 @@ describe 'Milestone draggable', feature: true, js: true do
visit namespace_project_milestone_path(project.namespace, project, milestone)
page.find("a[href='#tab-merge-requests']").click
wait_for_ajax
wait_for_requests
scroll_into_view('.milestone-content')
drag_to(selector: '.merge_requests-sortable-list', list_to_index: 1)
wait_for_ajax
wait_for_requests
end
def scroll_into_view(selector)
......
......@@ -13,7 +13,7 @@ feature 'Artifact file', :js, feature: true do
before do
visit_file('other_artifacts_0.1.2/doc_sample.txt')
wait_for_ajax
wait_for_requests
end
it 'displays an error' do
......@@ -37,7 +37,7 @@ feature 'Artifact file', :js, feature: true do
before do
visit_file('rails_sample.jpg')
wait_for_ajax
wait_for_requests
end
it 'displays the blob' do
......
......@@ -6,12 +6,14 @@ feature 'File blob', :js, feature: true do
def visit_blob(path, fragment = nil)
visit namespace_project_blob_path(project.namespace, project, File.join('master', path), anchor: fragment)
wait_for_ajax
wait_for_requests
end
context 'Ruby file' do
before do
visit_blob('files/ruby/popen.rb')
wait_for_requests
end
it 'displays the blob' do
......@@ -35,6 +37,8 @@ feature 'File blob', :js, feature: true do
context 'visiting directly' do
before do
visit_blob('files/markdown/ruby-style-guide.md')
wait_for_requests
end
it 'displays the blob using the rich viewer' do
......@@ -61,7 +65,7 @@ feature 'File blob', :js, feature: true do
before do
find('.js-blob-viewer-switch-btn[data-viewer=simple]').click
wait_for_ajax
wait_for_requests
end
it 'displays the blob using the simple viewer' do
......@@ -82,7 +86,7 @@ feature 'File blob', :js, feature: true do
before do
find('.js-blob-viewer-switch-btn[data-viewer=rich]').click
wait_for_ajax
wait_for_requests
end
it 'displays the blob using the rich viewer' do
......@@ -102,6 +106,8 @@ feature 'File blob', :js, feature: true do
context 'visiting with a line number anchor' do
before do
visit_blob('files/markdown/ruby-style-guide.md', 'L1')
wait_for_requests
end
it 'displays the blob using the simple viewer' do
......@@ -144,6 +150,8 @@ feature 'File blob', :js, feature: true do
project.update_attribute(:lfs_enabled, true)
visit_blob('files/lfs/file.md')
wait_for_requests
end
it 'displays an error' do
......@@ -170,7 +178,7 @@ feature 'File blob', :js, feature: true do
before do
find('.js-blob-viewer-switcher .js-blob-viewer-switch-btn[data-viewer=simple]').click
wait_for_ajax
wait_for_requests
end
it 'displays an error' do
......@@ -192,6 +200,8 @@ feature 'File blob', :js, feature: true do
context 'when LFS is disabled on the project' do
before do
visit_blob('files/lfs/file.md')
wait_for_requests
end
it 'displays the blob' do
......@@ -227,6 +237,8 @@ feature 'File blob', :js, feature: true do
).execute
visit_blob('files/test.pdf')
wait_for_requests
end
it 'displays the blob' do
......@@ -253,6 +265,8 @@ feature 'File blob', :js, feature: true do
project.update_attribute(:lfs_enabled, true)
visit_blob('files/lfs/lfs_object.iso')
wait_for_requests
end
it 'displays the blob' do
......@@ -275,6 +289,8 @@ feature 'File blob', :js, feature: true do
context 'when LFS is disabled on the project' do
before do
visit_blob('files/lfs/lfs_object.iso')
wait_for_requests
end
it 'displays the blob' do
......@@ -298,6 +314,8 @@ feature 'File blob', :js, feature: true do
context 'ZIP file' do
before do
visit_blob('Gemfile.zip')
wait_for_requests
end
it 'displays the blob' do
......@@ -332,6 +350,8 @@ feature 'File blob', :js, feature: true do
).execute
visit_blob('files/empty.md')
wait_for_requests
end
it 'displays an error' do
......
......@@ -18,7 +18,7 @@ feature 'Editing file blob', feature: true, js: true do
end
def edit_and_commit
wait_for_ajax
wait_for_requests
find('.js-edit-blob').click
execute_script('ace.edit("editor").setValue("class NextFeature\nend\n")')
click_button 'Commit changes'
......
......@@ -15,7 +15,7 @@ feature 'New blob creation', feature: true, js: true do
end
def edit_file
wait_for_ajax
wait_for_requests
fill_in 'file_name', with: 'feature.rb'
execute_script("ace.edit('editor').setValue('#{content}')")
end
......
......@@ -72,11 +72,11 @@ describe 'Cherry-pick Commits' do
click_button 'master'
end
wait_for_ajax
wait_for_requests
page.within('#modal-cherry-pick-commit .dropdown-menu') do
find('.dropdown-input input').set('feature')
wait_for_ajax
wait_for_requests
click_link "feature"
end
......
......@@ -32,7 +32,7 @@ feature 'Mini Pipeline Graph in Commit View', :js, :feature do
it 'should show the builds list when stage is clicked' do
first('.mini-pipeline-graph-dropdown-toggle').click
wait_for_ajax
wait_for_requests
page.within '.js-builds-dropdown-list' do
expect(page).to have_selector('.ci-status-icon-running')
......
......@@ -53,7 +53,7 @@ describe "Compare", js: true do
dropdown = find(".js-compare-#{dropdown_type}-dropdown")
dropdown.find(".compare-dropdown-toggle").click
dropdown.fill_in("Filter by Git revision", with: selection)
wait_for_ajax
wait_for_requests
dropdown.find_all("a[data-ref=\"#{selection}\"]", visible: true).last.click
end
end
......@@ -21,7 +21,7 @@ feature 'Project edit', feature: true, js: true do
find('#project_request_access_enabled').set(true)
click_button 'Save changes'
wait_for_ajax
wait_for_requests
expect(find('#project_request_access_enabled')).to be_checked
end
......
......@@ -21,17 +21,17 @@ describe 'Edit Project Settings', feature: true do
select 'Disabled', from: "project_project_feature_attributes_#{tool_name}_access_level"
click_button 'Save changes'
wait_for_ajax
wait_for_requests
expect(page).not_to have_selector(".shortcuts-#{shortcut_name}")
select 'Everyone with access', from: "project_project_feature_attributes_#{tool_name}_access_level"
click_button 'Save changes'
wait_for_ajax
wait_for_requests
expect(page).to have_selector(".shortcuts-#{shortcut_name}")
select 'Only team members', from: "project_project_feature_attributes_#{tool_name}_access_level"
click_button 'Save changes'
wait_for_ajax
wait_for_requests
expect(page).to have_selector(".shortcuts-#{shortcut_name}")
sleep 0.1
......@@ -169,7 +169,7 @@ describe 'Edit Project Settings', feature: true do
select "Disabled", from: "project_project_feature_attributes_wiki_access_level"
click_button "Save changes"
wait_for_ajax
wait_for_requests
visit namespace_project_path(project.namespace, project)
......@@ -182,7 +182,7 @@ describe 'Edit Project Settings', feature: true do
select "Disabled", from: "project_project_feature_attributes_wiki_access_level"
click_button "Save changes"
wait_for_ajax
wait_for_requests
visit activity_namespace_project_path(project.namespace, project)
......@@ -223,7 +223,7 @@ describe 'Edit Project Settings', feature: true do
def save_changes_and_check_activity_tab
click_button "Save changes"
wait_for_ajax
wait_for_requests
visit activity_namespace_project_path(project.namespace, project)
......
......@@ -24,7 +24,7 @@ feature 'user browses project', feature: true, js: true do
click_link 'files'
click_link 'lfs'
click_link 'lfs_object.iso'
wait_for_ajax
wait_for_requests
expect(page).not_to have_content 'Download (1.5 MB)'
expect(page).to have_content 'version https://git-lfs.github.com/spec/v1'
......
......@@ -19,14 +19,14 @@ feature 'User wants to add a Dockerfile file', feature: true do
scenario 'user can pick a Dockerfile file from the dropdown', js: true do
find('.js-dockerfile-selector').click
wait_for_ajax
wait_for_requests
within '.dockerfile-selector' do
find('.dropdown-input-field').set('HTTPd')
find('.dropdown-content li', text: 'HTTPd').click
end
wait_for_ajax
wait_for_requests
expect(page).to have_css('.dockerfile-selector .dropdown-toggle-text', text: 'HTTPd')
expect(page).to have_content('COPY ./ /usr/local/apache2/htdocs/')
......
......@@ -10,7 +10,7 @@ feature 'Find file keyboard shortcuts', feature: true, js: true do
visit namespace_project_find_file_path(project.namespace, project, project.repository.root_ref)
wait_for_ajax
wait_for_requests
end
it 'opens file when pressing enter key' do
......
......@@ -15,12 +15,12 @@ feature 'User wants to add a .gitignore file', feature: true do
scenario 'user can pick a .gitignore file from the dropdown', js: true do
find('.js-gitignore-selector').click
wait_for_ajax
wait_for_requests
within '.gitignore-selector' do
find('.dropdown-input-field').set('rails')
find('.dropdown-content li', text: 'Rails').click
end
wait_for_ajax
wait_for_requests
expect(page).to have_css('.gitignore-selector .dropdown-toggle-text', text: 'Rails')
expect(page).to have_content('/.bundle')
......
......@@ -15,12 +15,12 @@ feature 'User wants to add a .gitlab-ci.yml file', feature: true do
scenario 'user can pick a template from the dropdown', js: true do
find('.js-gitlab-ci-yml-selector').click
wait_for_ajax
wait_for_requests
within '.gitlab-ci-yml-selector' do
find('.dropdown-input-field').set('Jekyll')
find('.dropdown-content li', text: 'Jekyll').click
end
wait_for_ajax
wait_for_requests
expect(page).to have_css('.gitlab-ci-yml-selector .dropdown-toggle-text', text: 'Jekyll')
expect(page).to have_content('This file is a template, and might need editing before it works on your project')
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment