]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-21692 fix leftovers with act warnings
authorViktor Vorona <viktor.vorona@sonarsource.com>
Thu, 22 Feb 2024 11:00:30 +0000 (12:00 +0100)
committersonartech <sonartech@sonarsource.com>
Thu, 22 Feb 2024 20:02:53 +0000 (20:02 +0000)
server/sonar-web/src/main/js/app/components/__tests__/StartupModal-test.tsx
server/sonar-web/src/main/js/app/components/nav/component/__tests__/ComponentNav-test.tsx
server/sonar-web/src/main/js/apps/quality-gates/components/Conditions.tsx
server/sonar-web/src/main/js/apps/settings/components/pullRequestDecorationBinding/AlmSpecificForm.tsx
server/sonar-web/src/main/js/components/controls/__tests__/ComponentReportActions-test.tsx
server/sonar-web/src/main/js/components/controls/__tests__/Favorite-test.tsx

index 01be426d2fb14cff574526c664a43db08031dec2..99f1d7f37ecc0b39ad50ccfe5462c3960d358ea9 100644 (file)
@@ -19,6 +19,7 @@
  */
 import userEvent from '@testing-library/user-event';
 import * as React from 'react';
+import { showLicense } from '../../../api/editions';
 import { save } from '../../../helpers/storage';
 import { mockAppState, mockCurrentUser } from '../../../helpers/testMocks';
 import { renderApp } from '../../../helpers/testReactTestingUtils';
@@ -60,10 +61,8 @@ it('should check license and open on its own', async () => {
   const user = userEvent.setup();
   renderStartupModal();
 
-  await new Promise(setImmediate);
-
+  expect(await ui.modalHeader.find()).toBeInTheDocument();
   expect(save).toHaveBeenCalled();
-  expect(ui.modalHeader.get()).toBeInTheDocument();
 
   await user.click(ui.licensePageLink.get());
 
@@ -77,10 +76,10 @@ it.each([
   ],
   ['Cannot admin', { appState: mockAppState({ canAdmin: false, edition: EditionKey.enterprise }) }],
   ['User is not logged in', { currentUser: mockCurrentUser() }],
-])('should not open when not necessary: %s', async (_, props: Partial<StartupModal['props']>) => {
+])('should not open when not necessary: %s', (_, props: Partial<StartupModal['props']>) => {
   renderStartupModal(props);
 
-  await new Promise(setImmediate);
+  expect(showLicense).not.toHaveBeenCalled();
 
   expect(save).not.toHaveBeenCalled();
   expect(ui.modalHeader.query()).not.toBeInTheDocument();
index c711da7c9382023c1dc353c503fc781273c3e6b3..1331723adba6e68d0ccd2e0e78470ed6af7b8f7c 100644 (file)
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { screen } from '@testing-library/react';
+import userEvent from '@testing-library/user-event';
 import React from 'react';
+import AlmSettingsServiceMock from '../../../../../api/mocks/AlmSettingsServiceMock';
+import BranchesServiceMock from '../../../../../api/mocks/BranchesServiceMock';
 import { mockProjectAlmBindingConfigurationErrors } from '../../../../../helpers/mocks/alm-settings';
 import { mockComponent } from '../../../../../helpers/mocks/component';
 import { renderApp } from '../../../../../helpers/testReactTestingUtils';
 import { ComponentQualifier } from '../../../../../types/component';
 import ComponentNav, { ComponentNavProps } from '../ComponentNav';
 
+const branchesHandler = new BranchesServiceMock();
+const almHandler = new AlmSettingsServiceMock();
+
+afterEach(() => {
+  branchesHandler.reset();
+  almHandler.reset();
+});
+
 it('renders correctly when the project binding is incorrect', () => {
   renderComponentNav({
     projectBindingErrors: mockProjectAlmBindingConfigurationErrors(),
@@ -35,8 +46,9 @@ it('renders correctly when the project binding is incorrect', () => {
 });
 
 it('correctly returns focus to the Project Information link when the drawer is closed', async () => {
+  const user = userEvent.setup();
   renderComponentNav();
-  screen.getByRole('link', { name: 'project.info.title' }).click();
+  await user.click(screen.getByRole('link', { name: 'project.info.title' }));
   expect(await screen.findByText('/project/information?id=my-project')).toBeInTheDocument();
 });
 
index dbac85e252133f769bd71876c4fc344072612591..b66f080857648d73b220cf52016771f34cf59f37 100644 (file)
@@ -189,14 +189,14 @@ export default function Conditions({ qualityGate, isFetching }: Readonly<Props>)
 
       {uniqDuplicates.length > 0 && (
         <FlagMessage variant="warning" className="sw-flex sw-mb-4">
-          <p>
+          <div>
             <p>{translate('quality_gates.duplicated_conditions')}</p>
             <ul className="sw-my-2 sw-list-disc sw-pl-10">
               {uniqDuplicates.map((d) => (
                 <li key={d.metric.key}>{getLocalizedMetricName(d.metric)}</li>
               ))}
             </ul>
-          </p>
+          </div>
         </FlagMessage>
       )}
 
index 5fe2cffb0adcbab81e01bc3e547293f26c2b51f9..719a08495fc02b60228a6db2222e931e771bd8a9 100644 (file)
@@ -94,12 +94,10 @@ function renderHelp({ help, helpExample, helpParams = {}, id }: CommonFieldProps
 function renderLabel(props: LabelProps) {
   const { optional, id } = props;
   return (
-    <SubHeading>
-      <label htmlFor={id}>
-        {translate('settings.pr_decoration.binding.form', id)}
-        {!optional && <MandatoryFieldMarker />}
-      </label>
-    </SubHeading>
+    <label htmlFor={id}>
+      {translate('settings.pr_decoration.binding.form', id)}
+      {!optional && <MandatoryFieldMarker />}
+    </label>
   );
 }
 
index 640e645e528b6dbc990dd8c7c43f214558dc85a7..b056fc863155dab855e8f8f2a020af732be99cb8 100644 (file)
@@ -17,7 +17,7 @@
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
-import { screen } from '@testing-library/react';
+import { screen, waitFor } from '@testing-library/react';
 import userEvent from '@testing-library/user-event';
 import * as React from 'react';
 import {
@@ -59,7 +59,7 @@ it('should not render anything when no status', async () => {
   // Loading
   expect(screen.queryByRole('button')).not.toBeInTheDocument();
 
-  await new Promise(setImmediate); // Make sure we wait until we're done loading
+  await waitFor(() => expect(getReportStatus).toHaveBeenCalled());
 
   // No status
   expect(screen.queryByRole('button')).not.toBeInTheDocument();
@@ -70,15 +70,15 @@ it('should not render anything when branch is purgeable', async () => {
     branch: mockBranch({ excludedFromPurge: false }),
   });
 
-  await new Promise(setImmediate); // Make sure we wait until we're done loading
+  await waitFor(() => expect(getReportStatus).toHaveBeenCalled());
 
   expect(screen.queryByRole('button')).not.toBeInTheDocument();
 });
 
-it('should not render anything without governance', async () => {
+it('should not render anything without governance', () => {
   renderComponentReportActions({ appState: mockAppState({ qualifiers: [] }) });
 
-  await new Promise(setImmediate); // Make sure we wait until we're done loading
+  expect(getReportStatus).not.toHaveBeenCalled();
 
   expect(screen.queryByRole('button')).not.toBeInTheDocument();
 });
@@ -120,8 +120,6 @@ it('should allow user to (un)subscribe', async () => {
   expect(subscribeToEmailReport).toHaveBeenCalledWith(component.key, branch.name);
   expect(await screen.findByRole('status')).toBeInTheDocument();
 
-  await new Promise(setImmediate);
-
   // And unsubscribe!
   await user.click(button);
 
@@ -143,8 +141,6 @@ it('should prevent user to subscribe if no email', async () => {
 
   renderComponentReportActions({ currentUser: mockLoggedInUser({ email: undefined }) });
 
-  await new Promise(setImmediate);
-
   await user.click(
     await screen.findByRole('button', {
       name: 'component_report.report.qualifier.TRK',
index a95e6bce3674b24b79a061223a27f97a64200a21..946a5ca6ead1bd2ea6cf2dffe75e45d949993129 100644 (file)
@@ -18,6 +18,7 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { screen } from '@testing-library/react';
+import userEvent from '@testing-library/user-event';
 import * as React from 'react';
 import { addFavorite, removeFavorite } from '../../../api/favorites';
 import { renderComponent } from '../../../helpers/testReactTestingUtils';
@@ -30,11 +31,12 @@ jest.mock('../../../api/favorites', () => ({
 }));
 
 it('renders and behaves correctly', async () => {
+  const user = userEvent.setup();
   renderFavorite({ favorite: false });
   let button = screen.getByRole('button');
   expect(button).toBeInTheDocument();
 
-  button.click();
+  await user.click(button);
   await new Promise(setImmediate);
   expect(addFavorite).toHaveBeenCalled();
 
@@ -42,7 +44,7 @@ it('renders and behaves correctly', async () => {
   expect(button).toBeInTheDocument();
   expect(button).toHaveFocus();
 
-  button.click();
+  await user.click(button);
   await new Promise(setImmediate);
   expect(removeFavorite).toHaveBeenCalled();
 
@@ -53,14 +55,13 @@ it('renders and behaves correctly', async () => {
 
 it('correctly calls handleFavorite if passed', async () => {
   const handleFavorite = jest.fn();
+  const user = userEvent.setup();
   renderFavorite({ handleFavorite });
 
-  screen.getByRole('button').click();
-  await new Promise(setImmediate);
+  await user.click(screen.getByRole('button'));
   expect(handleFavorite).toHaveBeenCalledWith('foo', false);
 
-  screen.getByRole('button').click();
-  await new Promise(setImmediate);
+  await user.click(screen.getByRole('button'));
   expect(handleFavorite).toHaveBeenCalledWith('foo', true);
 });