diff --git a/src/__fixtures__/index.js b/src/__fixtures__/index.js index a92dcce87c..e198ea5963 100644 --- a/src/__fixtures__/index.js +++ b/src/__fixtures__/index.js @@ -18,3 +18,6 @@ export const bigSchemaSDL = readLocalFile('github-schema.graphql'); export const bigSchemaIntrospectionResult = JSON.parse( readLocalFile('github-schema.json'), ); + +export const kitchenSinkSDL = readLocalFile('schema-kitchen-sink.graphql'); +export const kitchenSinkQuery = readLocalFile('kitchen-sink.graphql'); diff --git a/src/language/__tests__/kitchen-sink.graphql b/src/__fixtures__/kitchen-sink.graphql similarity index 100% rename from src/language/__tests__/kitchen-sink.graphql rename to src/__fixtures__/kitchen-sink.graphql diff --git a/src/language/__tests__/schema-kitchen-sink.graphql b/src/__fixtures__/schema-kitchen-sink.graphql similarity index 100% rename from src/language/__tests__/schema-kitchen-sink.graphql rename to src/__fixtures__/schema-kitchen-sink.graphql diff --git a/src/language/__tests__/parser-benchmark.js b/src/language/__tests__/parser-benchmark.js index 59e830080a..9968cc022c 100644 --- a/src/language/__tests__/parser-benchmark.js +++ b/src/language/__tests__/parser-benchmark.js @@ -7,15 +7,10 @@ * @flow strict */ -import { join } from 'path'; -import { readFileSync } from 'fs'; +import { kitchenSinkQuery } from '../../__fixtures__'; import { parse } from '../parser'; -const kitchenSink = readFileSync(join(__dirname, '/kitchen-sink.graphql'), { - encoding: 'utf8', -}); - export const name = 'Parse kitchen sink'; export function measure() { - parse(kitchenSink); + parse(kitchenSinkQuery); } diff --git a/src/language/__tests__/parser-test.js b/src/language/__tests__/parser-test.js index 2a0ca0996d..b33dd3bd5a 100644 --- a/src/language/__tests__/parser-test.js +++ b/src/language/__tests__/parser-test.js @@ -8,18 +8,17 @@ */ import { inspect as nodeInspect } from 'util'; -import { readFileSync } from 'fs'; -import { join } from 'path'; -import { Kind } from '../kinds'; import { expect } from 'chai'; import { describe, it } from 'mocha'; +import { Kind } from '../kinds'; import { TokenKind } from '../lexer'; import { parse, parseValue, parseType } from '../parser'; import { Source } from '../source'; import dedent from '../../jsutils/dedent'; import inspect from '../../jsutils/inspect'; import toJSONDeep from './toJSONDeep'; +import { kitchenSinkQuery } from '../../__fixtures__'; function expectSyntaxError(text, message, location) { expect(() => parse(text)) @@ -145,12 +144,8 @@ describe('Parser', () => { ); }); - const kitchenSink = readFileSync(join(__dirname, '/kitchen-sink.graphql'), { - encoding: 'utf8', - }); - it('parses kitchen sink', () => { - expect(() => parse(kitchenSink)).to.not.throw(); + expect(() => parse(kitchenSinkQuery)).to.not.throw(); }); it('allows non-keywords anywhere a Name is allowed', () => { diff --git a/src/language/__tests__/printer-test.js b/src/language/__tests__/printer-test.js index e03971132e..732a76b7b3 100644 --- a/src/language/__tests__/printer-test.js +++ b/src/language/__tests__/printer-test.js @@ -10,18 +10,13 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; import { parse } from '../parser'; -import { readFileSync } from 'fs'; import { print } from '../printer'; -import { join } from 'path'; import dedent from '../../jsutils/dedent'; +import { kitchenSinkQuery } from '../../__fixtures__'; describe('Printer: Query document', () => { - const kitchenSink = readFileSync(join(__dirname, '/kitchen-sink.graphql'), { - encoding: 'utf8', - }); - it('does not alter ast', () => { - const ast = parse(kitchenSink); + const ast = parse(kitchenSinkQuery); const astBefore = JSON.stringify(ast); print(ast); expect(JSON.stringify(ast)).to.equal(astBefore); @@ -168,9 +163,7 @@ describe('Printer: Query document', () => { }); it('prints kitchen sink', () => { - const ast = parse(kitchenSink); - - const printed = print(ast); + const printed = print(parse(kitchenSinkQuery)); expect(printed).to.equal( dedent(String.raw` diff --git a/src/language/__tests__/schema-parser-test.js b/src/language/__tests__/schema-parser-test.js index 058b7b0ba4..dbad66b709 100644 --- a/src/language/__tests__/schema-parser-test.js +++ b/src/language/__tests__/schema-parser-test.js @@ -12,6 +12,7 @@ import { describe, it } from 'mocha'; import dedent from '../../jsutils/dedent'; import { parse } from '../parser'; import toJSONDeep from './toJSONDeep'; +import { kitchenSinkSDL } from '../../__fixtures__'; function expectSyntaxError(text, message, location) { expect(() => parse(text)) @@ -823,6 +824,10 @@ input Hello { ); }); + it('parses kitchen sink schema', () => { + expect(() => parse(kitchenSinkSDL)).to.not.throw(); + }); + it('Option: allowLegacySDLEmptyFields supports type with empty fields', () => { const body = 'type Hello { }'; expect(() => parse(body)).to.throw('Syntax Error: Expected Name, found }'); diff --git a/src/language/__tests__/schema-printer-test.js b/src/language/__tests__/schema-printer-test.js index 59164c6329..df7738b98c 100644 --- a/src/language/__tests__/schema-printer-test.js +++ b/src/language/__tests__/schema-printer-test.js @@ -9,11 +9,10 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import { readFileSync } from 'fs'; -import { join } from 'path'; import { parse } from '../parser'; import { print } from '../printer'; import dedent from '../../jsutils/dedent'; +import { kitchenSinkSDL } from '../../__fixtures__'; describe('Printer: SDL document', () => { it('prints minimal ast', () => { @@ -31,22 +30,15 @@ describe('Printer: SDL document', () => { ); }); - const kitchenSink = readFileSync( - join(__dirname, '/schema-kitchen-sink.graphql'), - { encoding: 'utf8' }, - ); - it('does not alter ast', () => { - const ast = parse(kitchenSink); + const ast = parse(kitchenSinkSDL); const astBefore = JSON.stringify(ast); print(ast); expect(JSON.stringify(ast)).to.equal(astBefore); }); it('prints kitchen sink', () => { - const ast = parse(kitchenSink); - - const printed = print(ast); + const printed = print(parse(kitchenSinkSDL)); expect(printed).to.equal(dedent` schema { diff --git a/src/language/__tests__/visitor-test.js b/src/language/__tests__/visitor-test.js index 9ecb36cdf8..fc3b2ee214 100644 --- a/src/language/__tests__/visitor-test.js +++ b/src/language/__tests__/visitor-test.js @@ -11,13 +11,12 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; import { parse } from '../parser'; import { print } from '../printer'; -import { readFileSync } from 'fs'; import { visit, visitInParallel, visitWithTypeInfo, BREAK } from '../visitor'; -import { join } from 'path'; import { TypeInfo } from '../../utilities/TypeInfo'; import { testSchema } from '../../validation/__tests__/harness'; import { getNamedType, isCompositeType } from '../../type'; import { Kind } from '../kinds'; +import { kitchenSinkQuery } from '../../__fixtures__'; function getNodeByPath(ast, path) { let result = ast; @@ -464,11 +463,7 @@ describe('Visitor', () => { }); it('visits kitchen sink', () => { - const kitchenSink = readFileSync(join(__dirname, '/kitchen-sink.graphql'), { - encoding: 'utf8', - }); - const ast = parse(kitchenSink); - + const ast = parse(kitchenSinkQuery); const visited = []; visit(ast, {