diff --git a/spec/utils.spec.ts b/spec/utils.spec.ts index 437b3ae..2e170ed 100644 --- a/spec/utils.spec.ts +++ b/spec/utils.spec.ts @@ -1856,6 +1856,10 @@ describe('generatePayload', () => { ], }, }, + meta: { + updatedMeta: 'data', + keptMeta: 'same', + }, persistedResource: { id: '10', type: 'Article', @@ -1873,6 +1877,10 @@ describe('generatePayload', () => { data: [], }, }, + meta: { + existingMeta: 'test', + keptMeta: 'same', + }, }, }; let payload = generatePayload(resource, 'PATCH', true); @@ -1900,5 +1908,9 @@ describe('generatePayload', () => { payload.jsonApiData.data.relationships.existingEmptyToBeFilled.data[0] .type ).toEqual('foo-type'); + expect(payload.jsonApiData.meta).toBeDefined(); + expect(payload.jsonApiData.meta.existingMeta).toBeUndefined(); + expect(payload.jsonApiData.meta.updatedMeta).toBeDefined(); + expect(payload.jsonApiData.meta.keptMeta).toBeDefined(); }); }); diff --git a/src/utils.ts b/src/utils.ts index ac30181..479cf88 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1069,7 +1069,10 @@ export const generatePayload = ( ) : resource.relationships, }, - ...(resource.meta + ...(resource.meta && + (operation !== 'PATCH' || + !diffUpdate || + updatedData(resource.persistedResource.meta, resource.meta)) ? { meta: resource.meta, }