From fa70ff815615bcae14399354110f43cc17729df5 Mon Sep 17 00:00:00 2001 From: Scott Wolchok Date: Tue, 28 Jul 2015 09:50:09 -0700 Subject: [PATCH] Add parser tests for accepting non keywords, take 2 --- src/language/__tests__/parser.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/language/__tests__/parser.js b/src/language/__tests__/parser.js index 68c3f88e9c..1d6179ba3a 100644 --- a/src/language/__tests__/parser.js +++ b/src/language/__tests__/parser.js @@ -119,6 +119,34 @@ fragment MissingOn Type expect(() => parse(kitchenSink)).to.not.throw(); }); + it('allows non-keywords anywhere a Name is allowed', () => { + const nonKeywords = [ + 'on', + 'fragment', + 'query', + 'mutation', + 'true', + 'false' + ]; + nonKeywords.forEach((keyword) => { + let fragmentName = keyword; + // You can't define or reference a fragment named `on`. + if (keyword === 'on') { + fragmentName = 'a'; + } + expect(() => { + parse(`query ${keyword} { + ... ${fragmentName} + ... on ${keyword} { field } +} +fragment ${fragmentName} on Type { + ${keyword}(${keyword}: $${keyword}) @${keyword}(${keyword}: ${keyword}) +}` + ); + }).to.not.throw(); + }); + }); + it('parse creates ast', () => { var source = new Source(`{