代码拉取完成,页面将自动刷新
package graphql_test
import (
"testing"
"github.com/graphql-go/graphql"
"github.com/graphql-go/graphql/gqlerrors"
"github.com/graphql-go/graphql/testutil"
)
func TestValidate_PossibleFragmentSpreads_OfTheSameObject(t *testing.T) {
testutil.ExpectPassesRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment objectWithinObject on Dog { ...dogFragment }
fragment dogFragment on Dog { barkVolume }
`)
}
func TestValidate_PossibleFragmentSpreads_OfTheSameObjectWithInlineFragment(t *testing.T) {
testutil.ExpectPassesRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment objectWithinObjectAnon on Dog { ... on Dog { barkVolume } }
`)
}
func TestValidate_PossibleFragmentSpreads_ObjectIntoAnImplementedInterface(t *testing.T) {
testutil.ExpectPassesRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment objectWithinInterface on Pet { ...dogFragment }
fragment dogFragment on Dog { barkVolume }
`)
}
func TestValidate_PossibleFragmentSpreads_ObjectIntoContainingUnion(t *testing.T) {
testutil.ExpectPassesRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment objectWithinUnion on CatOrDog { ...dogFragment }
fragment dogFragment on Dog { barkVolume }
`)
}
func TestValidate_PossibleFragmentSpreads_UnionIntoContainedObject(t *testing.T) {
testutil.ExpectPassesRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment unionWithinObject on Dog { ...catOrDogFragment }
fragment catOrDogFragment on CatOrDog { __typename }
`)
}
func TestValidate_PossibleFragmentSpreads_UnionIntoOverlappingInterface(t *testing.T) {
testutil.ExpectPassesRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment unionWithinInterface on Pet { ...catOrDogFragment }
fragment catOrDogFragment on CatOrDog { __typename }
`)
}
func TestValidate_PossibleFragmentSpreads_UnionIntoOverlappingUnion(t *testing.T) {
testutil.ExpectPassesRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment unionWithinUnion on DogOrHuman { ...catOrDogFragment }
fragment catOrDogFragment on CatOrDog { __typename }
`)
}
func TestValidate_PossibleFragmentSpreads_InterfaceIntoImplementedObject(t *testing.T) {
testutil.ExpectPassesRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment interfaceWithinObject on Dog { ...petFragment }
fragment petFragment on Pet { name }
`)
}
func TestValidate_PossibleFragmentSpreads_InterfaceIntoOverlappingInterface(t *testing.T) {
testutil.ExpectPassesRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment interfaceWithinInterface on Pet { ...beingFragment }
fragment beingFragment on Being { name }
`)
}
func TestValidate_PossibleFragmentSpreads_InterfaceIntoOverlappingInterfaceInInlineFragment(t *testing.T) {
testutil.ExpectPassesRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment interfaceWithinInterface on Pet { ... on Being { name } }
`)
}
func TestValidate_PossibleFragmentSpreads_InterfaceIntoOverlappingUnion(t *testing.T) {
testutil.ExpectPassesRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment interfaceWithinUnion on CatOrDog { ...petFragment }
fragment petFragment on Pet { name }
`)
}
func TestValidate_PossibleFragmentSpreads_DifferentObjectIntoObject(t *testing.T) {
testutil.ExpectFailsRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment invalidObjectWithinObject on Cat { ...dogFragment }
fragment dogFragment on Dog { barkVolume }
`, []gqlerrors.FormattedError{
testutil.RuleError(`Fragment "dogFragment" cannot be spread here as objects of `+
`type "Cat" can never be of type "Dog".`, 2, 51),
})
}
func TestValidate_PossibleFragmentSpreads_DifferentObjectIntoObjectInInlineFragment(t *testing.T) {
testutil.ExpectFailsRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment invalidObjectWithinObjectAnon on Cat {
... on Dog { barkVolume }
}
`, []gqlerrors.FormattedError{
testutil.RuleError(`Fragment cannot be spread here as objects of `+
`type "Cat" can never be of type "Dog".`, 3, 9),
})
}
func TestValidate_PossibleFragmentSpreads_ObjectIntoNotImplementingInterface(t *testing.T) {
testutil.ExpectFailsRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment invalidObjectWithinInterface on Pet { ...humanFragment }
fragment humanFragment on Human { pets { name } }
`, []gqlerrors.FormattedError{
testutil.RuleError(`Fragment "humanFragment" cannot be spread here as objects of `+
`type "Pet" can never be of type "Human".`, 2, 54),
})
}
func TestValidate_PossibleFragmentSpreads_ObjectIntoNotContainingUnion(t *testing.T) {
testutil.ExpectFailsRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment invalidObjectWithinUnion on CatOrDog { ...humanFragment }
fragment humanFragment on Human { pets { name } }
`, []gqlerrors.FormattedError{
testutil.RuleError(`Fragment "humanFragment" cannot be spread here as objects of `+
`type "CatOrDog" can never be of type "Human".`, 2, 55),
})
}
func TestValidate_PossibleFragmentSpreads_UnionIntoNotContainedObject(t *testing.T) {
testutil.ExpectFailsRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment invalidUnionWithinObject on Human { ...catOrDogFragment }
fragment catOrDogFragment on CatOrDog { __typename }
`, []gqlerrors.FormattedError{
testutil.RuleError(`Fragment "catOrDogFragment" cannot be spread here as objects of `+
`type "Human" can never be of type "CatOrDog".`, 2, 52),
})
}
func TestValidate_PossibleFragmentSpreads_UnionIntoNonOverlappingInterface(t *testing.T) {
testutil.ExpectFailsRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment invalidUnionWithinInterface on Pet { ...humanOrAlienFragment }
fragment humanOrAlienFragment on HumanOrAlien { __typename }
`, []gqlerrors.FormattedError{
testutil.RuleError(`Fragment "humanOrAlienFragment" cannot be spread here as objects of `+
`type "Pet" can never be of type "HumanOrAlien".`, 2, 53),
})
}
func TestValidate_PossibleFragmentSpreads_UnionIntoNonOverlappingUnion(t *testing.T) {
testutil.ExpectFailsRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment invalidUnionWithinUnion on CatOrDog { ...humanOrAlienFragment }
fragment humanOrAlienFragment on HumanOrAlien { __typename }
`, []gqlerrors.FormattedError{
testutil.RuleError(`Fragment "humanOrAlienFragment" cannot be spread here as objects of `+
`type "CatOrDog" can never be of type "HumanOrAlien".`, 2, 54),
})
}
func TestValidate_PossibleFragmentSpreads_InterfaceIntoNonImplementingObject(t *testing.T) {
testutil.ExpectFailsRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment invalidInterfaceWithinObject on Cat { ...intelligentFragment }
fragment intelligentFragment on Intelligent { iq }
`, []gqlerrors.FormattedError{
testutil.RuleError(`Fragment "intelligentFragment" cannot be spread here as objects of `+
`type "Cat" can never be of type "Intelligent".`, 2, 54),
})
}
func TestValidate_PossibleFragmentSpreads_InterfaceIntoNonOverlappingInterface(t *testing.T) {
testutil.ExpectFailsRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment invalidInterfaceWithinInterface on Pet {
...intelligentFragment
}
fragment intelligentFragment on Intelligent { iq }
`, []gqlerrors.FormattedError{
testutil.RuleError(`Fragment "intelligentFragment" cannot be spread here as objects of `+
`type "Pet" can never be of type "Intelligent".`, 3, 9),
})
}
func TestValidate_PossibleFragmentSpreads_InterfaceIntoNonOverlappingInterfaceInInlineFragment(t *testing.T) {
testutil.ExpectFailsRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment invalidInterfaceWithinInterfaceAnon on Pet {
...on Intelligent { iq }
}
`, []gqlerrors.FormattedError{
testutil.RuleError(`Fragment cannot be spread here as objects of `+
`type "Pet" can never be of type "Intelligent".`, 3, 9),
})
}
func TestValidate_PossibleFragmentSpreads_InterfaceIntoNonOverlappingUnion(t *testing.T) {
testutil.ExpectFailsRule(t, graphql.PossibleFragmentSpreadsRule, `
fragment invalidInterfaceWithinUnion on HumanOrAlien { ...petFragment }
fragment petFragment on Pet { name }
`, []gqlerrors.FormattedError{
testutil.RuleError(`Fragment "petFragment" cannot be spread here as objects of `+
`type "HumanOrAlien" can never be of type "Pet".`, 2, 62),
})
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。