Browse Source

SONAR-12292 Do not debounce the fetchBranchStatus root action

tags/8.0
Wouter Admiraal 4 years ago
parent
commit
87fe29be37

+ 13
- 6
server/sonar-web/src/main/js/apps/code/components/App.tsx View File

@@ -19,6 +19,7 @@
*/
import * as classNames from 'classnames';
import { Location } from 'history';
import { debounce } from 'lodash';
import * as React from 'react';
import Helmet from 'react-helmet';
import { connect } from 'react-redux';
@@ -71,12 +72,18 @@ interface State {

export class App extends React.PureComponent<Props, State> {
mounted = false;
state: State = {
breadcrumbs: [],
loading: true,
page: 0,
total: 0
};
state: State;

constructor(props: Props) {
super(props);
this.state = {
breadcrumbs: [],
loading: true,
page: 0,
total: 0
};
this.refreshBranchStatus = debounce(this.refreshBranchStatus, 1000);
}

componentDidMount() {
this.mounted = true;

+ 12
- 6
server/sonar-web/src/main/js/apps/component-measures/components/App.tsx View File

@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as key from 'keymaster';
import { keyBy } from 'lodash';
import { debounce, keyBy } from 'lodash';
import * as React from 'react';
import Helmet from 'react-helmet';
import { connect } from 'react-redux';
@@ -82,11 +82,17 @@ interface State {

export class App extends React.PureComponent<Props, State> {
mounted = false;
state: State = {
loading: true,
measures: [],
metrics: {}
};
state: State;

constructor(props: Props) {
super(props);
this.state = {
loading: true,
measures: [],
metrics: {}
};
this.refreshBranchStatus = debounce(this.refreshBranchStatus, 1000);
}

componentDidMount() {
this.mounted = true;

+ 2
- 1
server/sonar-web/src/main/js/apps/issues/components/App.tsx View File

@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as key from 'keymaster';
import { keyBy, omit, without } from 'lodash';
import { debounce, keyBy, omit, without } from 'lodash';
import * as React from 'react';
import Helmet from 'react-helmet';
import { FormattedMessage } from 'react-intl';
@@ -175,6 +175,7 @@ export class App extends React.PureComponent<Props, State> {
referencedUsers: {},
selected: getOpen(props.location.query)
};
this.refreshBranchStatus = debounce(this.refreshBranchStatus, 1000);
}

componentDidMount() {

+ 6
- 0
server/sonar-web/src/main/js/components/workspace/WorkspaceComponentViewer.tsx View File

@@ -19,6 +19,7 @@
*/
import * as React from 'react';
import { connect } from 'react-redux';
import { debounce } from 'lodash';
import { scrollToElement } from 'sonar-ui-common/helpers/scrolling';
import { getParents } from '../../api/components';
import { isPullRequest, isShortLivingBranch } from '../../helpers/branches';
@@ -39,6 +40,11 @@ export interface Props extends T.Omit<WorkspaceHeaderProps, 'children' | 'onClos
export class WorkspaceComponentViewer extends React.PureComponent<Props> {
container?: HTMLElement | null;

constructor(props: Props) {
super(props);
this.refreshBranchStatus = debounce(this.refreshBranchStatus, 1000);
}

componentDidMount() {
if (document.documentElement) {
document.documentElement.classList.add('with-workspace');

+ 0
- 4
server/sonar-web/src/main/js/store/__tests__/rootActions-test.tsx View File

@@ -21,8 +21,6 @@ import { mockLongLivingBranch, mockQualityGateStatusCondition } from '../../help
import { registerBranchStatusAction } from '../branches';
import { fetchBranchStatus, registerBranchStatus } from '../rootActions';

jest.useFakeTimers();

jest.mock('../branches', () => ({
...require.requireActual('../branches'),
registerBranchStatusAction: jest.fn()
@@ -65,8 +63,6 @@ describe('branch store actions', () => {
const dispatch = jest.fn();

fetchBranchStatus(branchLike, component)(dispatch);

jest.runAllTimers();
await new Promise(setImmediate);

expect(registerBranchStatusAction).toBeCalledWith(

+ 2
- 3
server/sonar-web/src/main/js/store/rootActions.ts View File

@@ -17,7 +17,6 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import { debounce } from 'lodash';
import { InjectedRouter } from 'react-router';
import { Dispatch } from 'redux';
import * as auth from '../api/auth';
@@ -67,7 +66,7 @@ export const fetchOrganization = (key: string) => (dispatch: Dispatch) => {
};

export function fetchBranchStatus(branchLike: T.BranchLike, projectKey: string) {
return debounce((dispatch: Dispatch<any>) => {
return (dispatch: Dispatch<any>) => {
getQualityGateProjectStatus({ projectKey, ...getBranchLikeQuery(branchLike) }).then(
projectStatus => {
const { ignoredConditions, status } = projectStatus;
@@ -80,7 +79,7 @@ export function fetchBranchStatus(branchLike: T.BranchLike, projectKey: string)
dispatch(addGlobalErrorMessage('Fetching Quality Gate status failed'));
}
);
}, 1000);
};
}

export function doLogin(login: string, password: string) {

Loading…
Cancel
Save