]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-17515 Don't rely on feature flag for login message
authorJeremy Davis <jeremy.davis@sonarsource.com>
Fri, 28 Oct 2022 13:40:48 +0000 (15:40 +0200)
committersonartech <sonartech@sonarsource.com>
Mon, 31 Oct 2022 20:03:00 +0000 (20:03 +0000)
server/sonar-web/src/main/js/apps/sessions/components/LoginContainer.tsx
server/sonar-web/src/main/js/apps/sessions/components/__tests__/Login-it.tsx

index 304a50d84861baf4b490eb3fbbcd0b73fccae85c..bd4d421f01b7c2f5874f16a60caa54eae010615e 100644 (file)
@@ -21,18 +21,14 @@ import * as React from 'react';
 import { logIn } from '../../../api/auth';
 import { getLoginMessage } from '../../../api/settings';
 import { getIdentityProviders } from '../../../api/users';
-import withAvailableFeatures, {
-  WithAvailableFeaturesProps
-} from '../../../app/components/available-features/withAvailableFeatures';
 import { Location, withRouter } from '../../../components/hoc/withRouter';
 import { addGlobalErrorMessage } from '../../../helpers/globalMessages';
 import { translate } from '../../../helpers/l10n';
 import { getReturnUrl } from '../../../helpers/urls';
-import { Feature } from '../../../types/features';
 import { IdentityProvider } from '../../../types/types';
 import Login from './Login';
 
-interface Props extends WithAvailableFeaturesProps {
+interface Props {
   location: Location;
 }
 interface State {
@@ -77,15 +73,13 @@ export class LoginContainer extends React.PureComponent<Props, State> {
   }
 
   async loadLoginMessage() {
-    if (this.props.hasFeature(Feature.LoginMessage)) {
-      try {
-        const { message } = await getLoginMessage();
-        if (this.mounted) {
-          this.setState({ message });
-        }
-      } catch (_) {
-        /* already handled */
+    try {
+      const { message } = await getLoginMessage();
+      if (this.mounted) {
+        this.setState({ message });
       }
+    } catch (_) {
+      /* already handled */
     }
   }
 
@@ -118,4 +112,4 @@ export class LoginContainer extends React.PureComponent<Props, State> {
   }
 }
 
-export default withAvailableFeatures(withRouter(LoginContainer));
+export default withRouter(LoginContainer);
index 2220bd17ec838bdaf5d1aae0dd77096935cad7e2..824efb902a69f7c60044d00b2d210777d802b252 100644 (file)
@@ -41,9 +41,7 @@ jest.mock('../../../../api/auth', () => ({
 }));
 
 jest.mock('../../../../api/settings', () => ({
-  getLoginMessage: jest
-    .fn()
-    .mockResolvedValue({ message: 'Welcome to SQ! Please use your Skynet credentials' })
+  getLoginMessage: jest.fn().mockResolvedValue({ message: '' })
 }));
 
 jest.mock('../../../../helpers/globalMessages', () => ({
@@ -146,29 +144,23 @@ it("should show a warning if there's an authorization error", async () => {
 });
 
 it('should display a login message if enabled & provided', async () => {
-  renderLoginContainer({}, true);
+  const message = 'Welcome to SQ! Please use your Skynet credentials';
+  (getLoginMessage as jest.Mock).mockResolvedValueOnce({ message });
+  renderLoginContainer({});
 
-  const message = await screen.findByText('Welcome to SQ! Please use your Skynet credentials');
-  expect(message).toBeInTheDocument();
+  expect(await screen.findByText(message)).toBeInTheDocument();
 });
 
 it('should handle errors', async () => {
   (getLoginMessage as jest.Mock).mockRejectedValueOnce('nope');
-  renderLoginContainer({}, true);
+  renderLoginContainer({});
 
   const heading = await screen.findByRole('heading', { name: 'login.login_to_sonarqube' });
   expect(heading).toBeInTheDocument();
 });
 
-function renderLoginContainer(
-  props: Partial<LoginContainer['props']> = {},
-  loginMessageEnabled = false
-) {
+function renderLoginContainer(props: Partial<LoginContainer['props']> = {}) {
   return renderComponent(
-    <LoginContainer
-      hasFeature={jest.fn(() => loginMessageEnabled)}
-      location={mockLocation({ query: { return_to: '/some/path' } })}
-      {...props}
-    />
+    <LoginContainer location={mockLocation({ query: { return_to: '/some/path' } })} {...props} />
   );
 }