diff options
author | Sarath Nair <91882341+sarath-nair-sonarsource@users.noreply.github.com> | 2024-08-26 09:41:34 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2024-08-26 20:03:05 +0000 |
commit | 28ff86fcd8312d8e6b61a679106df554bcea072d (patch) | |
tree | 06e3e18ca240933e0e3a54efe63e1a5152ed3942 /server/sonar-web/src/main/js/apps/overview | |
parent | bd689765639141b8c1db9612ea7ad65c700fb4a1 (diff) | |
download | sonarqube-28ff86fcd8312d8e6b61a679106df554bcea072d.tar.gz sonarqube-28ff86fcd8312d8e6b61a679106df554bcea072d.zip |
SONAR-22559 Show provisioning status for gitlab project (#11601)
Diffstat (limited to 'server/sonar-web/src/main/js/apps/overview')
-rw-r--r-- | server/sonar-web/src/main/js/apps/overview/components/EmptyOverview.tsx | 17 | ||||
-rw-r--r-- | server/sonar-web/src/main/js/apps/overview/components/__tests__/App-test.tsx | 40 |
2 files changed, 51 insertions, 6 deletions
diff --git a/server/sonar-web/src/main/js/apps/overview/components/EmptyOverview.tsx b/server/sonar-web/src/main/js/apps/overview/components/EmptyOverview.tsx index abf12138c2e..a8df895e419 100644 --- a/server/sonar-web/src/main/js/apps/overview/components/EmptyOverview.tsx +++ b/server/sonar-web/src/main/js/apps/overview/components/EmptyOverview.tsx @@ -32,6 +32,7 @@ import { translate, translateWithParameters } from '../../../helpers/l10n'; import { getProjectTutorialLocation } from '../../../helpers/urls'; import { hasGlobalPermission } from '../../../helpers/users'; import { useTaskForComponentQuery } from '../../../queries/component'; +import { AlmKeys } from '../../../types/alm-settings'; import { BranchLike } from '../../../types/branch-like'; import { Permissions } from '../../../types/permissions'; import { TaskTypes } from '../../../types/tasks'; @@ -57,10 +58,17 @@ export function EmptyOverview(props: Readonly<EmptyOverviewProps>) { const hasQueuedAnalyses = data && data.queue.filter((task) => task.type === TaskTypes.Report).length > 0; + let permissionInSyncFor: AlmKeys.GitHub | AlmKeys.GitLab = AlmKeys.GitHub; + const hasPermissionSyncInProgess = data && - data.queue.filter((task) => task.type === TaskTypes.GithubProjectPermissionsProvisioning) - .length > 0; + data.queue.filter((task) => { + if (task.type === TaskTypes.GitlabProjectPermissionsProvisioning) { + permissionInSyncFor = AlmKeys.GitLab; + return true; + } + return task.type === TaskTypes.GithubProjectPermissionsProvisioning; + }).length > 0; React.useEffect(() => { if (currentUserCanScanProject || !isLoggedIn(currentUser)) { @@ -102,7 +110,10 @@ export function EmptyOverview(props: Readonly<EmptyOverviewProps>) { <PageContentFontWrapper> <SynchInProgress> <Spinner className="sw-mr-2" /> - {translate('provisioning.permission_synch_in_progress')} + {translateWithParameters( + 'provisioning.permission_synch_in_progress', + translate('alm', permissionInSyncFor), + )} </SynchInProgress> </PageContentFontWrapper> </LargeCenteredLayout> diff --git a/server/sonar-web/src/main/js/apps/overview/components/__tests__/App-test.tsx b/server/sonar-web/src/main/js/apps/overview/components/__tests__/App-test.tsx index e3f9e6e096e..b8b7cca42d3 100644 --- a/server/sonar-web/src/main/js/apps/overview/components/__tests__/App-test.tsx +++ b/server/sonar-web/src/main/js/apps/overview/components/__tests__/App-test.tsx @@ -119,7 +119,7 @@ describe('Permission provisioning', () => { afterEach(() => { jest.useRealTimers(); }); - it('should render warning when permission is sync', async () => { + it('should render warning when permission is sync for github', async () => { handlerCe.addTask( mockTask({ componentKey: 'my-project', @@ -132,7 +132,7 @@ describe('Permission provisioning', () => { jest.runOnlyPendingTimers(); expect( - await screen.findByText('provisioning.permission_synch_in_progress'), + await screen.findByText('provisioning.permission_synch_in_progress.alm.github'), ).toBeInTheDocument(); handlerCe.clearTasks(); @@ -148,7 +148,41 @@ describe('Permission provisioning', () => { await waitFor(() => { expect( - screen.queryByText('provisioning.permission_synch_in_progress'), + screen.queryByText('provisioning.permission_synch_in_progress.alm.github'), + ).not.toBeInTheDocument(); + }); + }); + + it('should render warning when permission is sync for gitlab', async () => { + handlerCe.addTask( + mockTask({ + componentKey: 'my-project', + type: TaskTypes.GitlabProjectPermissionsProvisioning, + status: TaskStatuses.InProgress, + }), + ); + + renderApp(); + + jest.runOnlyPendingTimers(); + expect( + await screen.findByText('provisioning.permission_synch_in_progress.alm.gitlab'), + ).toBeInTheDocument(); + + handlerCe.clearTasks(); + handlerCe.addTask( + mockTask({ + componentKey: 'my-project', + type: TaskTypes.GitlabProjectPermissionsProvisioning, + status: TaskStatuses.Success, + }), + ); + + jest.runOnlyPendingTimers(); + + await waitFor(() => { + expect( + screen.queryByText('provisioning.permission_synch_in_progress.alm.gitlab'), ).not.toBeInTheDocument(); }); }); |