Skip to content

Commit

Permalink
Test that SchemaDirectiveVisitor can be used as a no-op visitor.
Browse files Browse the repository at this point in the history
  • Loading branch information
benjamn committed Mar 14, 2018
1 parent 72d1cd5 commit 00786cb
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions src/test/testDirectives.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ enum Gender @enumTypeDirective {
MALE
}
scalar Date @dateDirective(tz: "utc")
interface Named @interfaceDirective {
name: String! @interfaceFieldDirective
}
Expand Down Expand Up @@ -108,6 +110,8 @@ describe('@directives', () => {
['enumValueDirective'],
);

checkDirectives(schema.getType('Date'), ['dateDirective']);

checkDirectives(schema.getType('Named'), ['interfaceDirective'], {
name: ['interfaceFieldDirective'],
});
Expand Down Expand Up @@ -230,6 +234,32 @@ describe('@directives', () => {
});
});

it('can use SchemaDirectiveVisitor as a no-op visitor', () => {
const schema = makeExecutableSchema({ typeDefs });

// Since SchemaDirectiveVisitor implements no-op versions of all the
// visitor methods, this should work, though I'll admit I wrote this test
// partly to keep the code coverage tool happy.
SchemaDirectiveVisitor.visitSchema(schema, {
schemaDirective: SchemaDirectiveVisitor,
queryTypeDirective: SchemaDirectiveVisitor,
queryFieldDirective: SchemaDirectiveVisitor,
enumTypeDirective: SchemaDirectiveVisitor,
enumValueDirective: SchemaDirectiveVisitor,
dateDirective: SchemaDirectiveVisitor,
interfaceDirective: SchemaDirectiveVisitor,
interfaceFieldDirective: SchemaDirectiveVisitor,
inputTypeDirective: SchemaDirectiveVisitor,
inputFieldDirective: SchemaDirectiveVisitor,
mutationTypeDirective: SchemaDirectiveVisitor,
mutationArgumentDirective: SchemaDirectiveVisitor,
mutationMethodDirective: SchemaDirectiveVisitor,
objectTypeDirective: SchemaDirectiveVisitor,
objectFieldDirective: SchemaDirectiveVisitor,
unionDirective: SchemaDirectiveVisitor,
});
});

it('can handle all kinds of undeclared arguments', () => {
const schemaText = `
enum SpineEnum {
Expand Down

0 comments on commit 00786cb

Please sign in to comment.