Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Léo-Paul Géneau
gitlab-ce
Commits
504ab1e3
Commit
504ab1e3
authored
Sep 25, 2019
by
GitLab Bot
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add latest changes from gitlab-org/gitlab@master
parent
150effab
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
2 additions
and
81 deletions
+2
-81
Gemfile.lock
Gemfile.lock
+2
-2
app/assets/javascripts/lib/utils/axios_utils.js
app/assets/javascripts/lib/utils/axios_utils.js
+0
-15
app/assets/javascripts/lib/utils/suppress_ajax_errors_during_navigation.js
...ripts/lib/utils/suppress_ajax_errors_during_navigation.js
+0
-16
lib/gitlab/gon_helper.rb
lib/gitlab/gon_helper.rb
+0
-4
spec/frontend/lib/utils/suppress_ajax_errors_during_navigation_spec.js
.../lib/utils/suppress_ajax_errors_during_navigation_spec.js
+0
-37
spec/javascripts/frequent_items/components/app_spec.js
spec/javascripts/frequent_items/components/app_spec.js
+0
-7
No files found.
Gemfile.lock
View file @
504ab1e3
...
...
@@ -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)
...
...
app/assets/javascripts/lib/utils/axios_utils.js
View file @
504ab1e3
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
;
/**
...
...
app/assets/javascripts/lib/utils/suppress_ajax_errors_during_navigation.js
deleted
100644 → 0
View file @
150effab
/**
* 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
);
};
lib/gitlab/gon_helper.rb
View file @
504ab1e3
...
...
@@ -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.
...
...
spec/frontend/lib/utils/suppress_ajax_errors_during_navigation_spec.js
deleted
100644 → 0
View file @
150effab
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
();
});
});
});
spec/javascripts/frequent_items/components/app_spec.js
View file @
504ab1e3
...
...
@@ -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
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment