From 171174e7ecd04936f26503ff55aaef892382ef94 Mon Sep 17 00:00:00 2001 From: Christoph Zwerschke Date: Mon, 27 Aug 2018 11:37:27 +0200 Subject: [PATCH] Add unit tests for isRequired predicates --- src/type/__tests__/predicate-test.js | 68 ++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/src/type/__tests__/predicate-test.js b/src/type/__tests__/predicate-test.js index 148e42e240..2fd8d691e6 100644 --- a/src/type/__tests__/predicate-test.js +++ b/src/type/__tests__/predicate-test.js @@ -35,6 +35,8 @@ import { isWrappingType, isNullableType, isNamedType, + isRequiredArgument, + isRequiredInputField, assertType, assertScalarType, assertObjectType, @@ -469,4 +471,70 @@ describe('Type predicates', () => { ).to.equal(ObjectType); }); }); + + describe('isRequiredArgument', () => { + it('returns true for required arguments', () => { + const requiredArg = { + type: GraphQLNonNull(GraphQLString), + }; + expect(isRequiredArgument(requiredArg)).to.equal(true); + }); + + it('returns false for optional arguments', () => { + const optArg1 = { + type: GraphQLString, + }; + expect(isRequiredArgument(optArg1)).to.equal(false); + + const optArg2 = { + type: GraphQLString, + defaultValue: null, + }; + expect(isRequiredArgument(optArg2)).to.equal(false); + + const optArg3 = { + type: GraphQLList(GraphQLNonNull(GraphQLString)), + }; + expect(isRequiredArgument(optArg3)).to.equal(false); + + const optArg4 = { + type: GraphQLNonNull(GraphQLString), + defaultValue: 'default', + }; + expect(isRequiredArgument(optArg4)).to.equal(false); + }); + }); + + describe('isRequiredInputField', () => { + it('returns true for required input field', () => { + const requiredField = { + type: GraphQLNonNull(GraphQLString), + }; + expect(isRequiredInputField(requiredField)).to.equal(true); + }); + + it('returns false for optional input field', () => { + const optField1 = { + type: GraphQLString, + }; + expect(isRequiredInputField(optField1)).to.equal(false); + + const optField2 = { + type: GraphQLString, + defaultValue: null, + }; + expect(isRequiredInputField(optField2)).to.equal(false); + + const optField3 = { + type: GraphQLList(GraphQLNonNull(GraphQLString)), + }; + expect(isRequiredInputField(optField3)).to.equal(false); + + const optField4 = { + type: GraphQLNonNull(GraphQLString), + defaultValue: 'default', + }; + expect(isRequiredInputField(optField4)).to.equal(false); + }); + }); });