From aa5ef3bd9bd5e47ec352821f21594fa3d875b579 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Wed, 11 Aug 2021 22:43:16 +0300 Subject: [PATCH] execute: Forbid to return `null` from `serialize` function Fixes #1579 --- src/execution/__tests__/executor-test.ts | 2 +- src/execution/execute.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/execution/__tests__/executor-test.ts b/src/execution/__tests__/executor-test.ts index 5283aa4de5..330f719d58 100644 --- a/src/execution/__tests__/executor-test.ts +++ b/src/execution/__tests__/executor-test.ts @@ -1123,7 +1123,7 @@ describe('Execute: Handles basic execution tasks', () => { errors: [ { message: - 'Expected a value of type "CustomScalar" but received: "CUSTOM_VALUE"', + 'Expected `CustomScalar.serialize("CUSTOM_VALUE")` to return non-nullable value, returned: undefined', locations: [{ line: 1, column: 3 }], path: ['customScalar'], }, diff --git a/src/execution/execute.ts b/src/execution/execute.ts index f092a6a797..8429cae8c5 100644 --- a/src/execution/execute.ts +++ b/src/execution/execute.ts @@ -750,10 +750,10 @@ function completeLeafValue( result: unknown, ): unknown { const serializedResult = returnType.serialize(result); - if (serializedResult === undefined) { + if (serializedResult == null) { throw new Error( - `Expected a value of type "${inspect(returnType)}" but ` + - `received: ${inspect(result)}`, + `Expected \`${inspect(returnType)}.serialize(${inspect(result)})\` to ` + + `return non-nullable value, returned: ${inspect(serializedResult)}`, ); } return serializedResult;