Skip to content

Commit b013e73

Browse files
committed
Allow for nullish values when defining enums
Fixes #832
1 parent d7fe661 commit b013e73

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

src/type/__tests__/definition-test.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,33 @@ describe('Type System: Example', () => {
184184
});
185185
});
186186

187+
it('defines an enum type with a value of `null` and `undefined`', () => {
188+
const EnumTypeWithNullishValue = new GraphQLEnumType({
189+
name: 'EnumWithNullishValue',
190+
values: {
191+
NULL: { value: null },
192+
UNDEFINED: { value: undefined },
193+
}
194+
});
195+
196+
expect(EnumTypeWithNullishValue.getValues()).to.deep.equal([
197+
{
198+
name: 'NULL',
199+
description: undefined,
200+
isDeprecated: false,
201+
deprecationReason: undefined,
202+
value: null,
203+
},
204+
{
205+
name: 'UNDEFINED',
206+
description: undefined,
207+
isDeprecated: false,
208+
deprecationReason: undefined,
209+
value: undefined,
210+
},
211+
]);
212+
});
213+
187214
it('defines an object type with deprecated field', () => {
188215
const TypeWithDeprecatedField = new GraphQLObjectType({
189216
name: 'foo',

src/type/definition.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
*/
1010

1111
import invariant from '../jsutils/invariant';
12-
import isNullish from '../jsutils/isNullish';
1312
import { ENUM } from '../language/kinds';
1413
import { assertValidName } from '../utilities/assertValidName';
1514
import type {
@@ -984,7 +983,7 @@ function defineEnumValues(
984983
description: value.description,
985984
isDeprecated: Boolean(value.deprecationReason),
986985
deprecationReason: value.deprecationReason,
987-
value: isNullish(value.value) ? valueName : value.value,
986+
value: value.hasOwnProperty('value') ? value.value : valueName,
988987
};
989988
});
990989
}

0 commit comments

Comments
 (0)