You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
'Abstract type "Pet" must resolve to an Object type at runtime for field "Query.pet". Either the "Pet" type should provide a "resolveType" function or each possible type should provide an "isTypeOf" function.',
274
+
'Abstract type resolution for "Pet" for field "Query.pet" failed. Encountered abstract type "Pet" must resolve to an Object or Interface type at runtime. Either the "Pet" type should provide a "resolveType" function or each possible type should provide an "isTypeOf" function.',
'Abstract type "Pet" must resolve to an Object type at runtime for field "Query.pet". Either the "Pet" type should provide a "resolveType" function or each possible type should provide an "isTypeOf" function.',
613
+
'Abstract type resolution for "Pet" for field "Query.pet" failed. Encountered abstract type "Pet" must resolve to an Object or Interface type at runtime. Either the "Pet" type should provide a "resolveType" function or each possible type should provide an "isTypeOf" function.',
614
614
);
615
615
616
616
expectError({forTypeName: 'Human'}).toEqual(
617
-
'Abstract type "Pet" was resolved to a type "Human" that does not exist inside the schema.',
617
+
'Abstract type resolution for "Pet" for field "Query.pet" failed. Encountered abstract type "Pet" was resolved to a type "Human" that does not exist inside the schema.',
618
618
);
619
619
620
620
expectError({forTypeName: 'String'}).toEqual(
621
-
'Abstract type "Pet" was resolved to a non-object type "String".',
621
+
'Abstract type resolution for "Pet" for field "Query.pet" failed. Encountered abstract type "Pet" was resolved to a non-object type "String".',
622
622
);
623
623
624
624
expectError({forTypeName: '__Schema'}).toEqual(
625
-
'Runtime Object type "__Schema" is not a possible type for "Pet".',
625
+
'Abstract type resolution for "Pet" for field "Query.pet" failed. Runtime Object type "__Schema" is not a possible type for encountered abstract type "Pet".',
626
626
);
627
627
628
628
// FIXME: workaround since we can't inject resolveType into SDL
'Abstract type "Pet" must resolve to an Object type at runtime for field "Query.pet" with value { __typename: undefined }, received "[]".',
632
+
'Abstract type resolution for "Pet" for field "Query.pet" with value { __typename: undefined } failed. Encountered abstract type "Pet" must resolve to an Object or Interface type at runtime, received "[]".',
633
633
);
634
634
635
635
// FIXME: workaround since we can't inject resolveType into SDL
'Abstract type resolution for "Named" for field "Query.named" failed. Interface type "Animal" is not a subtype of encountered interface type "Named".',
705
+
);
706
+
707
+
// FIXME: workaround since we can't inject resolveType into SDL
'Abstract type resolution for "Named" for field "Query.named" failed. Encountered abstract type "Pet" must resolve to an Object or Interface type at runtime. Either the "Pet" type should provide a "resolveType" function or each possible type should provide an "isTypeOf" function.',
712
+
);
713
+
714
+
// FIXME: workaround since we can't inject resolveType into SDL
'Abstract type resolution for "Named" for field "Query.named" failed. Encountered abstract type "Pet" was resolved to a type "Human" that does not exist inside the schema.',
718
+
);
719
+
720
+
// FIXME: workaround since we can't inject resolveType into SDL
'Abstract type resolution for "Named" for field "Query.named" failed. Runtime Object type "__Schema" is not a possible type for encountered abstract type "Pet".',
730
+
);
731
+
732
+
// FIXME: workaround since we can't inject resolveType into SDL
'Abstract type resolution for "Named" for field "Query.named" with value {} failed. Encountered abstract type "Pet" must resolve to an Object or Interface type at runtime, received "[]".',
737
+
);
738
+
739
+
// FIXME: workaround since we can't inject resolveType into SDL
`Abstract type "${returnType.name}" must resolve to an Object type at runtime for field "${info.parentType.name}.${info.fieldName}". Either the "${returnType.name}" type should provide a "resolveType" function or each possible type should provide an "isTypeOf" function.`,
888
+
`Abstract type resolution for "${returnType.name}" for field "${info.parentType.name}.${info.fieldName}" failed. `+
889
+
`Encountered abstract type "${abstractType.name}" must resolve to an Object or Interface type at runtime. `+
890
+
`Either the "${abstractType.name}" type should provide a "resolveType" function or each possible type should provide an "isTypeOf" function.`,
851
891
{nodes: fieldNodes},
852
892
);
853
893
}
@@ -862,29 +902,62 @@ function ensureValidRuntimeType(
862
902
863
903
if(typeofruntimeTypeName!=='string'){
864
904
thrownewGraphQLError(
865
-
`Abstract type "${returnType.name}" must resolve to an Object type at runtime for field "${info.parentType.name}.${info.fieldName}" with `+
866
-
`value ${inspect(result)}, received "${inspect(runtimeTypeName)}".`,
905
+
`Abstract type resolution for "${returnType.name}" for field "${info.parentType.name}.${info.fieldName}" `+
906
+
`with value ${inspect(result)} failed. `+
907
+
`Encountered abstract type "${abstractType.name}" must resolve to an Object or Interface type at runtime, `+
908
+
`received "${inspect(runtimeTypeName)}".`,
909
+
);
910
+
}
911
+
912
+
if(encounteredTypeNames.has(runtimeTypeName)){
913
+
thrownewGraphQLError(
914
+
`Abstract type resolution for "${returnType.name}" for field "${info.parentType.name}.${info.fieldName}" failed. `+
915
+
`Encountered abstract type "${abstractType.name}" resolved to "${runtimeTypeName}", causing a cycle.`,
0 commit comments