Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-09-25 03:06:12 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-09-25 03:06:12 +0300
commit504ab1e32cbd3a529fe61f6c9a30823febce796c (patch)
tree3f5b7548465cf85bc41b13d36fbd008a271f23e7
parent150effab274651b3a8d2041e64ced734d1f3a349 (diff)
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--Gemfile.lock4
-rw-r--r--app/assets/javascripts/lib/utils/axios_utils.js15
-rw-r--r--app/assets/javascripts/lib/utils/suppress_ajax_errors_during_navigation.js16
-rw-r--r--lib/gitlab/gon_helper.rb4
-rw-r--r--spec/frontend/lib/utils/suppress_ajax_errors_during_navigation_spec.js37
-rw-r--r--spec/javascripts/frequent_items/components/app_spec.js7
6 files changed, 2 insertions, 81 deletions
diff --git a/Gemfile.lock b/Gemfile.lock
index 3142ba094cd..404c2d550bd 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -108,7 +108,7 @@ GEM
binding_ninja (0.2.3)
binding_of_caller (0.8.0)
debug_inspector (>= 0.0.1)
- bootsnap (1.4.4)
+ bootsnap (1.4.5)
msgpack (~> 1.0)
bootstrap_form (4.2.0)
actionpack (>= 5.0)
@@ -586,7 +586,7 @@ GEM
mini_mime (1.0.1)
mini_portile2 (2.4.0)
minitest (5.11.3)
- msgpack (1.3.0)
+ msgpack (1.3.1)
multi_json (1.13.1)
multi_xml (0.6.0)
multipart-post (2.0.0)
diff --git a/app/assets/javascripts/lib/utils/axios_utils.js b/app/assets/javascripts/lib/utils/axios_utils.js
index a04fe609015..c17f62c671c 100644
--- a/app/assets/javascripts/lib/utils/axios_utils.js
+++ b/app/assets/javascripts/lib/utils/axios_utils.js
@@ -1,6 +1,5 @@
import axios from 'axios';
import csrf from './csrf';
-import suppressAjaxErrorsDuringNavigation from './suppress_ajax_errors_during_navigation';
axios.defaults.headers.common[csrf.headerKey] = csrf.token;
// Used by Rails to check if it is a valid XHR request
@@ -26,20 +25,6 @@ axios.interceptors.response.use(
},
);
-let isUserNavigating = false;
-window.addEventListener('beforeunload', () => {
- isUserNavigating = true;
-});
-
-// Ignore AJAX errors caused by requests
-// being cancelled due to browser navigation
-const { gon } = window;
-const featureFlagEnabled = gon && gon.features && gon.features.suppressAjaxNavigationErrors;
-axios.interceptors.response.use(
- response => response,
- err => suppressAjaxErrorsDuringNavigation(err, isUserNavigating, featureFlagEnabled),
-);
-
export default axios;
/**
diff --git a/app/assets/javascripts/lib/utils/suppress_ajax_errors_during_navigation.js b/app/assets/javascripts/lib/utils/suppress_ajax_errors_during_navigation.js
deleted file mode 100644
index 4c61da9b862..00000000000
--- a/app/assets/javascripts/lib/utils/suppress_ajax_errors_during_navigation.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/**
- * An Axios error interceptor that suppresses AJAX errors caused
- * by the request being cancelled when the user navigates to a new page
- */
-export default (err, isUserNavigating, featureFlagEnabled) => {
- if (featureFlagEnabled && isUserNavigating && err.code === 'ECONNABORTED') {
- // If the user is navigating away from the current page,
- // prevent .then() and .catch() handlers from being
- // called by returning a Promise that never resolves
- return new Promise(() => {});
- }
-
- // The error is not related to browser navigation,
- // so propagate the error
- return Promise.reject(err);
-};
diff --git a/lib/gitlab/gon_helper.rb b/lib/gitlab/gon_helper.rb
index 2616a19fdaa..92917028851 100644
--- a/lib/gitlab/gon_helper.rb
+++ b/lib/gitlab/gon_helper.rb
@@ -38,10 +38,6 @@ module Gitlab
gon.current_user_fullname = current_user.name
gon.current_user_avatar_url = current_user.avatar_url
end
-
- # Initialize gon.features with any flags that should be
- # made globally available to the frontend
- push_frontend_feature_flag(:suppress_ajax_navigation_errors, default_enabled: true)
end
# Exposes the state of a feature flag to the frontend code.
diff --git a/spec/frontend/lib/utils/suppress_ajax_errors_during_navigation_spec.js b/spec/frontend/lib/utils/suppress_ajax_errors_during_navigation_spec.js
deleted file mode 100644
index 89e8459d594..00000000000
--- a/spec/frontend/lib/utils/suppress_ajax_errors_during_navigation_spec.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import suppressAjaxErrorsDuringNavigation from '~/lib/utils/suppress_ajax_errors_during_navigation';
-import waitForPromises from 'helpers/wait_for_promises';
-
-describe('suppressAjaxErrorsDuringNavigation', () => {
- const OTHER_ERR_CODE = 'foo';
- const NAV_ERR_CODE = 'ECONNABORTED';
-
- it.each`
- isFeatureFlagEnabled | isUserNavigating | code
- ${false} | ${false} | ${OTHER_ERR_CODE}
- ${false} | ${false} | ${NAV_ERR_CODE}
- ${false} | ${true} | ${OTHER_ERR_CODE}
- ${false} | ${true} | ${NAV_ERR_CODE}
- ${true} | ${false} | ${OTHER_ERR_CODE}
- ${true} | ${false} | ${NAV_ERR_CODE}
- ${true} | ${true} | ${OTHER_ERR_CODE}
- `('should return a rejected Promise', ({ isFeatureFlagEnabled, isUserNavigating, code }) => {
- const err = { code };
- const actual = suppressAjaxErrorsDuringNavigation(err, isUserNavigating, isFeatureFlagEnabled);
-
- return expect(actual).rejects.toBe(err);
- });
-
- it('should return a Promise that never resolves', () => {
- const err = { code: NAV_ERR_CODE };
- const actual = suppressAjaxErrorsDuringNavigation(err, true, true);
-
- const thenCallback = jest.fn();
- const catchCallback = jest.fn();
- actual.then(thenCallback).catch(catchCallback);
-
- return waitForPromises().then(() => {
- expect(thenCallback).not.toHaveBeenCalled();
- expect(catchCallback).not.toHaveBeenCalled();
- });
- });
-});
diff --git a/spec/javascripts/frequent_items/components/app_spec.js b/spec/javascripts/frequent_items/components/app_spec.js
index 36dd8604d08..6814f656f5d 100644
--- a/spec/javascripts/frequent_items/components/app_spec.js
+++ b/spec/javascripts/frequent_items/components/app_spec.js
@@ -236,15 +236,8 @@ describe('Frequent Items App Component', () => {
.then(() => {
expect(vm.$el.querySelector('.loading-animation')).toBeDefined();
})
-
- // This test waits for multiple ticks in order to allow the responses to
- // propagate through each interceptor installed on the Axios instance.
- // This shouldn't be necessary; this test should be refactored to avoid this.
- // https://gitlab.com/gitlab-org/gitlab/issues/32479
- .then(vm.$nextTick)
.then(vm.$nextTick)
.then(vm.$nextTick)
-
.then(() => {
expect(vm.$el.querySelectorAll('.frequent-items-list-container li').length).toBe(
mockSearchedProjects.length,