Skip to content

Commit 0a98379

Browse files
buildSchema/extendSchema: test standard scalars (#1810)
Background: 183ff32#r32971387
1 parent d2ffd7c commit 0a98379

File tree

2 files changed

+71
-0
lines changed

2 files changed

+71
-0
lines changed

src/utilities/__tests__/buildASTSchema-test.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ import {
2525
assertScalarType,
2626
graphqlSync,
2727
validateSchema,
28+
GraphQLID,
29+
GraphQLInt,
30+
GraphQLFloat,
31+
GraphQLString,
32+
GraphQLBoolean,
2833
GraphQLSkipDirective,
2934
GraphQLIncludeDirective,
3035
GraphQLDeprecatedDirective,
@@ -94,6 +99,26 @@ describe('Schema Builder', () => {
9499
}
95100
`;
96101
expect(cycleSDL(sdl)).to.equal(sdl);
102+
103+
const schema = buildSchema(sdl);
104+
// Built-ins are used
105+
expect(schema.getType('Int')).to.equal(GraphQLInt);
106+
expect(schema.getType('Float')).to.equal(GraphQLFloat);
107+
expect(schema.getType('String')).to.equal(GraphQLString);
108+
expect(schema.getType('Boolean')).to.equal(GraphQLBoolean);
109+
expect(schema.getType('ID')).to.equal(GraphQLID);
110+
});
111+
112+
it('include standard type only if it is used', () => {
113+
const schema = buildSchema(`
114+
type Query {
115+
str: String
116+
}
117+
`);
118+
119+
expect(schema.getType('Int')).to.equal(undefined);
120+
expect(schema.getType('Float')).to.equal(undefined);
121+
expect(schema.getType('ID')).to.equal(undefined);
97122
});
98123

99124
it('With directives', () => {

src/utilities/__tests__/extendSchema-test.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { describe, it } from 'mocha';
1111
import { expect } from 'chai';
1212
import dedent from '../../jsutils/dedent';
1313
import invariant from '../../jsutils/invariant';
14+
import { buildSchema } from '../buildASTSchema';
1415
import { extendSchema } from '../extendSchema';
1516
import { parse, print, DirectiveLocation } from '../../language';
1617
import { printSchema } from '../schemaPrinter';
@@ -30,7 +31,10 @@ import {
3031
GraphQLInterfaceType,
3132
GraphQLUnionType,
3233
GraphQLID,
34+
GraphQLInt,
35+
GraphQLFloat,
3336
GraphQLString,
37+
GraphQLBoolean,
3438
GraphQLEnumType,
3539
GraphQLInputObjectType,
3640
GraphQLNonNull,
@@ -266,6 +270,48 @@ describe('extendSchema', () => {
266270
expect(queryType.getFields().foo).to.include({ type: fooType });
267271
});
268272

273+
it('extends objects with standard type fields', () => {
274+
const schema = buildSchema(`
275+
type Query {
276+
str: String
277+
}
278+
`);
279+
280+
expect(schema.getType('Int')).to.equal(undefined);
281+
expect(schema.getType('Float')).to.equal(undefined);
282+
expect(schema.getType('String')).to.equal(GraphQLString);
283+
expect(schema.getType('Boolean')).to.equal(GraphQLBoolean);
284+
expect(schema.getType('ID')).to.equal(undefined);
285+
286+
const extendAST = parse(`
287+
extend type Query {
288+
bool: Boolean
289+
}
290+
`);
291+
const extendedSchema = extendSchema(schema, extendAST);
292+
293+
expect(extendedSchema.getType('Int')).to.equal(undefined);
294+
expect(extendedSchema.getType('Float')).to.equal(undefined);
295+
expect(extendedSchema.getType('String')).to.equal(GraphQLString);
296+
expect(extendedSchema.getType('Boolean')).to.equal(GraphQLBoolean);
297+
expect(extendedSchema.getType('ID')).to.equal(undefined);
298+
299+
const extendTwiceAST = parse(`
300+
extend type Query {
301+
int: Int
302+
float: Float
303+
id: ID
304+
}
305+
`);
306+
const extendedTwiceSchema = extendSchema(schema, extendTwiceAST);
307+
308+
expect(extendedTwiceSchema.getType('Int')).to.equal(GraphQLInt);
309+
expect(extendedTwiceSchema.getType('Float')).to.equal(GraphQLFloat);
310+
expect(extendedTwiceSchema.getType('String')).to.equal(GraphQLString);
311+
expect(extendedTwiceSchema.getType('Boolean')).to.equal(GraphQLBoolean);
312+
expect(extendedTwiceSchema.getType('ID')).to.equal(GraphQLID);
313+
});
314+
269315
it('extends enums by adding new values', () => {
270316
const extendedSchema = extendTestSchema(`
271317
extend enum SomeEnum {

0 commit comments

Comments
 (0)