]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-22017 Show link to SonarQube downloads for no longer active version
authorViktor Vorona <viktor.vorona@sonarsource.com>
Wed, 10 Apr 2024 09:20:43 +0000 (11:20 +0200)
committersonartech <sonartech@sonarsource.com>
Wed, 10 Apr 2024 20:02:56 +0000 (20:02 +0000)
server/sonar-web/src/main/js/app/components/__tests__/UpdateNotification-it.tsx
server/sonar-web/src/main/js/components/upgrade/SystemUpgradeButton.tsx
server/sonar-web/src/main/js/helpers/testMocks.ts

index 91e350399c91bfb5e3ced970cea05fbf67e44e28..9673352c29d9fffa35f86b81f536e60014bc96ff 100644 (file)
@@ -39,6 +39,7 @@ jest.mock('../../../api/system', () => ({
 const ui = {
   updateMessage: byRole('alert'),
   openDialogBtn: byRole('button', { name: 'learn_more' }),
+  learnMoreLink: byRole('link', { name: /learn_more/ }),
   dialog: byRole('dialog', { name: 'system.system_upgrade' }),
   latestHeader: byRole('heading', { name: /system.latest_version/ }),
   latestLTAHeader: byRole('heading', { name: /system.lta_version/ }),
@@ -83,6 +84,7 @@ it('should show error message if upgrades call failed and the version has reache
     `admin_notification.update.${UpdateUseCase.CurrentVersionInactive}`,
   );
   expect(ui.openDialogBtn.query()).not.toBeInTheDocument();
+  expect(ui.learnMoreLink.get()).toBeInTheDocument();
 });
 
 it('should not show the notification banner if there is no network connection and version has not reached the eol', () => {
@@ -106,6 +108,7 @@ it('should show the error banner if there is no network connection and version h
     `admin_notification.update.${UpdateUseCase.CurrentVersionInactive}`,
   );
   expect(ui.openDialogBtn.query()).not.toBeInTheDocument();
+  expect(ui.learnMoreLink.get()).toBeInTheDocument();
 });
 
 it('active / latest / patch', async () => {
index 7744d356114798ee88f63c5f6a080efdee820484..9e318506cd29940034205fdfac320f54f4e2d501 100644 (file)
@@ -17,6 +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 { Link } from '@sonarsource/echoes-react';
 import { ButtonSecondary } from 'design-system';
 import * as React from 'react';
 import { translate } from '../../helpers/l10n';
@@ -44,7 +45,15 @@ export default function SystemUpgradeButton(props: Readonly<Props>) {
   }, [setSystemUpgradeFormOpen]);
 
   if (systemUpgrades.length === 0) {
-    return null;
+    return (
+      <Link
+        className="sw-ml-2"
+        to="https://www.sonarsource.com/products/sonarqube/downloads/?referrer=sonarqube"
+        target="_blank"
+      >
+        {translate('learn_more')}
+      </Link>
+    );
   }
 
   return (
index 7cb81dfb4b7592fbec383fa915b4e58955b671a6..313cb7f03bd33e086a7308316b3f7462d9a54395 100644 (file)
@@ -17,7 +17,6 @@
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
-import { addMonths, formatISO } from 'date-fns';
 import { omit } from 'lodash';
 import { To } from 'react-router-dom';
 import { CompareResponse } from '../api/quality-profiles';
@@ -95,7 +94,7 @@ export function mockAppState(overrides: Partial<AppState> = {}): AppState {
     qualifiers: [ComponentQualifier.Project],
     settings: {},
     version: '1.0',
-    versionEOL: formatISO(addMonths(new Date(), 1), { representation: 'date' }),
+    versionEOL: '2020-01-01',
     documentationUrl: 'https://docs.sonarsource.com/sonarqube/10.0',
     ...overrides,
   };