diff --git a/src/mutation/__tests__/mutation.js b/src/mutation/__tests__/mutation.js index e3b6370..0300a5b 100644 --- a/src/mutation/__tests__/mutation.js +++ b/src/mutation/__tests__/mutation.js @@ -206,6 +206,26 @@ describe('mutationWithClientMutationId()', () => { }); }); + it('supports mutations returning null', async () => { + const query = ` + mutation M { + simpleRootValueMutation(input: {clientMutationId: "abc"}) { + result + clientMutationId + } + } + `; + + expect(await graphql(schema, query, null)).to.deep.equal({ + data: { + simpleRootValueMutation: { + result: null, + clientMutationId: 'abc', + }, + }, + }); + }); + describe('introspection', () => { it('contains correct input', async () => { const query = ` diff --git a/src/mutation/mutation.js b/src/mutation/mutation.js index a5f09b3..d630129 100644 --- a/src/mutation/mutation.js +++ b/src/mutation/mutation.js @@ -98,10 +98,10 @@ export function mutationWithClientMutationId( }, resolve: (_, { input }, context, info) => Promise.resolve(mutateAndGetPayload(input, context, info)).then( - (payload) => { - payload.clientMutationId = input.clientMutationId; - return payload; - }, + (payload) => ({ + ...payload, + clientMutationId: input.clientMutationId, + }), ), }; }