Discovered while working on #2742.
If schema is:
type Query {
public: String
person: Person
}
interface Person {
name: String
}
type Admin implements Person @authenticated {
name: String
email: String
}
then
{
public
person {
... on Admin {
email
}
}
}
should return:
{
"data": {
"public": "public",
"person": {
"email": null
}
}
}
and not:
{
"data": {
"public": "public",
"person": []
}
}
also:
{
public
person {
...A
}
}
fragment A on Admin {
email
}
should also return:
{
"data": {
"public": "public",
"person": {
"email": null
}
},
"errors": [
{
"message": "Unauthorized field or type",
"path": ["person", "email"]
}
]
}
but it returns
{
"data": {
"public": "public",
"person": {},
"email": null
},
"errors": [
{
"message": "Unauthorized field or type",
"path": ["email"]
}
]
}