0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2025-03-18 02:22:46 -05:00

fix: improve abort request search (#3436)

* fix: improve abort request search

* chore: add changeset

* chore: ui flacky tests
This commit is contained in:
Juan Picado 2022-10-15 14:03:51 +02:00 committed by GitHub
parent cbae6e52aa
commit b4cc80017e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 24 additions and 593 deletions

View file

@ -0,0 +1,7 @@
---
'@verdaccio/api': patch
'@verdaccio/ui-theme': patch
'@verdaccio/web': patch
---
fix: improve abort request search

View file

@ -8,8 +8,11 @@ Cypress.Commands.add('getByTestId', (selector, ...args) => {
// -- This is a parent command --
Cypress.Commands.add('login', (user, password) => {
cy.getByTestId('header--button-login').click();
cy.wait(300);
cy.get('#login--dialog-username').type(user);
cy.wait(200);
cy.get('#login--dialog-password').type(password);
cy.wait(500);
cy.get('#login--dialog-button-submit').click();
});
//

View file

@ -41,7 +41,8 @@ export default function (route, auth: Auth, storage: Storage): void {
let data;
const abort = new AbortController();
req.on('aborted', () => {
req.socket.on('close', function () {
debug('search web aborted');
abort.abort();
});

View file

@ -1,8 +1,6 @@
const config = require('../../../../jest/config');
module.exports = Object.assign({}, config, {
name: 'verdaccio-ui-jest',
verbose: true,
automock: false,
collectCoverage: false,
testEnvironment: 'jest-environment-jsdom-global',
@ -10,7 +8,9 @@ module.exports = Object.assign({}, config, {
'^.+\\.(js|ts|tsx)$': 'babel-jest',
},
moduleFileExtensions: ['js', 'ts', 'tsx'],
testURL: 'http://localhost:9000/',
testEnvironmentOptions: {
url: 'http://localhost:9000/',
},
rootDir: '..',
setupFilesAfterEnv: ['@testing-library/jest-dom/extend-expect', '<rootDir>/jest/setup-env.ts'],
setupFiles: ['<rootDir>/jest/setup.ts'],

View file

@ -76,6 +76,7 @@ const Search: React.FC<RouteComponentProps> = ({ history }) => {
const handleFetchPackages = useCallback(
({ value }: { value: string }) => {
if (value?.trim() !== '') {
dispatch.search.clearRequestQueue();
dispatch.search.getSuggestions({ value });
}
},

View file

@ -51,6 +51,7 @@ class API {
fetch(url, {
method,
credentials: 'same-origin',
signal: options.signal,
...options,
})
.then(handleResponseType)

View file

@ -24,7 +24,9 @@ export const search = createModel<RootModel>()({
reducers: {
clearRequestQueue(state) {
const controllers = state.controller;
controllers.forEach((request) => request.abort());
controllers.forEach((request) => {
request?.abort();
});
return {
...state,
controller: [],

View file

@ -44,7 +44,7 @@ function addSearchWebApi(storage: Storage, auth: Auth): Router {
try {
let data;
const abort = new AbortController();
req.on('aborted', () => {
req.socket.on('close', function () {
debug('search web aborted');
abort.abort();
});

590
pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff