]> source.dussan.org Git - sonarqube.git/commitdiff
[NO JIRA] Remove dead code, fix 'initial token name' bug
authorWouter Admiraal <wouter.admiraal@sonarsource.com>
Mon, 23 May 2022 10:23:02 +0000 (12:23 +0200)
committersonartech <sonartech@sonarsource.com>
Tue, 24 May 2022 20:10:14 +0000 (20:10 +0000)
- Remove methods that are no longer used
- Passing the initial token name as a prop was broken, and the name was
  always reset to an empty string. This is now fixed.
- Passing an initial token name to `getUniqueTokenName()` should not be
  optional (doesn't make any sense to pass an empty string).

server/sonar-web/src/main/js/components/tutorials/manual/TokenStep.tsx
server/sonar-web/src/main/js/components/tutorials/manual/__tests__/TokenStep-test.tsx
server/sonar-web/src/main/js/components/tutorials/utils.ts

index 495e3c3b1a0bbe6a94a4f37eccbe2ca99ac9b0f9..328a306788d9eb3093bc2958296df480f0b95775 100644 (file)
@@ -66,22 +66,21 @@ export default class TokenStep extends React.PureComponent<Props, State> {
     };
   }
 
-  componentDidMount() {
+  async componentDidMount() {
     this.mounted = true;
-    getTokens(this.props.currentUser.login).then(
-      tokens => {
-        if (this.mounted) {
-          this.setState({ tokens });
-          if (
-            this.props.initialTokenName !== undefined &&
-            this.props.initialTokenName === this.state.tokenName
-          ) {
-            this.setState({ tokenName: getUniqueTokenName(tokens) });
-          }
-        }
-      },
-      () => {}
-    );
+    const { currentUser, initialTokenName } = this.props;
+    const { tokenName } = this.state;
+
+    const tokens = await getTokens(currentUser.login).catch(() => {
+      /* noop */
+    });
+
+    if (tokens && this.mounted) {
+      this.setState({ tokens });
+      if (initialTokenName !== undefined && initialTokenName === tokenName) {
+        this.setState({ tokenName: getUniqueTokenName(tokens, initialTokenName) });
+      }
+    }
   }
 
   componentWillUnmount() {
@@ -145,16 +144,6 @@ export default class TokenStep extends React.PureComponent<Props, State> {
     }
   };
 
-  handleGenerateClick = (event: React.MouseEvent<HTMLAnchorElement>) => {
-    event.preventDefault();
-    this.setState({ selection: 'generate' });
-  };
-
-  handleUseExistingClick = (event: React.MouseEvent<HTMLAnchorElement>) => {
-    event.preventDefault();
-    this.setState({ selection: 'use-existing' });
-  };
-
   handleModeChange = (mode: string) => {
     this.setState({ selection: mode });
   };
index ae3ca36c353b76228333579d2dbd5008b71d4396..b3b26676f0aa9a8d375e1bdab5b011cd849c1585 100644 (file)
  */
 import { shallow } from 'enzyme';
 import * as React from 'react';
+import { getTokens } from '../../../../api/user-tokens';
 import { mockLoggedInUser } from '../../../../helpers/testMocks';
 import { change, click, submit, waitAndUpdate } from '../../../../helpers/testUtils';
 import TokenStep from '../TokenStep';
 
 jest.mock('../../../../api/user-tokens', () => ({
-  getTokens: () => Promise.resolve([{ name: 'foo' }]),
-  generateToken: () => Promise.resolve({ token: 'abcd1234' }),
-  revokeToken: () => Promise.resolve()
+  getTokens: jest.fn().mockResolvedValue([{ name: 'foo' }]),
+  generateToken: jest.fn().mockResolvedValue({ token: 'abcd1234' }),
+  revokeToken: jest.fn().mockResolvedValue(null)
 }));
 
+it('sets an initial token name', async () => {
+  (getTokens as jest.Mock).mockResolvedValueOnce([{ name: 'fôo' }]);
+  const wrapper = shallowRender({ initialTokenName: 'fôo' });
+  await waitAndUpdate(wrapper);
+  expect(
+    wrapper
+      .dive()
+      .find('input')
+      .props().value
+  ).toBe('fôo 1');
+});
+
 it('generates token', async () => {
   const wrapper = shallowRender();
   await waitAndUpdate(wrapper);
index 6e040c3f09a9fb9e042528e55fc618646b038b6d..1e94fa59921d2ba60c3496deca39860359239a35 100644 (file)
@@ -37,7 +37,7 @@ sonarqube {
 }`;
 }
 
-export function getUniqueTokenName(tokens: UserToken[], initialTokenName = '') {
+export function getUniqueTokenName(tokens: UserToken[], initialTokenName: string) {
   const hasToken = (name: string) => tokens.find(token => token.name === name) !== undefined;
 
   if (!hasToken(initialTokenName)) {