Treat suspended workspace as workspaces that need to be synced (#9669)

In this PR:
- migrate WorkspaceActivationStatus to twenty-shared (and update case to
make FE and BE consistent)
- introduce isWorkspaceActiveOrSuspended in twenty-shared
- refactor the code to use it (when we fetch data on the FE, we want to
keep SUSPENDED workspace working + when we sync workspaces we want it
too)
This commit is contained in:
Charles Bochet
2025-01-16 15:01:04 +01:00
committed by GitHub
parent 4a0b89d094
commit f545bd1c40
41 changed files with 200 additions and 167 deletions

View File

@ -0,0 +1,52 @@
import { WorkspaceActivationStatus } from '../../types/WorkspaceActivationStatus';
import { isWorkspaceActiveOrSuspended } from '../isWorkspaceActiveOrSuspended';
describe('isWorkspaceActiveOrSuspended', () => {
it('should return true for Active workspace', () => {
const workspace = {
activationStatus: WorkspaceActivationStatus.ACTIVE,
};
expect(isWorkspaceActiveOrSuspended(workspace)).toBe(true);
});
it('should return true for Suspended workspace', () => {
const workspace = {
activationStatus: WorkspaceActivationStatus.SUSPENDED,
};
expect(isWorkspaceActiveOrSuspended(workspace)).toBe(true);
});
it('should return false for Inactive workspace', () => {
const workspace = {
activationStatus: WorkspaceActivationStatus.INACTIVE,
};
expect(isWorkspaceActiveOrSuspended(workspace)).toBe(false);
});
it('should return false for OngoingCreation workspace', () => {
const workspace = {
activationStatus: WorkspaceActivationStatus.ONGOING_CREATION,
};
expect(isWorkspaceActiveOrSuspended(workspace)).toBe(false);
});
it('should return false for PendingCreation workspace', () => {
const workspace = {
activationStatus: WorkspaceActivationStatus.PENDING_CREATION,
};
expect(isWorkspaceActiveOrSuspended(workspace)).toBe(false);
});
it('should return false for undefined workspace', () => {
expect(isWorkspaceActiveOrSuspended(undefined)).toBe(false);
});
it('should return false for null workspace', () => {
expect(isWorkspaceActiveOrSuspended(null)).toBe(false);
});
});

View File

@ -0,0 +1,12 @@
import { WorkspaceActivationStatus } from '../types/WorkspaceActivationStatus';
export const isWorkspaceActiveOrSuspended = (
workspace?: {
activationStatus: WorkspaceActivationStatus;
} | null,
): boolean => {
return (
workspace?.activationStatus === WorkspaceActivationStatus.ACTIVE ||
workspace?.activationStatus === WorkspaceActivationStatus.SUSPENDED
);
};