187 lines
7.4 KiB
TypeScript
187 lines
7.4 KiB
TypeScript
import { CurrentUserWorkspace } from '@/auth/states/currentUserWorkspaceState';
|
|
import { WorkspaceMember } from '@/workspace-member/types/WorkspaceMember';
|
|
import {
|
|
FeatureFlagKey,
|
|
OnboardingStatus,
|
|
SettingPermissionType,
|
|
SubscriptionInterval,
|
|
SubscriptionStatus,
|
|
User,
|
|
Workspace,
|
|
WorkspaceActivationStatus,
|
|
WorkspaceMemberDateFormatEnum,
|
|
WorkspaceMemberTimeFormatEnum,
|
|
} from '~/generated/graphql';
|
|
import { generatedMockObjectMetadataItems } from '~/testing/mock-data/generatedMockObjectMetadataItems';
|
|
|
|
type MockedUser = Pick<
|
|
User,
|
|
| 'id'
|
|
| 'email'
|
|
| 'firstName'
|
|
| 'lastName'
|
|
| 'canAccessFullAdminPanel'
|
|
| 'canImpersonate'
|
|
| '__typename'
|
|
| 'supportUserHash'
|
|
| 'onboardingStatus'
|
|
| 'userVars'
|
|
| 'availableWorkspaces'
|
|
> & {
|
|
workspaceMember: WorkspaceMember | null;
|
|
locale: string;
|
|
currentWorkspace: Workspace;
|
|
workspaces: Array<{ workspace: Workspace }>;
|
|
workspaceMembers: WorkspaceMember[];
|
|
currentUserWorkspace: CurrentUserWorkspace;
|
|
};
|
|
|
|
export const avatarUrl =
|
|
'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAYABgAAD/4QCMRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABgAAAAAQAAAGAAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAABSgAwAEAAAAAQAAABQAAAAA/8AAEQgAFAAUAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMACwgICggHCwoJCg0MCw0RHBIRDw8RIhkaFBwpJCsqKCQnJy0yQDctMD0wJyc4TDk9Q0VISUgrNk9VTkZUQEdIRf/bAEMBDA0NEQ8RIRISIUUuJy5FRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRf/dAAQAAv/aAAwDAQACEQMRAD8Ava1q728otYY98joSCTgZrnbXWdTtrhrfVZXWLafmcAEkdgR/hVltQku9Q8+OIEBcGOT+ID0PY1ka1KH2u8ToqnPLbmIqG7u6LtbQ7RXBRec4Uck9eKXcPWsKDWVnhWSL5kYcFelSf2m3901POh8jP//QoyIAnTuKpXsY82NsksUyWPU5q/L9z8RVK++/F/uCsVsaEURwgA4HtT9x9TUcf3KfUGh//9k=';
|
|
export const workspaceLogoUrl =
|
|
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACb0lEQVR4nO2VO4taQRTHr3AblbjxEVlwCwVhg7BoqqCIjy/gAyyFWNlYBOxsfH0KuxgQGwXRUkGuL2S7i1barGAgiwbdW93SnGOc4BonPiKahf3DwXFmuP/fPM4ZlvmlTxAhCBdzHnEQWYiv7Mr4C3NeuVYhQYDPzOUUQgDLBQGcLHNhvQK8DACPx8PTxiqVyvISG43GbyaT6Qfpn06n0m63e/tPAPF4vJ1MJu8kEsnWTCkWi1yr1RKGw+GDRqPBOTfr44vFQvD7/Q/lcpmaaVQAr9fLp1IpO22c47hGOBz+MB6PH+Vy+VYDAL8qlUoGtVotzOfzq4MAgsHgE/6KojiQyWR/bKVSqbSszHFM8Pl8z1YK48JsNltCOBwOnrYLO+8AAIjb+nHbycoTiUQfDJ7tFq4YAHiVSmXBxcD41u8flQU8z7fhzO0r83atVns3Go3u9Xr9x0O/RQXo9/tsIBBg6vX606a52Wz+bZ7P5/WwG29gxSJzhKgA6XTaDoFNF+krFAocmC//4yWEcSf2wTm7mCO19xFgSsKOLI16vV7b7XY7mRNoLwA0JymJ5uQIzgIAuX5PzDElT2m+E8BqtQ4ymcx7Yq7T6a6ZE4sKgOadTucaCwkxp1UzlEKh0GDxIXOwDWHAdi6Xe3swQDQa/Q7mywoolUpvsaptymazDWKxmBHTlWXZm405BFZoNpuGgwEmk4mE2SGtVivii4f1AO7J3ZopkQCQj7Ar1FeRChCJRJzVapX6DKNIfSc1Ax+wtQWQ55h6bH8FWDfYV4fO3wlwDr0C/BcADYiTPCxHqIEA2QsCZAkAKnRGkMbKN/sTX5YHPQ1e7SkAAAAASUVORK5CYII=';
|
|
|
|
export const mockCurrentWorkspace: Workspace = {
|
|
subdomain: 'acme.twenty.com',
|
|
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6w',
|
|
displayName: 'Twenty',
|
|
inviteHash: 'twenty.com-invite-hash',
|
|
logo: workspaceLogoUrl,
|
|
isPublicInviteLinkEnabled: true,
|
|
allowImpersonation: true,
|
|
activationStatus: WorkspaceActivationStatus.ACTIVE,
|
|
hasValidEnterpriseKey: false,
|
|
isGoogleAuthEnabled: true,
|
|
isPasswordAuthEnabled: true,
|
|
isCustomDomainEnabled: false,
|
|
workspaceUrls: {
|
|
customUrl: undefined,
|
|
subdomainUrl: 'twenty.twenty.com',
|
|
},
|
|
isMicrosoftAuthEnabled: false,
|
|
featureFlags: [
|
|
{
|
|
key: FeatureFlagKey.IS_AIRTABLE_INTEGRATION_ENABLED,
|
|
value: true,
|
|
},
|
|
{
|
|
key: FeatureFlagKey.IS_POSTGRESQL_INTEGRATION_ENABLED,
|
|
value: true,
|
|
},
|
|
],
|
|
createdAt: '2023-04-26T10:23:42.33625+00:00',
|
|
updatedAt: '2023-04-26T10:23:42.33625+00:00',
|
|
metadataVersion: 1,
|
|
currentBillingSubscription: {
|
|
__typename: 'BillingSubscription',
|
|
id: '7efbc3f7-6e5e-4128-957e-8d86808cdf6a',
|
|
interval: SubscriptionInterval.Month,
|
|
status: SubscriptionStatus.Active,
|
|
metadata: {},
|
|
},
|
|
billingSubscriptions: [
|
|
{
|
|
__typename: 'BillingSubscription',
|
|
id: '7efbc3f7-6e5e-4128-957e-8d86808cdf6a',
|
|
status: SubscriptionStatus.Active,
|
|
metadata: {},
|
|
},
|
|
],
|
|
workspaceMembersCount: 1,
|
|
databaseSchema: '',
|
|
databaseUrl: '',
|
|
};
|
|
|
|
export const mockedWorkspaceMemberData: WorkspaceMember = {
|
|
__typename: 'WorkspaceMember',
|
|
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6b',
|
|
colorScheme: 'Light',
|
|
avatarUrl,
|
|
locale: 'en',
|
|
name: {
|
|
firstName: 'Charles',
|
|
lastName: 'Test',
|
|
},
|
|
createdAt: '2023-04-26T10:23:42.33625+00:00',
|
|
updatedAt: '2023-04-26T10:23:42.33625+00:00',
|
|
userId: '2603c1f9-0172-4ea6-986c-eeaccdf7f4cf',
|
|
userEmail: 'charles@test.com',
|
|
dateFormat: WorkspaceMemberDateFormatEnum.DAY_FIRST,
|
|
timeFormat: WorkspaceMemberTimeFormatEnum.HOUR_24,
|
|
timeZone: 'America/New_York',
|
|
};
|
|
|
|
export const mockedUserData: MockedUser = {
|
|
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6d',
|
|
__typename: 'User',
|
|
email: 'charles@test.com',
|
|
firstName: 'Charles',
|
|
lastName: 'Test',
|
|
canAccessFullAdminPanel: false,
|
|
canImpersonate: false,
|
|
supportUserHash:
|
|
'a95afad9ff6f0b364e2a3fd3e246a1a852c22b6e55a3ca33745a86c201f9c10d',
|
|
workspaceMember: mockedWorkspaceMemberData,
|
|
currentWorkspace: mockCurrentWorkspace,
|
|
currentUserWorkspace: {
|
|
settingsPermissions: [SettingPermissionType.WORKSPACE_MEMBERS],
|
|
objectPermissions: generatedMockObjectMetadataItems.map((item) => ({
|
|
objectMetadataId: item.id,
|
|
canReadObjectRecords: true,
|
|
canUpdateObjectRecords: true,
|
|
canSoftDeleteObjectRecords: true,
|
|
canDestroyObjectRecords: true,
|
|
})),
|
|
},
|
|
locale: 'en',
|
|
workspaces: [{ workspace: mockCurrentWorkspace }],
|
|
workspaceMembers: [mockedWorkspaceMemberData],
|
|
onboardingStatus: OnboardingStatus.COMPLETED,
|
|
availableWorkspaces: {
|
|
availableWorkspacesForSignIn: [],
|
|
availableWorkspacesForSignUp: [],
|
|
},
|
|
userVars: {},
|
|
};
|
|
|
|
export const mockedLimitedPermissionsUserData: MockedUser = {
|
|
...mockedUserData,
|
|
currentUserWorkspace: {
|
|
...mockedUserData.currentUserWorkspace,
|
|
objectPermissions: generatedMockObjectMetadataItems
|
|
.filter(
|
|
(objectMetadata) =>
|
|
objectMetadata.nameSingular !== 'task' &&
|
|
objectMetadata.nameSingular !== 'opportunity',
|
|
)
|
|
.map((item) => ({
|
|
objectMetadataId: item.id,
|
|
canReadObjectRecords: true,
|
|
canUpdateObjectRecords: true,
|
|
canSoftDeleteObjectRecords: true,
|
|
canDestroyObjectRecords: true,
|
|
})),
|
|
},
|
|
};
|
|
|
|
export const mockedOnboardingUserData = (
|
|
onboardingStatus?: OnboardingStatus,
|
|
) => {
|
|
return {
|
|
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6d',
|
|
__typename: 'User',
|
|
email: 'workspace-onboarding@test.com',
|
|
firstName: '',
|
|
lastName: '',
|
|
canAccessFullAdminPanel: false,
|
|
canImpersonate: false,
|
|
supportUserHash:
|
|
'4fb61d34ed3a4aeda2476d4b308b5162db9e1809b2b8277e6fdc6efc4a609254',
|
|
workspaceMember: null,
|
|
currentWorkspace: mockCurrentWorkspace,
|
|
locale: 'en',
|
|
workspaces: [{ workspace: mockCurrentWorkspace }],
|
|
onboardingStatus: onboardingStatus || null,
|
|
};
|
|
};
|