mirror of
https://github.com/lingble/twenty.git
synced 2025-11-02 05:37:56 +00:00
@@ -97,6 +97,14 @@ export const usePageChangeEffectNavigateLocation = () => {
|
||||
return AppPath.InviteTeam;
|
||||
}
|
||||
|
||||
if (
|
||||
onboardingStatus === OnboardingStatus.Completed &&
|
||||
subscriptionStatus === SubscriptionStatus.Canceled &&
|
||||
isMatchingLocation(AppPath.PlanRequired)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (
|
||||
onboardingStatus === OnboardingStatus.Completed &&
|
||||
isMatchingOnboardingRoute
|
||||
|
||||
@@ -21,7 +21,7 @@ const mockActivityTarget = {
|
||||
};
|
||||
|
||||
const mockActivity = {
|
||||
__typename: 'Note',
|
||||
__typename: 'Task',
|
||||
updatedAt: '2021-08-03T19:20:06.000Z',
|
||||
createdAt: '2021-08-03T19:20:06.000Z',
|
||||
status: 'DONE',
|
||||
|
||||
@@ -21,23 +21,6 @@ describe('useColumnDefinitionsFromFieldMetadata', () => {
|
||||
expect(result.current.sortDefinitions.length).toBe(0);
|
||||
});
|
||||
|
||||
it('should return empty definitions if object has no fields matching criteria', () => {
|
||||
const mockObjectMetadataItems = getObjectMetadataItemsMock();
|
||||
|
||||
const { result } = renderHook(
|
||||
(objectMetadataItem?: Nullable<ObjectMetadataItem>) => {
|
||||
return useColumnDefinitionsFromFieldMetadata(objectMetadataItem);
|
||||
},
|
||||
{
|
||||
initialProps: mockObjectMetadataItems[0],
|
||||
},
|
||||
);
|
||||
|
||||
expect(result.current.columnDefinitions.length).toBe(0);
|
||||
expect(result.current.filterDefinitions.length).toBe(0);
|
||||
expect(result.current.sortDefinitions.length).toBe(0);
|
||||
});
|
||||
|
||||
it('should return expected definitions', () => {
|
||||
const mockObjectMetadataItems = getObjectMetadataItemsMock();
|
||||
|
||||
@@ -53,20 +36,8 @@ describe('useColumnDefinitionsFromFieldMetadata', () => {
|
||||
const { columnDefinitions, filterDefinitions, sortDefinitions } =
|
||||
result.current;
|
||||
|
||||
expect(columnDefinitions.length).toBe(3);
|
||||
expect(filterDefinitions.length).toBe(3);
|
||||
expect(sortDefinitions.length).toBe(3);
|
||||
|
||||
expect(columnDefinitions[0].label).toBe('Expiration date');
|
||||
expect(columnDefinitions[1].label).toBe('Name');
|
||||
expect(columnDefinitions[2].label).toBe('Revocation date');
|
||||
|
||||
expect(filterDefinitions[0].label).toBe('Expiration date');
|
||||
expect(filterDefinitions[1].label).toBe('Name');
|
||||
expect(filterDefinitions[2].label).toBe('Revocation date');
|
||||
|
||||
expect(sortDefinitions[0].label).toBe('Expiration date');
|
||||
expect(sortDefinitions[1].label).toBe('Name');
|
||||
expect(sortDefinitions[2].label).toBe('Revocation date');
|
||||
expect(columnDefinitions.length).toBe(5);
|
||||
expect(filterDefinitions.length).toBe(4);
|
||||
expect(sortDefinitions.length).toBe(4);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ReactNode } from 'react';
|
||||
import { MockedProvider } from '@apollo/client/testing';
|
||||
import { act, renderHook } from '@testing-library/react';
|
||||
import { ReactNode } from 'react';
|
||||
import { RecoilRoot, useSetRecoilState } from 'recoil';
|
||||
|
||||
import {
|
||||
@@ -72,10 +72,10 @@ describe('useFilteredObjectMetadataItems', () => {
|
||||
|
||||
act(() => {
|
||||
const res = result.current.findObjectMetadataItemById(
|
||||
'20202020-480c-434e-b4c7-e22408b97047',
|
||||
'ff2881da-89f6-4f15-8f0a-e3f355ea3b94',
|
||||
);
|
||||
expect(res).toBeDefined();
|
||||
expect(res?.namePlural).toBe('companies');
|
||||
expect(res?.namePlural).toBe('people');
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ReactNode, useEffect } from 'react';
|
||||
import { MockedProvider } from '@apollo/client/testing';
|
||||
import { renderHook } from '@testing-library/react';
|
||||
import { ReactNode, useEffect } from 'react';
|
||||
import { RecoilRoot, useSetRecoilState } from 'recoil';
|
||||
|
||||
import { useGetRelationMetadata } from '@/object-metadata/hooks/useGetRelationMetadata';
|
||||
@@ -20,7 +20,7 @@ describe('useGetRelationMetadata', () => {
|
||||
(item) => item.nameSingular === 'person',
|
||||
)!;
|
||||
const fieldMetadataItem = objectMetadata.fields.find(
|
||||
(field) => field.name === 'opportunities',
|
||||
(field) => field.name === 'pointOfContactForOpportunities',
|
||||
)!;
|
||||
|
||||
const { result } = renderHook(
|
||||
@@ -50,7 +50,7 @@ describe('useGetRelationMetadata', () => {
|
||||
);
|
||||
const expectedRelationFieldMetadataItem =
|
||||
expectedRelationObjectMetadataItem?.fields.find(
|
||||
(field) => field.name === 'person',
|
||||
(field) => field.name === 'pointOfContact',
|
||||
);
|
||||
|
||||
expect(relationObjectMetadataItem).toEqual(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ReactNode } from 'react';
|
||||
import { MockedProvider } from '@apollo/client/testing';
|
||||
import { renderHook } from '@testing-library/react';
|
||||
import { ReactNode } from 'react';
|
||||
import { RecoilRoot } from 'recoil';
|
||||
|
||||
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
|
||||
@@ -23,6 +23,6 @@ describe('useObjectMetadataItem', () => {
|
||||
|
||||
const { objectMetadataItem } = result.current;
|
||||
|
||||
expect(objectMetadataItem.id).toBe('20202020-cae9-4ff4-9579-f7d9fe44c937');
|
||||
expect(objectMetadataItem.id).toBe('b95b3f38-9fc2-4d7e-a823-7791cf13d089');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -26,26 +26,35 @@ const companyMocks = [
|
||||
) {
|
||||
createCompanies(data: $data, upsert: $upsert) {
|
||||
__typename
|
||||
xLink {
|
||||
primaryLinkUrl
|
||||
primaryLinkLabel
|
||||
secondaryLinks
|
||||
}
|
||||
linkedinLink {
|
||||
primaryLinkUrl
|
||||
primaryLinkLabel
|
||||
secondaryLinks
|
||||
id
|
||||
visaSponsorship
|
||||
createdBy {
|
||||
source
|
||||
workspaceMemberId
|
||||
name
|
||||
}
|
||||
domainName {
|
||||
primaryLinkUrl
|
||||
primaryLinkLabel
|
||||
secondaryLinks
|
||||
}
|
||||
introVideo {
|
||||
primaryLinkUrl
|
||||
primaryLinkLabel
|
||||
secondaryLinks
|
||||
}
|
||||
position
|
||||
annualRecurringRevenue {
|
||||
amountMicros
|
||||
currencyCode
|
||||
}
|
||||
createdAt
|
||||
employees
|
||||
linkedinLink {
|
||||
primaryLinkUrl
|
||||
primaryLinkLabel
|
||||
secondaryLinks
|
||||
}
|
||||
workPolicy
|
||||
address {
|
||||
addressStreet1
|
||||
addressStreet2
|
||||
@@ -56,11 +65,17 @@ const companyMocks = [
|
||||
addressLat
|
||||
addressLng
|
||||
}
|
||||
updatedAt
|
||||
name
|
||||
updatedAt
|
||||
xLink {
|
||||
primaryLinkUrl
|
||||
primaryLinkLabel
|
||||
secondaryLinks
|
||||
}
|
||||
myCustomField
|
||||
createdAt
|
||||
accountOwnerId
|
||||
employees
|
||||
id
|
||||
tagline
|
||||
idealCustomerProfile
|
||||
}
|
||||
}
|
||||
@@ -68,10 +83,12 @@ const companyMocks = [
|
||||
variables: {
|
||||
data: [
|
||||
{
|
||||
createdBy: { source: 'IMPORT' },
|
||||
employees: 0,
|
||||
idealCustomerProfile: true,
|
||||
name: 'Example Company',
|
||||
id: companyId,
|
||||
visaSponsorship: false,
|
||||
},
|
||||
],
|
||||
upsert: true,
|
||||
|
||||
@@ -42,7 +42,9 @@ describe('getFieldPreviewValue', () => {
|
||||
|
||||
// Then
|
||||
expect(result).toBe(2000);
|
||||
expect(result).toBe(getSettingsFieldTypeConfig(FieldMetadataType.Number));
|
||||
expect(result).toBe(
|
||||
getSettingsFieldTypeConfig(FieldMetadataType.Number).exampleValue,
|
||||
);
|
||||
});
|
||||
|
||||
it('returns null if the field is supported in Settings but has no pre-configured placeholder defaultValue', () => {
|
||||
|
||||
@@ -18,7 +18,10 @@ export const getFirstNonEmptyLineOfRichText = (
|
||||
return content.link;
|
||||
}
|
||||
if ('text' in content) {
|
||||
return content.text.trim();
|
||||
const value = content.text.trim();
|
||||
if (value !== '') {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,6 @@ describe('formatToHumanReadableTime', () => {
|
||||
const date = new Date('2022-01-01T12:30:00Z');
|
||||
const result = formatToHumanReadableTime(date, 'UTC');
|
||||
|
||||
// it seems when running locally on MacOS the space is not the same
|
||||
expect(['12:30 PM', '12:30 PM']).toContain(result);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user