diff options
author | Grégoire Aubert <gregoire.aubert@sonarsource.com> | 2017-10-20 08:43:33 +0200 |
---|---|---|
committer | Grégoire Aubert <gregoire.aubert@sonarsource.com> | 2017-10-23 08:01:13 -0700 |
commit | 68d930b10e4dbf169f52d8fe488ad06edf94e6d7 (patch) | |
tree | a1b07201d2798f0ce96a8002b37d617566f997f1 /server | |
parent | 33a0c7138e444e5eba8272a48206c6bb05297793 (diff) | |
download | sonarqube-68d930b10e4dbf169f52d8fe488ad06edf94e6d7.tar.gz sonarqube-68d930b10e4dbf169f52d8fe488ad06edf94e6d7.zip |
Check the edition status only while an operation is in progress
Diffstat (limited to 'server')
4 files changed, 13 insertions, 15 deletions
diff --git a/server/sonar-web/src/main/js/api/marketplace.ts b/server/sonar-web/src/main/js/api/marketplace.ts index d067f7b3e22..8bb8a462a42 100644 --- a/server/sonar-web/src/main/js/api/marketplace.ts +++ b/server/sonar-web/src/main/js/api/marketplace.ts @@ -42,7 +42,6 @@ export interface EditionStatus { | 'AUTOMATIC_IN_PROGRESS' | 'MANUAL_IN_PROGRESS' | 'AUTOMATIC_READY' - | 'AUTOMATIC_FAILURE' | 'UNINSTALL_IN_PROGRESS'; } diff --git a/server/sonar-web/src/main/js/apps/marketplace/App.tsx b/server/sonar-web/src/main/js/apps/marketplace/App.tsx index 0c008e09b7c..969c1c7135c 100644 --- a/server/sonar-web/src/main/js/apps/marketplace/App.tsx +++ b/server/sonar-web/src/main/js/apps/marketplace/App.tsx @@ -63,6 +63,7 @@ interface State { export default class App extends React.PureComponent<Props, State> { mounted: boolean; + timer?: NodeJS.Timer; static contextTypes = { router: PropTypes.object.isRequired @@ -159,7 +160,6 @@ export default class App extends React.PureComponent<Props, State> { editionStatus => { if (this.mounted) { this.updateEditionStatus(editionStatus); - setTimeout(this.fetchEditionStatus, 5000); } }, () => {} @@ -184,8 +184,19 @@ export default class App extends React.PureComponent<Props, State> { ); }; - updateEditionStatus = (editionStatus: EditionStatus) => + updateEditionStatus = (editionStatus: EditionStatus) => { this.setState({ editionStatus: editionStatus }); + if (this.timer) { + global.clearTimeout(this.timer); + this.timer = undefined; + } + if (editionStatus.installationStatus === 'AUTOMATIC_IN_PROGRESS') { + this.timer = global.setTimeout(() => { + this.fetchEditionStatus(); + this.timer = undefined; + }, 2000); + } + }; updateQuery = (newQuery: Partial<Query>) => { const query = serializeQuery({ ...parseQuery(this.props.location.query), ...newQuery }); diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/EditionsStatusNotif-test.tsx b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/EditionsStatusNotif-test.tsx index 0a3ca4c9acd..d86c8ac266c 100644 --- a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/EditionsStatusNotif-test.tsx +++ b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/EditionsStatusNotif-test.tsx @@ -42,16 +42,6 @@ it('should display an in progress notif', () => { expect(wrapper).toMatchSnapshot(); }); -it('should display an error notification', () => { - const wrapper = shallow( - <EditionsStatusNotif - editionStatus={{ installationStatus: 'AUTOMATIC_FAILURE' }} - updateEditionStatus={jest.fn()} - /> - ); - expect(wrapper).toMatchSnapshot(); -}); - it('should display a ready notification', () => { const wrapper = shallow( <EditionsStatusNotif diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/EditionsStatusNotif-test.tsx.snap b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/EditionsStatusNotif-test.tsx.snap index 70b4ce43ef0..e52e16c6fa7 100644 --- a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/EditionsStatusNotif-test.tsx.snap +++ b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/EditionsStatusNotif-test.tsx.snap @@ -18,8 +18,6 @@ exports[`should display a ready notification 1`] = ` </div> `; -exports[`should display an error notification 1`] = `<div />`; - exports[`should display an in progress notif 1`] = ` <div> <div |