diff --git a/packages/twenty-front/src/modules/object-record/utils/__tests__/computeOptimisticRecordFromInput.test.ts b/packages/twenty-front/src/modules/object-record/utils/__tests__/computeOptimisticRecordFromInput.test.ts index e3e1dddc894..c267b46cd05 100644 --- a/packages/twenty-front/src/modules/object-record/utils/__tests__/computeOptimisticRecordFromInput.test.ts +++ b/packages/twenty-front/src/modules/object-record/utils/__tests__/computeOptimisticRecordFromInput.test.ts @@ -252,26 +252,32 @@ describe('computeOptimisticRecordFromInput', () => { }); }); - it('should throw an error if recordInput contains fields unrelated to the current objectMetadata', () => { + it('should warn and skip unknown fields if recordInput contains fields unrelated to the current objectMetadata', () => { const cache = new InMemoryCache(); const personObjectMetadataItem = getMockObjectMetadataItemOrThrow('person'); + const consoleSpy = jest.spyOn(console, 'warn').mockImplementation(); - expect(() => - computeOptimisticRecordFromInput({ - currentWorkspaceMember, - objectMetadataItems: getTestEnrichedObjectMetadataItemsMock(), - objectMetadataItem: personObjectMetadataItem, - recordInput: { - unknwon: 'unknown', - foo: 'foo', - bar: 'bar', - city: 'Paris', - }, - cache, - objectPermissionsByObjectMetadataId: {}, - }), - ).toThrowErrorMatchingInlineSnapshot( - `"Should never occur, encountered unknown fields unknwon, foo, bar in objectMetadataItem person"`, + const result = computeOptimisticRecordFromInput({ + currentWorkspaceMember, + objectMetadataItems: getTestEnrichedObjectMetadataItemsMock(), + objectMetadataItem: personObjectMetadataItem, + recordInput: { + unknwon: 'unknown', + foo: 'foo', + bar: 'bar', + city: 'Paris', + }, + cache, + objectPermissionsByObjectMetadataId: {}, + }); + + expect(consoleSpy).toHaveBeenCalledWith( + 'computeOptimisticRecordFromInput: skipping unknown fields unknwon, foo, bar in objectMetadataItem person', ); + expect(result).toEqual({ + city: 'Paris', + }); + + consoleSpy.mockRestore(); }); }); diff --git a/packages/twenty-front/src/modules/object-record/utils/computeOptimisticRecordFromInput.ts b/packages/twenty-front/src/modules/object-record/utils/computeOptimisticRecordFromInput.ts index a32b18b1de4..a52688e6f6a 100644 --- a/packages/twenty-front/src/modules/object-record/utils/computeOptimisticRecordFromInput.ts +++ b/packages/twenty-front/src/modules/object-record/utils/computeOptimisticRecordFromInput.ts @@ -71,8 +71,8 @@ export const computeOptimisticRecordFromInput = ({ }, ); if (unknownRecordInputFields.length > 0) { - throw new Error( - `Should never occur, encountered unknown fields ${unknownRecordInputFields.join(', ')} in objectMetadataItem ${objectMetadataItem.nameSingular}`, + console.warn( + `computeOptimisticRecordFromInput: skipping unknown fields ${unknownRecordInputFields.join(', ')} in objectMetadataItem ${objectMetadataItem.nameSingular}`, ); }