-
Notifications
You must be signed in to change notification settings - Fork 109
Closed
Description
Issue workflow progress
Progress of the issue based on the
Contributor Workflow
- 1. The issue provides a reproduction available on GitHub, Stackblitz or CodeSandbox
- 2. A failing test has been provided
- 3. A local solution has been provided
- 4. A pull request is pending review
Describe the bug
require-selections handles only InlineFragment spreads with GraphQLUnionTypes, despite named FragmentSpreads being valid GraphQL that should receive the same treatment.
To Reproduce
Steps to reproduce the behavior:
The failing test in the linked PR provides the best example for the bug (see commit that adds that test), but a simplified schema is reproduced below:
type User {
id: ID
name: String
posts: [Post]
}
type Post {
id: ID
title: String
author: [User!]!
}
type Query {
user: User
userOrPost: UserOrPost
}
union UserOrPost = User | Post
fragment UnionFragment on UserOrPost {
...UserFields
}
fragment UserFields on User {
name
}
query {
userOrPost {
# no error is reported here, even though `...UnionFragment` does not select `id`
...UnionFragment
}
}Expected behavior
An error should be reported for FragmentSpread just like it is for InlineFragments within GraphQLUnionTypes.
Environment:
@graphql-eslint/eslint-plugin: 4.0.0
Metadata
Metadata
Assignees
Labels
No labels