Fix last batch of jest tests (#6582)

As title
This commit is contained in:
Thomas Trompette
2024-08-08 15:53:17 +02:00
committed by GitHub
parent 774cb554f4
commit a0e5ca44ba
5 changed files with 188 additions and 355 deletions

View File

@ -1,11 +1,17 @@
import { renderHook } from '@testing-library/react';
import { useTimelineActivities } from '@/activities/timelineActivities/hooks/useTimelineActivities';
import { ReactNode } from 'react';
import { RecoilRoot } from 'recoil';
jest.mock('@/object-record/hooks/useFindManyRecords', () => ({
useFindManyRecords: jest.fn(),
}));
const Wrapper = ({ children }: { children: ReactNode }) => (
<RecoilRoot>{children}</RecoilRoot>
);
describe('useTimelineActivities', () => {
afterEach(() => {
jest.clearAllMocks();
@ -52,8 +58,9 @@ describe('useTimelineActivities', () => {
records: mockedTimelineActivities,
});
const { result } = renderHook(() =>
useTimelineActivities(mockTargetableObject),
const { result } = renderHook(
() => useTimelineActivities(mockTargetableObject),
{ wrapper: Wrapper },
);
expect(result.current.timelineActivities).toEqual(mockedTimelineActivities);

View File

@ -1,12 +1,20 @@
import { TimelineActivity } from '@/activities/timelineActivities/types/TimelineActivity';
import { filterOutInvalidTimelineActivities } from '@/activities/timelineActivities/utils/filterOutInvalidTimelineActivities';
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
const noteObjectMetadataItem = {
nameSingular: CoreObjectNameSingular.Note,
namePlural: 'notes',
fields: [{ name: 'field1' }, { name: 'field2' }, { name: 'field3' }],
} as ObjectMetadataItem;
describe('filterOutInvalidTimelineActivities', () => {
it('should filter out TimelineActivities with deleted fields from the properties diff', () => {
const events = [
{
id: '1',
name: 'event1',
properties: {
diff: {
field1: { before: 'value1', after: 'value2' },
@ -17,6 +25,7 @@ describe('filterOutInvalidTimelineActivities', () => {
},
{
id: '2',
name: 'event2',
properties: {
diff: {
field1: { before: 'value7', after: 'value8' },
@ -36,12 +45,13 @@ describe('filterOutInvalidTimelineActivities', () => {
const filteredEvents = filterOutInvalidTimelineActivities(
events,
'objectNameSingular',
[mainObjectMetadataItem],
[mainObjectMetadataItem, noteObjectMetadataItem],
);
expect(filteredEvents).toEqual([
{
id: '1',
name: 'event1',
properties: {
diff: {
field1: { before: 'value1', after: 'value2' },
@ -52,6 +62,7 @@ describe('filterOutInvalidTimelineActivities', () => {
},
{
id: '2',
name: 'event2',
properties: {
diff: {
field1: { before: 'value7', after: 'value8' },
@ -66,6 +77,7 @@ describe('filterOutInvalidTimelineActivities', () => {
const events = [
{
id: '1',
name: 'event1',
properties: {
diff: {
field3: { before: 'value5', after: 'value6' },
@ -74,6 +86,7 @@ describe('filterOutInvalidTimelineActivities', () => {
},
{
id: '2',
name: 'event2',
properties: {
diff: {
field4: { before: 'value11', after: 'value12' },
@ -83,13 +96,15 @@ describe('filterOutInvalidTimelineActivities', () => {
] as TimelineActivity[];
const mainObjectMetadataItem = {
nameSingular: 'objectNameSingular',
namePlural: 'objectNamePlural',
fields: [{ name: 'field1' }, { name: 'field2' }],
} as ObjectMetadataItem;
const filteredEvents = filterOutInvalidTimelineActivities(
events,
'objectNameSingular',
[mainObjectMetadataItem],
[mainObjectMetadataItem, noteObjectMetadataItem],
);
expect(filteredEvents).toEqual([]);
@ -99,22 +114,26 @@ describe('filterOutInvalidTimelineActivities', () => {
const events = [
{
id: '1',
name: 'event1',
properties: {},
},
{
id: '2',
name: 'event2',
properties: {},
},
] as TimelineActivity[];
const mainObjectMetadataItem = {
nameSingular: 'objectNameSingular',
namePlural: 'objectNamePlural',
fields: [{ name: 'field1' }, { name: 'field2' }],
} as ObjectMetadataItem;
const filteredEvents = filterOutInvalidTimelineActivities(
events,
'objectNameSingular',
[mainObjectMetadataItem],
[mainObjectMetadataItem, noteObjectMetadataItem],
);
expect(filteredEvents).toEqual(events);

View File

@ -43,7 +43,8 @@ export const filterOutInvalidTimelineActivities = (
const validDiffEntries = Object.entries(diff).filter(([diffKey]) =>
isNoteOrTask
? noteFieldMetadataItemMap.has(diffKey)
? // Note and Task objects have the same field metadata
noteFieldMetadataItemMap.has(diffKey)
: fieldMetadataItemMap.has(diffKey),
);