aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main/js
diff options
context:
space:
mode:
authorWouter Admiraal <wouter.admiraal@sonarsource.com>2019-07-17 09:40:55 +0200
committerSonarTech <sonartech@sonarsource.com>2019-08-02 20:21:14 +0200
commit87fe29be37cc59cc3cfc4d4a9c9f2939f488ab71 (patch)
treebdf9feac09f563c023caafa244ec90b4070ab665 /server/sonar-web/src/main/js
parent50f8e916bdfdaa372fc4f0c3bd3feb26077b3588 (diff)
downloadsonarqube-87fe29be37cc59cc3cfc4d4a9c9f2939f488ab71.tar.gz
sonarqube-87fe29be37cc59cc3cfc4d4a9c9f2939f488ab71.zip
SONAR-12292 Do not debounce the fetchBranchStatus root action
Diffstat (limited to 'server/sonar-web/src/main/js')
-rw-r--r--server/sonar-web/src/main/js/apps/code/components/App.tsx19
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/App.tsx18
-rw-r--r--server/sonar-web/src/main/js/apps/issues/components/App.tsx3
-rw-r--r--server/sonar-web/src/main/js/components/workspace/WorkspaceComponentViewer.tsx6
-rw-r--r--server/sonar-web/src/main/js/store/__tests__/rootActions-test.tsx4
-rw-r--r--server/sonar-web/src/main/js/store/rootActions.ts5
6 files changed, 35 insertions, 20 deletions
diff --git a/server/sonar-web/src/main/js/apps/code/components/App.tsx b/server/sonar-web/src/main/js/apps/code/components/App.tsx
index 226abca45d4..ce34389013d 100644
--- a/server/sonar-web/src/main/js/apps/code/components/App.tsx
+++ b/server/sonar-web/src/main/js/apps/code/components/App.tsx
@@ -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;
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/App.tsx b/server/sonar-web/src/main/js/apps/component-measures/components/App.tsx
index c4a1ca98825..71e0c6f3c84 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/App.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/App.tsx
@@ -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;
diff --git a/server/sonar-web/src/main/js/apps/issues/components/App.tsx b/server/sonar-web/src/main/js/apps/issues/components/App.tsx
index 8885d0ec8b8..aeab5a9b2b8 100644
--- a/server/sonar-web/src/main/js/apps/issues/components/App.tsx
+++ b/server/sonar-web/src/main/js/apps/issues/components/App.tsx
@@ -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() {
diff --git a/server/sonar-web/src/main/js/components/workspace/WorkspaceComponentViewer.tsx b/server/sonar-web/src/main/js/components/workspace/WorkspaceComponentViewer.tsx
index 23f0ab0d42d..e33e921db80 100644
--- a/server/sonar-web/src/main/js/components/workspace/WorkspaceComponentViewer.tsx
+++ b/server/sonar-web/src/main/js/components/workspace/WorkspaceComponentViewer.tsx
@@ -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');
diff --git a/server/sonar-web/src/main/js/store/__tests__/rootActions-test.tsx b/server/sonar-web/src/main/js/store/__tests__/rootActions-test.tsx
index 4828f7559f0..d4f9c887b64 100644
--- a/server/sonar-web/src/main/js/store/__tests__/rootActions-test.tsx
+++ b/server/sonar-web/src/main/js/store/__tests__/rootActions-test.tsx
@@ -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(
diff --git a/server/sonar-web/src/main/js/store/rootActions.ts b/server/sonar-web/src/main/js/store/rootActions.ts
index f7ffb9022cb..f77391118cb 100644
--- a/server/sonar-web/src/main/js/store/rootActions.ts
+++ b/server/sonar-web/src/main/js/store/rootActions.ts
@@ -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) {