]> source.dussan.org Git - sonarqube.git/commitdiff
Fix new try/catch typing
authorWouter Admiraal <wouter.admiraal@sonarsource.com>
Fri, 4 Feb 2022 09:53:14 +0000 (10:53 +0100)
committersonartech <sonartech@sonarsource.com>
Fri, 4 Feb 2022 20:02:51 +0000 (20:02 +0000)
server/sonar-web/src/main/js/app/components/ComponentContainer.tsx
server/sonar-web/src/main/js/app/components/__tests__/ComponentContainer-test.tsx
server/sonar-web/src/main/js/apps/settings/store/actions.ts

index a092709d66a5a8ce1c36ecbb65062be39ce6a39a..e979ec1979d562a1f634287cc318f96d8441156b 100644 (file)
@@ -111,7 +111,7 @@ export class ComponentContainer extends React.PureComponent<Props, State> {
       componentWithQualifier = this.addQualifier({ ...nav, ...component });
     } catch (e) {
       if (this.mounted) {
-        if (e && e.status === HttpStatus.Forbidden) {
+        if (e && e instanceof Response && e.status === HttpStatus.Forbidden) {
           this.props.requireAuthorization(this.props.router);
         } else {
           this.setState({ component: undefined, loading: false });
index 4eeeb56b35c0c5a1b8e23939ca1c8b09d552c907..17c59b13cb3c054e503434a2ab35297832d9e4d4 100644 (file)
@@ -28,6 +28,7 @@ import { mockProjectAlmBindingConfigurationErrors } from '../../../helpers/mocks
 import { mockBranch, mockMainBranch, mockPullRequest } from '../../../helpers/mocks/branch-like';
 import { mockComponent } from '../../../helpers/mocks/component';
 import { mockTask } from '../../../helpers/mocks/tasks';
+import { HttpStatus } from '../../../helpers/request';
 import { mockAppState, mockLocation, mockRouter } from '../../../helpers/testMocks';
 import { waitAndUpdate } from '../../../helpers/testUtils';
 import { AlmKeys } from '../../../types/alm-settings';
@@ -318,14 +319,18 @@ it('only fully reloads a non-empty component if there was previously some task i
 });
 
 it('should show component not found if it does not exist', async () => {
-  (getComponentNavigation as jest.Mock).mockRejectedValueOnce({ status: 404 });
+  (getComponentNavigation as jest.Mock).mockRejectedValueOnce(
+    new Response(null, { status: HttpStatus.NotFound })
+  );
   const wrapper = shallowRender();
   await waitAndUpdate(wrapper);
   expect(wrapper).toMatchSnapshot();
 });
 
 it('should redirect if the user has no access', async () => {
-  (getComponentNavigation as jest.Mock).mockRejectedValueOnce({ status: 403 });
+  (getComponentNavigation as jest.Mock).mockRejectedValueOnce(
+    new Response(null, { status: HttpStatus.Forbidden })
+  );
   const requireAuthorization = jest.fn();
   const wrapper = shallowRender({ requireAuthorization });
   await waitAndUpdate(wrapper);
index 61c766ddabbd1d4248d6da8ff80bdc49ba34302e..217047f167eab4e5ef0856a4e48fb3f0a8cca8bf 100644 (file)
@@ -104,8 +104,9 @@ export function checkValue(key: string) {
       try {
         JSON.parse(value);
       } catch (e) {
-        dispatch(failValidation(key, e.message));
-
+        if (e instanceof Error) {
+          dispatch(failValidation(key, e.message));
+        }
         return false;
       }
     }