aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main/js/apps/overview
diff options
context:
space:
mode:
authorSarath Nair <91882341+sarath-nair-sonarsource@users.noreply.github.com>2024-08-26 09:41:34 +0200
committersonartech <sonartech@sonarsource.com>2024-08-26 20:03:05 +0000
commit28ff86fcd8312d8e6b61a679106df554bcea072d (patch)
tree06e3e18ca240933e0e3a54efe63e1a5152ed3942 /server/sonar-web/src/main/js/apps/overview
parentbd689765639141b8c1db9612ea7ad65c700fb4a1 (diff)
downloadsonarqube-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.tsx17
-rw-r--r--server/sonar-web/src/main/js/apps/overview/components/__tests__/App-test.tsx40
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();
});
});