public void DisallowedSecondRootFieldWithinDirective() { // arrange Schema schema = ValidationUtils.CreateSchema(); DocumentNode query = Parser.Default.Parse(@" subscription sub { ...multipleSubscriptions } fragment multipleSubscriptions on Subscription { newMessage { body sender } disallowedSecondRootField } "); // act var validator = new SubscriptionSingleRootFieldRule(); QueryValidationResult result = validator.Validate(schema, query); // assert Assert.True(result.HasErrors); Assert.Collection(result.Errors, t => Assert.Equal( $"Subscription operation `sub` must " + "have exactly one root field.", t.Message)); }
public void DisallowedIntrospectionField() { // arrange Schema schema = ValidationUtils.CreateSchema(); DocumentNode query = Parser.Default.Parse(@" subscription sub { newMessage { body sender } __typename } "); // act var validator = new SubscriptionSingleRootFieldRule(); QueryValidationResult result = validator.Validate(schema, query); // assert Assert.True(result.HasErrors); Assert.Collection(result.Errors, t => Assert.Equal( $"Subscription operation `sub` must " + "have exactly one root field.", t.Message)); }
public void SubscriptionWithOneRootField() { // arrange Schema schema = ValidationUtils.CreateSchema(); DocumentNode query = Parser.Default.Parse(@" subscription sub { newMessage { body sender } } "); // act var validator = new SubscriptionSingleRootFieldRule(); QueryValidationResult result = validator.Validate(schema, query); // assert Assert.False(result.HasErrors); }