From 934ce6db01732a455902e2c7c5b22c5685ab6177 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Tue, 8 Jun 2021 12:20:18 +0300 Subject: [PATCH] SingleFieldSubscriptionsRule-test: extact test schema from harness --- .../SingleFieldSubscriptionsRule-test.ts | 45 ++++++++++++++++--- src/validation/__tests__/harness.ts | 25 ----------- 2 files changed, 39 insertions(+), 31 deletions(-) diff --git a/src/validation/__tests__/SingleFieldSubscriptionsRule-test.ts b/src/validation/__tests__/SingleFieldSubscriptionsRule-test.ts index e8d9d1c8c3..bc31d7d66d 100644 --- a/src/validation/__tests__/SingleFieldSubscriptionsRule-test.ts +++ b/src/validation/__tests__/SingleFieldSubscriptionsRule-test.ts @@ -1,21 +1,48 @@ import { describe, it } from 'mocha'; +import { buildSchema } from '../../utilities/buildASTSchema'; + import { SingleFieldSubscriptionsRule } from '../rules/SingleFieldSubscriptionsRule'; -import { - expectValidationErrors, - expectValidationErrorsWithSchema, - emptySchema, -} from './harness'; +import { expectValidationErrorsWithSchema } from './harness'; function expectErrors(queryStr: string) { - return expectValidationErrors(SingleFieldSubscriptionsRule, queryStr); + return expectValidationErrorsWithSchema( + schema, + SingleFieldSubscriptionsRule, + queryStr, + ); } function expectValid(queryStr: string) { expectErrors(queryStr).to.deep.equal([]); } +const schema = buildSchema(` + type Message { + body: String + sender: String + } + + type SubscriptionRoot { + importantEmails: [String] + notImportantEmails: [String] + moreImportantEmails: [String] + spamEmails: [String] + deletedEmails: [String] + newMessage: Message + } + + type QueryRoot { + dummy: String + } + + schema { + query: QueryRoot + subscription: SubscriptionRoot + } +`); + describe('Validate: Subscriptions with single field', () => { it('valid subscription', () => { expectValid(` @@ -260,6 +287,12 @@ describe('Validate: Subscriptions with single field', () => { }); it('skips if not subscription type', () => { + const emptySchema = buildSchema(` + type Query { + dummy: String + } + `); + expectValidationErrorsWithSchema( emptySchema, SingleFieldSubscriptionsRule, diff --git a/src/validation/__tests__/harness.ts b/src/validation/__tests__/harness.ts index 0e29384035..711ea91a6e 100644 --- a/src/validation/__tests__/harness.ts +++ b/src/validation/__tests__/harness.ts @@ -130,23 +130,8 @@ export const testSchema: GraphQLSchema = buildSchema(` complicatedArgs: ComplicatedArgs } - type Message { - body: String - sender: String - } - - type SubscriptionRoot { - importantEmails: [String] - notImportantEmails: [String] - moreImportantEmails: [String] - spamEmails: [String] - deletedEmails: [String] - newMessage: Message - } - schema { query: QueryRoot - subscription: SubscriptionRoot } directive @onQuery on QUERY @@ -159,16 +144,6 @@ export const testSchema: GraphQLSchema = buildSchema(` directive @onVariableDefinition on VARIABLE_DEFINITION `); -export const emptySchema: GraphQLSchema = buildSchema(` - type QueryRoot { - empty: Boolean - } - - schema { - query: QueryRoot - } -`); - export function expectValidationErrorsWithSchema( schema: GraphQLSchema, rule: ValidationRule,