From ab3909e384a362087c6b64aea1965059a933bbb0 Mon Sep 17 00:00:00 2001 From: Tobias Tengler <45513122+tobias-tengler@users.noreply.github.com> Date: Mon, 4 Mar 2024 22:25:10 +0100 Subject: [PATCH] Convert Fusion Snapshots to Markdown (#6770) --- .../src/CookieCrumble/CookieCrumble.csproj | 1 + .../Extensions/SnapshotExtensions.cs | 5 +- .../JsonElementSnapshotValueFormatter.cs | 16 +- .../QueryPlanSnapshotValueFormatter.cs | 6 +- .../SchemaSnapshotValueFormatter.cs | 12 +- .../SkimmedSchemaSnapshotValueFormatter.cs | 13 ++ .../Formatters/SnapshotValueFormatter.cs | 7 +- .../src/CookieCrumble/Snapshot.cs | 58 +++++- .../CommandLine.Tests/ComposeCommandTests.cs | 16 +- ...mposeCommandTests.Compose_Fusion_Graph.md} | 30 ++- ...s.Compose_Fusion_Graph_Append_Subgraph.md} | 41 ++-- ...s.Compose_Fusion_Graph_Remove_Subgraph.md} | 30 ++- ...mandTests.Compose_Loose_Subgraph_Files.md} | 24 ++- ...> ComposeCommandTests.Compose_With_Tag.md} | 24 ++- ...HelperTests.Create_Extract_Extensions.snap | 2 + ...geHelperTests.Create_Subgraph_Package.snap | 2 + .../Composition.Tests/DemoIntegrationTests.cs | 26 +-- ...egrationTests.Accounts_And_Reviews.graphql | 4 + ...s_And_Reviews2_Products_With_Nodes.graphql | 6 + ...ccounts_And_Reviews_Infer_Patterns.graphql | 4 + ...ests.Accounts_And_Reviews_Products.graphql | 4 + ...ews_Products_AutoCompose_With_Node.graphql | 4 + ...ts_And_Reviews_Products_With_Nodes.graphql | 4 + ...uire_Scalar_Arguments_No_Overloads.graphql | 4 + ...o_Not_Expose_Tags_On_Public_Schema.graphql | 4 + ....Exclude_Subgraphs_With_Review_Tag.graphql | 4 + ...e_System_Members_With_Internal_Tag.graphql | 4 + ...With_Internal_Tag_Which_Is_Private.graphql | 4 + ...Tests.Expose_Tags_On_Public_Schema.graphql | 4 + .../Core.Tests/ConfigurationRewriterTests.cs | 2 +- .../Fusion/test/Core.Tests/DataTests.cs | 2 +- .../test/Core.Tests/DemoIntegrationTests.cs | 68 +++--- .../Fusion/test/Core.Tests/ErrorTests.cs | 14 +- .../test/Core.Tests/EventStreamTests.cs | 2 +- .../Fusion/test/Core.Tests/FileUploadTests.cs | 8 +- .../Fusion/test/Core.Tests/InterfaceTests.cs | 6 +- .../test/Core.Tests/IntrospectionTests.cs | 2 +- .../test/Core.Tests/RequestPlannerTests.cs | 70 +++---- .../Fusion/test/Core.Tests/TestHelper.cs | 8 +- .../Fusion/test/Core.Tests/UnionTests.cs | 8 +- ...Tests.Rewrite_HttpClient_Configuration.md} | 23 +- ... DataTests.Fetch_Data_Across_Subgraphs.md} | 64 +++--- ...d_Reviews_And_Products_AutoCompose.graphql | 6 + ...And_Reviews_And_Products_Introspection.md} | 107 ++++++---- ...Reviews_And_Products_Query_TopProducts.md} | 112 +++++----- ...nd_Reviews_And_Products_Query_TypeName.md} | 114 +++++----- ...nd_Reviews_And_Products_With_Variables.md} | 68 +++--- ...ts.Authors_And_Reviews_AutoCompose.graphql | 6 + ...sts.Authors_And_Reviews_Batch_Requests.md} | 104 ++++++---- ....Authors_And_Reviews_Query_GetUserById.md} | 58 ++++-- ...uery_GetUserById_With_Invalid_Id_Value.md} | 64 +++--- ...thors_And_Reviews_Query_GetUserReviews.md} | 124 ++++++----- ...s_And_Reviews_Query_Reformat_AuthorIds.md} | 88 ++++---- ....Authors_And_Reviews_Query_ReviewsUser.md} | 168 ++++++++------- ...sts.Fetch_User_With_Invalid_Node_Field.md} | 82 +++++--- ...rationTests.Fetch_User_With_Node_Field.md} | 58 ++++-- ...ser_With_Node_Field_From_Two_Subgraphs.md} | 74 ++++--- ...User_With_Node_Field_Pass_In_Review_Id.md} | 54 +++-- ...ser_With_Node_Field_Pass_In_Unknown_Id.md} | 82 +++++--- ...ionTests.Forward_Nested_Node_Variables.md} | 60 ++++-- ...nTests.Forward_Nested_Object_Variables.md} | 68 +++--- ...egrationTests.Forward_Nested_Variables.md} | 60 ++++-- ...sts.Forward_Nested_Variables_No_OpName.md} | 60 ++++-- ...Variables_No_OpName_Two_RootSelections.md} | 68 +++--- ...tionTests.GetFirstPage_With_After_Null.md} | 66 +++--- ...nap => DemoIntegrationTests.Hot_Reload.md} | 23 +- ...allel_Multiple_SubGraphs_WithArguments.md} | 134 ++++++------ ...tegrationTests.Require_Data_In_Context.md} | 168 ++++++++------- ...grationTests.Require_Data_In_Context_2.md} | 160 +++++++------- ...grationTests.Require_Data_In_Context_3.md} | 196 ++++++++++-------- ...ationTests.TypeName_Field_On_QueryRoot.md} | 54 +++-- ...rTests.Accounts_Offline_Author_NonNull.md} | 54 +++-- ...Tests.Accounts_Offline_Author_Nullable.md} | 92 ++++---- ...s_Offline_Reviews_ListElement_Nullable.md} | 68 +++--- ... ErrorTests.NestedResolveSubgraphError.md} | 104 +++++----- ...sts.NestedResolveWithListSubgraphError.md} | 124 +++++------ ...> ErrorTests.ResolveByKeySubgraphError.md} | 138 ++++++------ ...rrorTests.TopLevelResolveSubgraphError.md} | 82 ++++---- ...s_And_Reviews_Subscription_OnNewReview.md} | 65 +++--- .../FileUploadTests.AutoCompose.graphql | 6 + ...ile.snap => FileUploadTests.UploadFile.md} | 58 ++++-- ...2.snap => FileUploadTests.UploadFile_2.md} | 58 ++++-- ...=> InterfaceTests.Query_Interface_List.md} | 74 ++++--- ...sts.Query_Interface_List_With_Fragment.md} | 76 ++++--- ...ery_Interface_List_With_Fragment_Fetch.md} | 76 ++++--- ...sts.ShortCircuit_RootTypeName_Requests.md} | 86 ++++---- ...p => RequestPlannerTests.Query_Plan_01.md} | 17 +- ...uestPlannerTests.Query_Plan_02_Aliases.md} | 17 +- ...rTests.Query_Plan_03_Argument_Literals.md} | 17 +- ...Tests.Query_Plan_04_Argument_Variables.md} | 17 +- ...nnerTests.Query_Plan_05_TypeName_Field.md} | 17 +- ...annerTests.Query_Plan_06_Introspection.md} | 17 +- ....Query_Plan_07_Introspection_And_Fetch.md} | 17 +- ...nerTests.Query_Plan_08_Single_Mutation.md} | 17 +- ...ery_Plan_09_Two_Mutation_Same_SubGraph.md} | 17 +- ...ery_Plan_10_Two_Mutation_Same_SubGraph.md} | 17 +- ...uery_Plan_11_Two_Mutation_Two_SubGraph.md} | 17 +- ...nnerTests.Query_Plan_12_Subscription_1.md} | 17 +- ...nnerTests.Query_Plan_13_Subscription_2.md} | 17 +- ...sts.Query_Plan_14_Node_Single_Fragment.md} | 17 +- ...ode_Single_Fragment_Multiple_Subgraphs.md} | 17 +- ....Query_Plan_16_Two_Node_Fields_Aliased.md} | 17 +- ...erTests.Query_Plan_17_Multi_Completion.md} | 17 +- ...ode_Single_Fragment_Multiple_Subgraphs.md} | 17 +- ...estPlannerTests.Query_Plan_19_Requires.md} | 17 +- ...stPlannerTests.Query_Plan_20_DeepQuery.md} | 17 +- ...an_21_Field_Requirement_Not_In_Context.md} | 17 +- ...tPlannerTests.Query_Plan_22_Interfaces.md} | 17 +- ...erTests.Query_Plan_23_Interfaces_Merge.md} | 17 +- ...ield_Requirement_And_Fields_In_Context.md} | 17 +- ...y_Plan_25_Variables_Are_Passed_Through.md} | 17 +- ...ircular_Dependency_When_Requiring_Data.md} | 17 +- ...tiple_Require_Steps_From_Same_Subgraph.md} | 17 +- ...erTests.Query_Plan_28_Simple_Root_Data.md} | 17 +- ...ts.Query_Plan_29_Simple_Root_List_Data.md} | 17 +- ...PlannerTests.Query_Plan_30_Entity_Data.md} | 17 +- ..._No_Value_Specified_With_Selection_Set.md} | 17 +- ...ry_Plan_32_Argument_No_Value_Specified.md} | 17 +- ...ent_Default_Value_Explicitly_Specified.md} | 17 +- ...4_Argument_Not_Default_Value_Specified.md} | 17 +- ...n_35_Argument_Value_Variable_Specified.md} | 17 +- ...Tests.Error_Union_With_Inline_Fragment.md} | 60 ++++-- ...n_With_Inline_Fragment_Errors_Not_Null.md} | 70 ++++--- ...> UnionTests.Error_Union_With_TypeName.md} | 60 ++++-- ...or_Union_With_TypeName_Errors_Not_Null.md} | 68 +++--- 125 files changed, 3027 insertions(+), 2113 deletions(-) create mode 100644 src/CookieCrumble/src/CookieCrumble/Formatters/SkimmedSchemaSnapshotValueFormatter.cs rename src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/{ComposeCommandTests.Compose_Fusion_Graph.snap => ComposeCommandTests.Compose_Fusion_Graph.md} (80%) rename src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/{ComposeCommandTests.Compose_Fusion_Graph_Append_Subgraph.snap => ComposeCommandTests.Compose_Fusion_Graph_Append_Subgraph.md} (86%) rename src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/{ComposeCommandTests.Compose_Fusion_Graph_Remove_Subgraph.snap => ComposeCommandTests.Compose_Fusion_Graph_Remove_Subgraph.md} (80%) rename src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/{ComposeCommandTests.Compose_Loose_Subgraph_Files.snap => ComposeCommandTests.Compose_Loose_Subgraph_Files.md} (95%) rename src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/{ComposeCommandTests.Compose_With_Tag.snap => ComposeCommandTests.Compose_With_Tag.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{ConfigurationRewriterTests.Rewrite_HttpClient_Configuration.snap => ConfigurationRewriterTests.Rewrite_HttpClient_Configuration.md} (95%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DataTests.Fetch_Data_Across_Subgraphs.snap => DataTests.Fetch_Data_Across_Subgraphs.md} (94%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Authors_And_Reviews_And_Products_Introspection.snap => DemoIntegrationTests.Authors_And_Reviews_And_Products_Introspection.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Authors_And_Reviews_And_Products_Query_TopProducts.snap => DemoIntegrationTests.Authors_And_Reviews_And_Products_Query_TopProducts.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Authors_And_Reviews_And_Products_Query_TypeName.snap => DemoIntegrationTests.Authors_And_Reviews_And_Products_Query_TypeName.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Authors_And_Reviews_And_Products_With_Variables.snap => DemoIntegrationTests.Authors_And_Reviews_And_Products_With_Variables.md} (95%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Authors_And_Reviews_Batch_Requests.snap => DemoIntegrationTests.Authors_And_Reviews_Batch_Requests.md} (95%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Authors_And_Reviews_Query_GetUserById.snap => DemoIntegrationTests.Authors_And_Reviews_Query_GetUserById.md} (94%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Authors_And_Reviews_Query_GetUserById_With_Invalid_Id_Value.snap => DemoIntegrationTests.Authors_And_Reviews_Query_GetUserById_With_Invalid_Id_Value.md} (93%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Authors_And_Reviews_Query_GetUserReviews.snap => DemoIntegrationTests.Authors_And_Reviews_Query_GetUserReviews.md} (95%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Authors_And_Reviews_Query_Reformat_AuthorIds.snap => DemoIntegrationTests.Authors_And_Reviews_Query_Reformat_AuthorIds.md} (95%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Authors_And_Reviews_Query_ReviewsUser.snap => DemoIntegrationTests.Authors_And_Reviews_Query_ReviewsUser.md} (95%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Fetch_User_With_Invalid_Node_Field.snap => DemoIntegrationTests.Fetch_User_With_Invalid_Node_Field.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Fetch_User_With_Node_Field.snap => DemoIntegrationTests.Fetch_User_With_Node_Field.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Fetch_User_With_Node_Field_From_Two_Subgraphs.snap => DemoIntegrationTests.Fetch_User_With_Node_Field_From_Two_Subgraphs.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Fetch_User_With_Node_Field_Pass_In_Review_Id.snap => DemoIntegrationTests.Fetch_User_With_Node_Field_Pass_In_Review_Id.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Fetch_User_With_Node_Field_Pass_In_Unknown_Id.snap => DemoIntegrationTests.Fetch_User_With_Node_Field_Pass_In_Unknown_Id.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Forward_Nested_Node_Variables.snap => DemoIntegrationTests.Forward_Nested_Node_Variables.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Forward_Nested_Object_Variables.snap => DemoIntegrationTests.Forward_Nested_Object_Variables.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Forward_Nested_Variables.snap => DemoIntegrationTests.Forward_Nested_Variables.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Forward_Nested_Variables_No_OpName.snap => DemoIntegrationTests.Forward_Nested_Variables_No_OpName.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Forward_Nested_Variables_No_OpName_Two_RootSelections.snap => DemoIntegrationTests.Forward_Nested_Variables_No_OpName_Two_RootSelections.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.GetFirstPage_With_After_Null.snap => DemoIntegrationTests.GetFirstPage_With_After_Null.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Hot_Reload.snap => DemoIntegrationTests.Hot_Reload.md} (84%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.QueryType_Parallel_Multiple_SubGraphs_WithArguments.snap => DemoIntegrationTests.QueryType_Parallel_Multiple_SubGraphs_WithArguments.md} (97%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Require_Data_In_Context.snap => DemoIntegrationTests.Require_Data_In_Context.md} (97%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Require_Data_In_Context_2.snap => DemoIntegrationTests.Require_Data_In_Context_2.md} (97%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.Require_Data_In_Context_3.snap => DemoIntegrationTests.Require_Data_In_Context_3.md} (97%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{DemoIntegrationTests.TypeName_Field_On_QueryRoot.snap => DemoIntegrationTests.TypeName_Field_On_QueryRoot.md} (95%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{ErrorTests.Accounts_Offline_Author_NonNull.snap => ErrorTests.Accounts_Offline_Author_NonNull.md} (97%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{ErrorTests.Accounts_Offline_Author_Nullable.snap => ErrorTests.Accounts_Offline_Author_Nullable.md} (97%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{ErrorTests.Accounts_Offline_Reviews_ListElement_Nullable.snap => ErrorTests.Accounts_Offline_Reviews_ListElement_Nullable.md} (97%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{ErrorTests.NestedResolveSubgraphError.snap => ErrorTests.NestedResolveSubgraphError.md} (97%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{ErrorTests.NestedResolveWithListSubgraphError.snap => ErrorTests.NestedResolveWithListSubgraphError.md} (97%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{ErrorTests.ResolveByKeySubgraphError.snap => ErrorTests.ResolveByKeySubgraphError.md} (97%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{ErrorTests.TopLevelResolveSubgraphError.snap => ErrorTests.TopLevelResolveSubgraphError.md} (94%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{EventStreamTests.Authors_And_Reviews_Subscription_OnNewReview.snap => EventStreamTests.Authors_And_Reviews_Subscription_OnNewReview.md} (93%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{FileUploadTests.UploadFile.snap => FileUploadTests.UploadFile.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{FileUploadTests.UploadFile_2.snap => FileUploadTests.UploadFile_2.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{InterfaceTests.Query_Interface_List.snap => InterfaceTests.Query_Interface_List.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{InterfaceTests.Query_Interface_List_With_Fragment_Fetch.snap => InterfaceTests.Query_Interface_List_With_Fragment.md} (97%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{InterfaceTests.Query_Interface_List_With_Fragment.snap => InterfaceTests.Query_Interface_List_With_Fragment_Fetch.md} (97%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{IntrospectionTests.ShortCircuit_RootTypeName_Requests.snap => IntrospectionTests.ShortCircuit_RootTypeName_Requests.md} (99%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_01.snap => RequestPlannerTests.Query_Plan_01.md} (93%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_02_Aliases.snap => RequestPlannerTests.Query_Plan_02_Aliases.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_03_Argument_Literals.snap => RequestPlannerTests.Query_Plan_03_Argument_Literals.md} (83%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_04_Argument_Variables.snap => RequestPlannerTests.Query_Plan_04_Argument_Variables.md} (87%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_05_TypeName_Field.snap => RequestPlannerTests.Query_Plan_05_TypeName_Field.md} (94%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_06_Introspection.snap => RequestPlannerTests.Query_Plan_06_Introspection.md} (87%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_07_Introspection_And_Fetch.snap => RequestPlannerTests.Query_Plan_07_Introspection_And_Fetch.md} (92%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_08_Single_Mutation.snap => RequestPlannerTests.Query_Plan_08_Single_Mutation.md} (89%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_09_Two_Mutation_Same_SubGraph.snap => RequestPlannerTests.Query_Plan_09_Two_Mutation_Same_SubGraph.md} (91%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_10_Two_Mutation_Same_SubGraph.snap => RequestPlannerTests.Query_Plan_10_Two_Mutation_Same_SubGraph.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_11_Two_Mutation_Two_SubGraph.snap => RequestPlannerTests.Query_Plan_11_Two_Mutation_Two_SubGraph.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_12_Subscription_1.snap => RequestPlannerTests.Query_Plan_12_Subscription_1.md} (86%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_13_Subscription_2.snap => RequestPlannerTests.Query_Plan_13_Subscription_2.md} (93%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_14_Node_Single_Fragment.snap => RequestPlannerTests.Query_Plan_14_Node_Single_Fragment.md} (93%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_15_Node_Single_Fragment_Multiple_Subgraphs.snap => RequestPlannerTests.Query_Plan_15_Node_Single_Fragment_Multiple_Subgraphs.md} (94%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_16_Two_Node_Fields_Aliased.snap => RequestPlannerTests.Query_Plan_16_Two_Node_Fields_Aliased.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_17_Multi_Completion.snap => RequestPlannerTests.Query_Plan_17_Multi_Completion.md} (91%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_18_Node_Single_Fragment_Multiple_Subgraphs.snap => RequestPlannerTests.Query_Plan_18_Node_Single_Fragment_Multiple_Subgraphs.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_19_Requires.snap => RequestPlannerTests.Query_Plan_19_Requires.md} (97%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_20_DeepQuery.snap => RequestPlannerTests.Query_Plan_20_DeepQuery.md} (97%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_21_Field_Requirement_Not_In_Context.snap => RequestPlannerTests.Query_Plan_21_Field_Requirement_Not_In_Context.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_22_Interfaces.snap => RequestPlannerTests.Query_Plan_22_Interfaces.md} (87%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_23_Interfaces_Merge.snap => RequestPlannerTests.Query_Plan_23_Interfaces_Merge.md} (93%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_24_Field_Requirement_And_Fields_In_Context.snap => RequestPlannerTests.Query_Plan_24_Field_Requirement_And_Fields_In_Context.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_25_Variables_Are_Passed_Through.snap => RequestPlannerTests.Query_Plan_25_Variables_Are_Passed_Through.md} (93%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_26_Ensure_No_Circular_Dependency_When_Requiring_Data.snap => RequestPlannerTests.Query_Plan_26_Ensure_No_Circular_Dependency_When_Requiring_Data.md} (95%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_27_Multiple_Require_Steps_From_Same_Subgraph.snap => RequestPlannerTests.Query_Plan_27_Multiple_Require_Steps_From_Same_Subgraph.md} (95%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_29_Simple_Root_List_Data.snap => RequestPlannerTests.Query_Plan_28_Simple_Root_Data.md} (88%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_28_Simple_Root_Data.snap => RequestPlannerTests.Query_Plan_29_Simple_Root_List_Data.md} (87%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_30_Entity_Data.snap => RequestPlannerTests.Query_Plan_30_Entity_Data.md} (89%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_31_Argument_No_Value_Specified_With_Selection_Set.snap => RequestPlannerTests.Query_Plan_31_Argument_No_Value_Specified_With_Selection_Set.md} (79%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_32_Argument_No_Value_Specified.snap => RequestPlannerTests.Query_Plan_32_Argument_No_Value_Specified.md} (80%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_33_Argument_Default_Value_Explicitly_Specified.snap => RequestPlannerTests.Query_Plan_33_Argument_Default_Value_Explicitly_Specified.md} (79%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_34_Argument_Not_Default_Value_Specified.snap => RequestPlannerTests.Query_Plan_34_Argument_Not_Default_Value_Specified.md} (80%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{RequestPlannerTests.Query_Plan_35_Argument_Value_Variable_Specified.snap => RequestPlannerTests.Query_Plan_35_Argument_Value_Variable_Specified.md} (85%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{UnionTests.Error_Union_With_Inline_Fragment.snap => UnionTests.Error_Union_With_Inline_Fragment.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{UnionTests.Error_Union_With_Inline_Fragment_Errors_Not_Null.snap => UnionTests.Error_Union_With_Inline_Fragment_Errors_Not_Null.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{UnionTests.Error_Union_With_TypeName.snap => UnionTests.Error_Union_With_TypeName.md} (96%) rename src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/{UnionTests.Error_Union_With_TypeName_Errors_Not_Null.snap => UnionTests.Error_Union_With_TypeName_Errors_Not_Null.md} (96%) diff --git a/src/CookieCrumble/src/CookieCrumble/CookieCrumble.csproj b/src/CookieCrumble/src/CookieCrumble/CookieCrumble.csproj index 4806ccd307d..970b119be4a 100644 --- a/src/CookieCrumble/src/CookieCrumble/CookieCrumble.csproj +++ b/src/CookieCrumble/src/CookieCrumble/CookieCrumble.csproj @@ -36,6 +36,7 @@ + diff --git a/src/CookieCrumble/src/CookieCrumble/Extensions/SnapshotExtensions.cs b/src/CookieCrumble/src/CookieCrumble/Extensions/SnapshotExtensions.cs index e46ff7ef232..a910a88e9e8 100644 --- a/src/CookieCrumble/src/CookieCrumble/Extensions/SnapshotExtensions.cs +++ b/src/CookieCrumble/src/CookieCrumble/Extensions/SnapshotExtensions.cs @@ -15,7 +15,7 @@ public static void MatchInlineSnapshot( public static void MatchSnapshot(this Snapshot value) => value.Match(); - + public static void MatchSnapshot( this object? value, object? postFix = null, @@ -30,6 +30,9 @@ public static void MatchMarkdownSnapshot( ISnapshotValueFormatter? formatter = null) => Snapshot.Create(postFix?.ToString(), extension).Add(value, formatter: formatter).MatchMarkdown(); + public static void MatchMarkdownSnapshot(this Snapshot value) + => value.MatchMarkdown(); + public static void MatchSnapshot( this ISyntaxNode? value, string? postFix = null) diff --git a/src/CookieCrumble/src/CookieCrumble/Formatters/JsonElementSnapshotValueFormatter.cs b/src/CookieCrumble/src/CookieCrumble/Formatters/JsonElementSnapshotValueFormatter.cs index 9d050ebd567..e02905e4cba 100644 --- a/src/CookieCrumble/src/CookieCrumble/Formatters/JsonElementSnapshotValueFormatter.cs +++ b/src/CookieCrumble/src/CookieCrumble/Formatters/JsonElementSnapshotValueFormatter.cs @@ -4,12 +4,12 @@ namespace CookieCrumble.Formatters; -internal sealed class JsonElementSnapshotValueFormatter : SnapshotValueFormatter +internal sealed class JsonElementSnapshotValueFormatter() : SnapshotValueFormatter("json") { private readonly JsonSerializerOptions _options = new(JsonSerializerDefaults.Web) { - WriteIndented = true, + WriteIndented = true, Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, }; @@ -20,14 +20,4 @@ protected override void Format(IBufferWriter snapshot, JsonElement value) buffer.AsSpan().CopyTo(span); snapshot.Advance(buffer.Length); } - - protected override void FormatMarkdown(IBufferWriter snapshot, JsonElement value) - { - snapshot.Append("```json"); - snapshot.AppendLine(); - Format(snapshot, value); - snapshot.AppendLine(); - snapshot.Append("```"); - snapshot.AppendLine(); - } -} \ No newline at end of file +} diff --git a/src/CookieCrumble/src/CookieCrumble/Formatters/QueryPlanSnapshotValueFormatter.cs b/src/CookieCrumble/src/CookieCrumble/Formatters/QueryPlanSnapshotValueFormatter.cs index dec395902ac..e2b0031001a 100644 --- a/src/CookieCrumble/src/CookieCrumble/Formatters/QueryPlanSnapshotValueFormatter.cs +++ b/src/CookieCrumble/src/CookieCrumble/Formatters/QueryPlanSnapshotValueFormatter.cs @@ -4,11 +4,9 @@ namespace CookieCrumble.Formatters; -internal sealed class QueryPlanSnapshotValueFormatter : SnapshotValueFormatter +internal sealed class QueryPlanSnapshotValueFormatter() : SnapshotValueFormatter("json") { protected override void Format(IBufferWriter snapshot, QueryPlan value) - { - value.Format(snapshot); - } + => value.Format(snapshot); } #endif diff --git a/src/CookieCrumble/src/CookieCrumble/Formatters/SchemaSnapshotValueFormatter.cs b/src/CookieCrumble/src/CookieCrumble/Formatters/SchemaSnapshotValueFormatter.cs index 3e537666d65..c0a4e31138e 100644 --- a/src/CookieCrumble/src/CookieCrumble/Formatters/SchemaSnapshotValueFormatter.cs +++ b/src/CookieCrumble/src/CookieCrumble/Formatters/SchemaSnapshotValueFormatter.cs @@ -3,18 +3,8 @@ namespace CookieCrumble.Formatters; -internal sealed class SchemaSnapshotValueFormatter : SnapshotValueFormatter +internal sealed class SchemaSnapshotValueFormatter() : SnapshotValueFormatter("graphql") { protected override void Format(IBufferWriter snapshot, ISchema value) => snapshot.Append(value.ToString()); - - protected override void FormatMarkdown(IBufferWriter snapshot, ISchema value) - { - snapshot.Append("```graphql"); - snapshot.AppendLine(); - Format(snapshot, value); - snapshot.AppendLine(); - snapshot.Append("```"); - snapshot.AppendLine(); - } } diff --git a/src/CookieCrumble/src/CookieCrumble/Formatters/SkimmedSchemaSnapshotValueFormatter.cs b/src/CookieCrumble/src/CookieCrumble/Formatters/SkimmedSchemaSnapshotValueFormatter.cs new file mode 100644 index 00000000000..b1db6246a0e --- /dev/null +++ b/src/CookieCrumble/src/CookieCrumble/Formatters/SkimmedSchemaSnapshotValueFormatter.cs @@ -0,0 +1,13 @@ +#if NET7_0_OR_GREATER +using System.Buffers; +using HotChocolate.Skimmed; +using HotChocolate.Skimmed.Serialization; + +namespace CookieCrumble.Formatters; + +internal sealed class SkimmedSchemaSnapshotValueFormatter() : SnapshotValueFormatter("graphql") +{ + protected override void Format(IBufferWriter snapshot, Schema value) + => snapshot.Append(SchemaFormatter.FormatAsString(value)); +} +#endif diff --git a/src/CookieCrumble/src/CookieCrumble/Formatters/SnapshotValueFormatter.cs b/src/CookieCrumble/src/CookieCrumble/Formatters/SnapshotValueFormatter.cs index 042ed27dfb2..7289421bf2b 100644 --- a/src/CookieCrumble/src/CookieCrumble/Formatters/SnapshotValueFormatter.cs +++ b/src/CookieCrumble/src/CookieCrumble/Formatters/SnapshotValueFormatter.cs @@ -5,8 +5,7 @@ namespace CookieCrumble.Formatters; /// /// Formats a snapshot segment value for the snapshot file. /// -public abstract class SnapshotValueFormatter - : ISnapshotValueFormatter +public abstract class SnapshotValueFormatter(string markdownKind = "text") : ISnapshotValueFormatter , IMarkdownSnapshotValueFormatter { public bool CanHandle(object? value) @@ -17,7 +16,7 @@ protected virtual bool CanHandle(TValue? value) public void Format(IBufferWriter snapshot, object? value) => Format(snapshot, (TValue)value!); - + public void FormatMarkdown(IBufferWriter snapshot, object? value) => FormatMarkdown(snapshot, (TValue)value!); @@ -25,7 +24,7 @@ public void FormatMarkdown(IBufferWriter snapshot, object? value) protected virtual void FormatMarkdown(IBufferWriter snapshot, TValue value) { - snapshot.Append("```text"); + snapshot.Append($"```{markdownKind}"); snapshot.AppendLine(); Format(snapshot, value); snapshot.AppendLine(); diff --git a/src/CookieCrumble/src/CookieCrumble/Snapshot.cs b/src/CookieCrumble/src/CookieCrumble/Snapshot.cs index 8e53f855caf..bd0fac2971a 100644 --- a/src/CookieCrumble/src/CookieCrumble/Snapshot.cs +++ b/src/CookieCrumble/src/CookieCrumble/Snapshot.cs @@ -33,6 +33,7 @@ public class Snapshot new JsonElementSnapshotValueFormatter(), #if NET7_0_OR_GREATER new QueryPlanSnapshotValueFormatter(), + new SkimmedSchemaSnapshotValueFormatter(), #endif }); private static readonly JsonSnapshotValueFormatter _defaultFormatter = new(); @@ -54,7 +55,7 @@ public Snapshot(string? postFix = null, string? extension = null) public static Snapshot Create(string? postFix = null, string? extension = null) => new(postFix, extension); - + public static DisposableSnapshot Start(string? postFix = null, string? extension = null) => new(postFix, extension); @@ -257,15 +258,52 @@ public void Match() } } } - + + public async ValueTask MatchMarkdownAsync(CancellationToken cancellationToken = default) + { + var writer = new ArrayBufferWriter(); + + writer.Append($"# {_title}"); + writer.AppendLine(); + writer.AppendLine(); + + WriteMarkdownSegments(writer); + + var snapshotFile = Combine(CreateSnapshotDirectoryName(), CreateMarkdownSnapshotFileName()); + + if (!File.Exists(snapshotFile)) + { + EnsureDirectoryExists(snapshotFile); + await using var stream = File.Create(snapshotFile); + await stream.WriteAsync(writer.WrittenMemory, cancellationToken); + } + else + { + var mismatchFile = Combine(CreateMismatchDirectoryName(), CreateMarkdownSnapshotFileName()); + EnsureFileDoesNotExist(mismatchFile); + var before = await File.ReadAllTextAsync(snapshotFile, cancellationToken); + var after = _encoding.GetString(writer.WrittenSpan); + + if (MatchSnapshot(before, after, false, out var diff)) + { + return; + } + + EnsureDirectoryExists(mismatchFile); + await using var stream = File.Create(mismatchFile); + await stream.WriteAsync(writer.WrittenMemory, cancellationToken); + throw new Xunit.Sdk.XunitException(diff); + } + } + public void MatchMarkdown() { var writer = new ArrayBufferWriter(); - + writer.Append($"# {_title}"); writer.AppendLine(); writer.AppendLine(); - + WriteMarkdownSegments(writer); var snapshotFile = Combine(CreateSnapshotDirectoryName(), CreateMarkdownSnapshotFileName()); @@ -287,7 +325,7 @@ public void MatchMarkdown() { return; } - + EnsureDirectoryExists(mismatchFile); using var stream = File.Create(mismatchFile); stream.Write(writer.WrittenSpan); @@ -344,7 +382,7 @@ private void WriteSegments(IBufferWriter writer) next = true; } } - + private void WriteMarkdownSegments(IBufferWriter writer) { if (_segments.Count == 1) @@ -488,11 +526,11 @@ private string CreateSnapshotFileName() ? string.Concat(fileName, _extension) : string.Concat(fileName, "_", _postFix, _extension); } - + private string CreateMarkdownSnapshotFileName() { var extension = _extension.EqualsOrdinal(".snap") ? ".md" : _extension; - + var fileName = GetFileNameWithoutExtension(_fileName); return string.IsNullOrEmpty(_postFix) @@ -532,7 +570,7 @@ private static string CreateFileName(StackFrame[] frames) "get the snapshot name, then reach this name to your " + "Snapshot.Match method."); } - + private static string CreateMarkdownTitle(StackFrame[] frames) { foreach (var stackFrame in frames) @@ -618,4 +656,4 @@ public sealed class DisposableSnapshot(string? postFix = null, string? extension , IDisposable { public void Dispose() => Match(); -} \ No newline at end of file +} diff --git a/src/HotChocolate/Fusion/test/CommandLine.Tests/ComposeCommandTests.cs b/src/HotChocolate/Fusion/test/CommandLine.Tests/ComposeCommandTests.cs index 2e6c38fdfec..81065092fd4 100644 --- a/src/HotChocolate/Fusion/test/CommandLine.Tests/ComposeCommandTests.cs +++ b/src/HotChocolate/Fusion/test/CommandLine.Tests/ComposeCommandTests.cs @@ -52,7 +52,7 @@ await PackageHelper.CreateSubgraphPackageAsync( snapshot.Add(subgraph, $"{subgraph.Name} Subgraph Configuration"); } - snapshot.MatchSnapshot(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -111,7 +111,7 @@ await app.InvokeAsync( snapshot.Add(subgraph, $"{subgraph.Name} Subgraph Configuration"); } - snapshot.MatchSnapshot(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -263,7 +263,7 @@ public async Task Compose_Loose_Subgraph_Files() snapshot.Add(subgraph, $"{subgraph.Name} Subgraph Configuration"); } - snapshot.MatchSnapshot(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -326,9 +326,9 @@ await app.InvokeAsync( snapshot.Add(subgraph, $"{subgraph.Name} Subgraph Configuration"); } - snapshot.MatchSnapshot(); + await snapshot.MatchMarkdownAsync(); } - + [Fact] public async Task Compose_With_Tag() { @@ -344,10 +344,10 @@ public async Task Compose_With_Tag() var packageFile = CreateTempFile(Extensions.FusionPackage); var gatewayConfig = Path.Combine( - Path.GetDirectoryName(packageFile)!, + Path.GetDirectoryName(packageFile)!, Path.GetFileNameWithoutExtension(packageFile) + "-settings.json"); File.Delete(packageFile); - + await File.WriteAllTextAsync(gatewayConfig, FileResource.Open("test2.gateway-config.json"), Encoding.UTF8); // act @@ -373,6 +373,6 @@ public async Task Compose_With_Tag() snapshot.Add(subgraph, $"{subgraph.Name} Subgraph Configuration"); } - snapshot.MatchSnapshot(); + await snapshot.MatchMarkdownAsync(); } } diff --git a/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Fusion_Graph.snap b/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Fusion_Graph.md similarity index 80% rename from src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Fusion_Graph.snap rename to src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Fusion_Graph.md index 813421d666b..082e8659f0a 100644 --- a/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Fusion_Graph.snap +++ b/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Fusion_Graph.md @@ -1,11 +1,15 @@ -Schema Document ---------------- +# Compose_Fusion_Graph + +## Schema Document + +```graphql schema { query: Query mutation: Mutation } type Query { + errorField: String userById(id: ID!): User users: [User!]! usersById(ids: [ID!]!): [User!]! @@ -26,6 +30,7 @@ type SomeData { type User implements Node { birthdate: Date! + errorField: String id: ID! name: String! username: String! @@ -49,16 +54,18 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + +## Fusion Graph Document -Fusion Graph Document ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Accounts", group: "Fusion", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @transport(subgraph: "Accounts", group: "Fusion", location: "ws:\/\/localhost:5000\/graphql", kind: "WebSocket") { query: Query mutation: Mutation } type Query { + errorField: String @resolver(subgraph: "Accounts", select: "{ errorField }") userById(id: ID!): User @variable(subgraph: "Accounts", name: "id", argument: "id") @resolver(subgraph: "Accounts", select: "{ userById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) users: [User!]! @resolver(subgraph: "Accounts", select: "{ users }") usersById(ids: [ID!]!): [User!]! @variable(subgraph: "Accounts", name: "ids", argument: "ids") @resolver(subgraph: "Accounts", select: "{ usersById(ids: $ids) }", arguments: [ { name: "ids", type: "[ID!]!" } ]) @@ -79,6 +86,7 @@ type SomeData { type User implements Node @variable(subgraph: "Accounts", name: "User_id", select: "id") @resolver(subgraph: "Accounts", select: "{ userById(id: $User_id) }", arguments: [ { name: "User_id", type: "ID!" } ]) @resolver(subgraph: "Accounts", select: "{ usersById(ids: $User_id) }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String @source(subgraph: "Accounts") id: ID! @source(subgraph: "Accounts") name: String! @source(subgraph: "Accounts") username: String! @source(subgraph: "Accounts") @@ -102,13 +110,14 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` -Accounts Subgraph Configuration ---------------- +## Accounts Subgraph Configuration + +```json { "Name": "Accounts", - "Schema": "schema {\n query: Query\n mutation: Mutation\n}\n\n\"The node interface is implemented by entities that have a global unique identifier.\"\ninterface Node {\n id: ID!\n}\n\ntype Query {\n \"Fetches an object given its ID.\"\n node(\"ID of the object.\" id: ID!): Node\n \"Lookup nodes by a list of IDs.\"\n nodes(\"The list of node IDs.\" ids: [ID!]!): [Node]!\n users: [User!]!\n userById(id: ID!): User\n usersById(ids: [ID!]!): [User!]!\n viewer: Viewer!\n}\n\ntype Mutation {\n addUser(input: AddUserInput!): AddUserPayload!\n}\n\n\"The `Date` scalar represents an ISO-8601 compliant date type.\"\nscalar Date\n\ntype Viewer {\n user: User\n data: SomeData!\n}\n\ntype User implements Node {\n id: ID!\n name: String!\n birthdate: Date!\n username: String!\n}\n\ntype SomeData {\n accountValue: String!\n}\n\ninput AddUserInput {\n name: String!\n username: String!\n birthdate: Date!\n}\n\ntype AddUserPayload {\n user: User\n}", + "Schema": "schema {\n query: Query\n mutation: Mutation\n}\n\n\"The node interface is implemented by entities that have a global unique identifier.\"\ninterface Node {\n id: ID!\n}\n\ntype Query {\n \"Fetches an object given its ID.\"\n node(\"ID of the object.\" id: ID!): Node\n \"Lookup nodes by a list of IDs.\"\n nodes(\"The list of node IDs.\" ids: [ID!]!): [Node]!\n users: [User!]!\n userById(id: ID!): User\n usersById(ids: [ID!]!): [User!]!\n errorField: String\n viewer: Viewer!\n}\n\ntype Mutation {\n addUser(input: AddUserInput!): AddUserPayload!\n}\n\n\"The `Date` scalar represents an ISO-8601 compliant date type.\"\nscalar Date\n\ntype Viewer {\n user: User\n data: SomeData!\n}\n\ntype User implements Node {\n errorField: String\n id: ID!\n name: String!\n birthdate: Date!\n username: String!\n}\n\ntype SomeData {\n accountValue: String!\n}\n\ninput AddUserInput {\n name: String!\n username: String!\n birthdate: Date!\n}\n\ntype AddUserPayload {\n user: User\n}", "Extensions": [ "extend type Query {\n userById(id: ID!\n @is(field: \"id\")): User!\n usersById(ids: [ID!]!\n @is(field: \"id\")): [User!]!\n}" ], @@ -124,4 +133,5 @@ Accounts Subgraph Configuration ], "ConfigurationExtensions": null } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Fusion_Graph_Append_Subgraph.snap b/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Fusion_Graph_Append_Subgraph.md similarity index 86% rename from src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Fusion_Graph_Append_Subgraph.snap rename to src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Fusion_Graph_Append_Subgraph.md index 8aabdd95166..a94cbfa5c54 100644 --- a/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Fusion_Graph_Append_Subgraph.snap +++ b/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Fusion_Graph_Append_Subgraph.md @@ -1,5 +1,8 @@ -Schema Document ---------------- +# Compose_Fusion_Graph_Append_Subgraph + +## Schema Document + +```graphql schema { query: Query mutation: Mutation @@ -7,6 +10,7 @@ schema { } type Query { + errorField: String productById(id: ID!): Product reviewById(id: ID!): Review reviewOrAuthor: ReviewOrAuthor! @@ -42,6 +46,7 @@ type Product { type Review implements Node { author: User! body: String! + errorField: String id: ID! product: Product! } @@ -54,6 +59,7 @@ type SomeData { "The user who wrote the review." type User implements Node { birthdate: Date! + errorField: String id: ID! name: String! reviews: [Review!]! @@ -87,10 +93,11 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + +## Fusion Graph Document -Fusion Graph Document ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Accounts", group: "Fusion", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @transport(subgraph: "Accounts", group: "Fusion", location: "ws:\/\/localhost:5000\/graphql", kind: "WebSocket") @transport(subgraph: "Reviews2", group: "Fusion", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @transport(subgraph: "Reviews2", group: "Fusion", location: "ws:\/\/localhost:5000\/graphql", kind: "WebSocket") { query: Query mutation: Mutation @@ -98,6 +105,7 @@ schema @fusion(version: 1) @transport(subgraph: "Accounts", group: "Fusion", loc } type Query { + errorField: String @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) reviewById(id: ID!): Review @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ reviewById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) reviewOrAuthor: ReviewOrAuthor! @resolver(subgraph: "Reviews2", select: "{ reviewOrAuthor }") @@ -133,6 +141,7 @@ type Product @variable(subgraph: "Reviews2", name: "Product_id", select: "id") @ type Review implements Node @variable(subgraph: "Reviews2", name: "Review_id", select: "id") @resolver(subgraph: "Reviews2", select: "{ reviewById(id: $Review_id) }", arguments: [ { name: "Review_id", type: "ID!" } ]) @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $Review_id) { ... on Review { ... Review } } }", arguments: [ { name: "Review_id", type: "[ID!]!" } ], kind: "BATCH") { author: User! @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @source(subgraph: "Reviews2") } @@ -145,6 +154,7 @@ type SomeData { "The user who wrote the review." type User implements Node @variable(subgraph: "Accounts", name: "User_id", select: "id") @variable(subgraph: "Reviews2", name: "User_id", select: "id") @resolver(subgraph: "Accounts", select: "{ userById(id: $User_id) }", arguments: [ { name: "User_id", type: "ID!" } ]) @resolver(subgraph: "Accounts", select: "{ usersById(ids: $User_id) }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") @resolver(subgraph: "Reviews2", select: "{ authorById(id: $User_id) }", arguments: [ { name: "User_id", type: "ID!" } ]) @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String @source(subgraph: "Accounts") id: ID! @source(subgraph: "Accounts") @source(subgraph: "Reviews2") name: String! @source(subgraph: "Accounts") @source(subgraph: "Reviews2") reviews: [Review!]! @source(subgraph: "Reviews2") @@ -178,13 +188,14 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` -Accounts Subgraph Configuration ---------------- +## Accounts Subgraph Configuration + +```json { "Name": "Accounts", - "Schema": "schema {\n query: Query\n mutation: Mutation\n}\n\n\"The node interface is implemented by entities that have a global unique identifier.\"\ninterface Node {\n id: ID!\n}\n\ntype Query {\n \"Fetches an object given its ID.\"\n node(\"ID of the object.\" id: ID!): Node\n \"Lookup nodes by a list of IDs.\"\n nodes(\"The list of node IDs.\" ids: [ID!]!): [Node]!\n users: [User!]!\n userById(id: ID!): User\n usersById(ids: [ID!]!): [User!]!\n viewer: Viewer!\n}\n\ntype Mutation {\n addUser(input: AddUserInput!): AddUserPayload!\n}\n\n\"The `Date` scalar represents an ISO-8601 compliant date type.\"\nscalar Date\n\ntype Viewer {\n user: User\n data: SomeData!\n}\n\ntype User implements Node {\n id: ID!\n name: String!\n birthdate: Date!\n username: String!\n}\n\ntype SomeData {\n accountValue: String!\n}\n\ninput AddUserInput {\n name: String!\n username: String!\n birthdate: Date!\n}\n\ntype AddUserPayload {\n user: User\n}", + "Schema": "schema {\n query: Query\n mutation: Mutation\n}\n\n\"The node interface is implemented by entities that have a global unique identifier.\"\ninterface Node {\n id: ID!\n}\n\ntype Query {\n \"Fetches an object given its ID.\"\n node(\"ID of the object.\" id: ID!): Node\n \"Lookup nodes by a list of IDs.\"\n nodes(\"The list of node IDs.\" ids: [ID!]!): [Node]!\n users: [User!]!\n userById(id: ID!): User\n usersById(ids: [ID!]!): [User!]!\n errorField: String\n viewer: Viewer!\n}\n\ntype Mutation {\n addUser(input: AddUserInput!): AddUserPayload!\n}\n\n\"The `Date` scalar represents an ISO-8601 compliant date type.\"\nscalar Date\n\ntype Viewer {\n user: User\n data: SomeData!\n}\n\ntype User implements Node {\n errorField: String\n id: ID!\n name: String!\n birthdate: Date!\n username: String!\n}\n\ntype SomeData {\n accountValue: String!\n}\n\ninput AddUserInput {\n name: String!\n username: String!\n birthdate: Date!\n}\n\ntype AddUserPayload {\n user: User\n}", "Extensions": [ "extend type Query {\n userById(id: ID!\n @is(field: \"id\")): User!\n usersById(ids: [ID!]!\n @is(field: \"id\")): [User!]!\n}" ], @@ -200,13 +211,14 @@ Accounts Subgraph Configuration ], "ConfigurationExtensions": null } ---------------- +``` + +## Reviews2 Subgraph Configuration -Reviews2 Subgraph Configuration ---------------- +```json { "Name": "Reviews2", - "Schema": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\n\"The node interface is implemented by entities that have a global unique identifier.\"\ninterface Node {\n id: ID!\n}\n\ntype Query {\n \"Fetches an object given its ID.\"\n node(\"ID of the object.\" id: ID!): Node\n \"Lookup nodes by a list of IDs.\"\n nodes(\"The list of node IDs.\" ids: [ID!]!): [Node]!\n reviews: [Review!]!\n reviewById(id: ID!): Review\n authorById(id: ID!): User\n productById(id: ID!): Product\n reviewOrAuthor: ReviewOrAuthor!\n viewer: Viewer!\n}\n\ntype Mutation {\n addReview(input: AddReviewInput!): AddReviewPayload!\n}\n\ntype Subscription {\n onNewReview: Review!\n}\n\ntype Product {\n reviews: [Review!]!\n id: ID!\n}\n\n\"The user who wrote the review.\"\ntype User implements Node {\n reviews: [Review!]!\n id: ID!\n name: String!\n}\n\ntype Review implements Node {\n id: ID!\n author: User!\n product: Product!\n body: String!\n}\n\nunion ReviewOrAuthor = User | Review\n\ntype Viewer {\n latestReview: Review\n data: SomeData!\n}\n\ntype SomeData {\n reviewsValue: String!\n}\n\ninput AddReviewInput {\n body: String!\n authorId: Int!\n upc: Int!\n}\n\ntype AddReviewPayload {\n review: Review\n}", + "Schema": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\n\"The node interface is implemented by entities that have a global unique identifier.\"\ninterface Node {\n id: ID!\n}\n\ntype Query {\n \"Fetches an object given its ID.\"\n node(\"ID of the object.\" id: ID!): Node\n \"Lookup nodes by a list of IDs.\"\n nodes(\"The list of node IDs.\" ids: [ID!]!): [Node]!\n reviews: [Review!]!\n reviewById(id: ID!): Review\n authorById(id: ID!): User\n productById(id: ID!): Product\n reviewOrAuthor: ReviewOrAuthor!\n viewer: Viewer!\n}\n\ntype Mutation {\n addReview(input: AddReviewInput!): AddReviewPayload!\n}\n\ntype Subscription {\n onNewReview: Review!\n}\n\ntype Product {\n reviews: [Review!]!\n id: ID!\n}\n\n\"The user who wrote the review.\"\ntype User implements Node {\n reviews: [Review!]!\n id: ID!\n name: String!\n}\n\ntype Review implements Node {\n errorField: String\n id: ID!\n author: User!\n product: Product!\n body: String!\n}\n\nunion ReviewOrAuthor = User | Review\n\ntype Viewer {\n latestReview: Review\n data: SomeData!\n}\n\ntype SomeData {\n reviewsValue: String!\n}\n\ninput AddReviewInput {\n body: String!\n authorId: Int!\n upc: Int!\n}\n\ntype AddReviewPayload {\n review: Review\n}", "Extensions": [ "extend type Query {\n authorById(id: ID!\n @is(field: \"id\")): User\n productById(id: ID!\n @is(field: \"id\")): Product\n}\n\nschema\n @rename(coordinate: \"Query.authorById\", newName: \"userById\") {\n\n}" ], @@ -222,4 +234,5 @@ Reviews2 Subgraph Configuration ], "ConfigurationExtensions": null } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Fusion_Graph_Remove_Subgraph.snap b/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Fusion_Graph_Remove_Subgraph.md similarity index 80% rename from src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Fusion_Graph_Remove_Subgraph.snap rename to src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Fusion_Graph_Remove_Subgraph.md index 813421d666b..bfcd53741b9 100644 --- a/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Fusion_Graph_Remove_Subgraph.snap +++ b/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Fusion_Graph_Remove_Subgraph.md @@ -1,11 +1,15 @@ -Schema Document ---------------- +# Compose_Fusion_Graph_Remove_Subgraph + +## Schema Document + +```graphql schema { query: Query mutation: Mutation } type Query { + errorField: String userById(id: ID!): User users: [User!]! usersById(ids: [ID!]!): [User!]! @@ -26,6 +30,7 @@ type SomeData { type User implements Node { birthdate: Date! + errorField: String id: ID! name: String! username: String! @@ -49,16 +54,18 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + +## Fusion Graph Document -Fusion Graph Document ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Accounts", group: "Fusion", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @transport(subgraph: "Accounts", group: "Fusion", location: "ws:\/\/localhost:5000\/graphql", kind: "WebSocket") { query: Query mutation: Mutation } type Query { + errorField: String @resolver(subgraph: "Accounts", select: "{ errorField }") userById(id: ID!): User @variable(subgraph: "Accounts", name: "id", argument: "id") @resolver(subgraph: "Accounts", select: "{ userById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) users: [User!]! @resolver(subgraph: "Accounts", select: "{ users }") usersById(ids: [ID!]!): [User!]! @variable(subgraph: "Accounts", name: "ids", argument: "ids") @resolver(subgraph: "Accounts", select: "{ usersById(ids: $ids) }", arguments: [ { name: "ids", type: "[ID!]!" } ]) @@ -79,6 +86,7 @@ type SomeData { type User implements Node @variable(subgraph: "Accounts", name: "User_id", select: "id") @resolver(subgraph: "Accounts", select: "{ userById(id: $User_id) }", arguments: [ { name: "User_id", type: "ID!" } ]) @resolver(subgraph: "Accounts", select: "{ usersById(ids: $User_id) }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String @source(subgraph: "Accounts") id: ID! @source(subgraph: "Accounts") name: String! @source(subgraph: "Accounts") username: String! @source(subgraph: "Accounts") @@ -102,13 +110,14 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` -Accounts Subgraph Configuration ---------------- +## Accounts Subgraph Configuration + +```json { "Name": "Accounts", - "Schema": "schema {\n query: Query\n mutation: Mutation\n}\n\n\"The node interface is implemented by entities that have a global unique identifier.\"\ninterface Node {\n id: ID!\n}\n\ntype Query {\n \"Fetches an object given its ID.\"\n node(\"ID of the object.\" id: ID!): Node\n \"Lookup nodes by a list of IDs.\"\n nodes(\"The list of node IDs.\" ids: [ID!]!): [Node]!\n users: [User!]!\n userById(id: ID!): User\n usersById(ids: [ID!]!): [User!]!\n viewer: Viewer!\n}\n\ntype Mutation {\n addUser(input: AddUserInput!): AddUserPayload!\n}\n\n\"The `Date` scalar represents an ISO-8601 compliant date type.\"\nscalar Date\n\ntype Viewer {\n user: User\n data: SomeData!\n}\n\ntype User implements Node {\n id: ID!\n name: String!\n birthdate: Date!\n username: String!\n}\n\ntype SomeData {\n accountValue: String!\n}\n\ninput AddUserInput {\n name: String!\n username: String!\n birthdate: Date!\n}\n\ntype AddUserPayload {\n user: User\n}", + "Schema": "schema {\n query: Query\n mutation: Mutation\n}\n\n\"The node interface is implemented by entities that have a global unique identifier.\"\ninterface Node {\n id: ID!\n}\n\ntype Query {\n \"Fetches an object given its ID.\"\n node(\"ID of the object.\" id: ID!): Node\n \"Lookup nodes by a list of IDs.\"\n nodes(\"The list of node IDs.\" ids: [ID!]!): [Node]!\n users: [User!]!\n userById(id: ID!): User\n usersById(ids: [ID!]!): [User!]!\n errorField: String\n viewer: Viewer!\n}\n\ntype Mutation {\n addUser(input: AddUserInput!): AddUserPayload!\n}\n\n\"The `Date` scalar represents an ISO-8601 compliant date type.\"\nscalar Date\n\ntype Viewer {\n user: User\n data: SomeData!\n}\n\ntype User implements Node {\n errorField: String\n id: ID!\n name: String!\n birthdate: Date!\n username: String!\n}\n\ntype SomeData {\n accountValue: String!\n}\n\ninput AddUserInput {\n name: String!\n username: String!\n birthdate: Date!\n}\n\ntype AddUserPayload {\n user: User\n}", "Extensions": [ "extend type Query {\n userById(id: ID!\n @is(field: \"id\")): User!\n usersById(ids: [ID!]!\n @is(field: \"id\")): [User!]!\n}" ], @@ -124,4 +133,5 @@ Accounts Subgraph Configuration ], "ConfigurationExtensions": null } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Loose_Subgraph_Files.snap b/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Loose_Subgraph_Files.md similarity index 95% rename from src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Loose_Subgraph_Files.snap rename to src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Loose_Subgraph_Files.md index 3d73680ba61..bde564a724f 100644 --- a/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Loose_Subgraph_Files.snap +++ b/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_Loose_Subgraph_Files.md @@ -1,5 +1,8 @@ -Schema Document ---------------- +# Compose_Loose_Subgraph_Files + +## Schema Document + +```graphql schema { query: Query } @@ -40,10 +43,11 @@ interface Node { } scalar DateTime ---------------- +``` + +## Fusion Graph Document -Fusion Graph Document ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "accounts", group: "Fusion", location: "https:\/\/localhost:3000\/graphql", kind: "HTTP") { query: Query } @@ -84,10 +88,11 @@ interface Node { } scalar DateTime ---------------- +``` -accounts Subgraph Configuration ---------------- +## accounts Subgraph Configuration + +```json { "Name": "accounts", "Schema": "type Query {\n node(id: ID!): Node\n nodes(ids: [ID!]!): [Node]!\n userById(id: ID!): User\n userByName(name: String!): User\n users(first: Int after: String last: Int before: String): UsersConnection\n}\n\ntype User implements Node {\n id: ID!\n name: String!\n displayName: String!\n birthdate: String!\n}\n\ninterface Node {\n id: ID!\n}\n\ntype UsersConnection {\n pageInfo: PageInfo!\n edges: [UsersEdge!]\n nodes: [User!]\n}\n\ntype UsersEdge {\n cursor: String!\n node: User!\n}\n\ntype PageInfo {\n hasNextPage: Boolean!\n hasPreviousPage: Boolean!\n startCursor: String\n endCursor: String\n}\n\nscalar DateTime", @@ -100,4 +105,5 @@ accounts Subgraph Configuration ], "ConfigurationExtensions": null } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_With_Tag.snap b/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_With_Tag.md similarity index 96% rename from src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_With_Tag.snap rename to src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_With_Tag.md index 565e7d13537..f975dad53c2 100644 --- a/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_With_Tag.snap +++ b/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/ComposeCommandTests.Compose_With_Tag.md @@ -1,5 +1,8 @@ -Schema Document ---------------- +# Compose_With_Tag + +## Schema Document + +```graphql schema { query: Query } @@ -41,10 +44,11 @@ interface Node { } scalar DateTime ---------------- +``` + +## Fusion Graph Document -Fusion Graph Document ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "accounts", group: "Fusion", location: "https:\/\/localhost:3000\/graphql", kind: "HTTP") @node(subgraph: "accounts", types: [ "User" ]) { query: Query } @@ -86,10 +90,11 @@ interface Node { } scalar DateTime ---------------- +``` -accounts Subgraph Configuration ---------------- +## accounts Subgraph Configuration + +```json { "Name": "accounts", "Schema": "type Query {\n node(id: ID!): Node\n nodes(ids: [ID!]!): [Node]!\n userById(id: ID!): User\n userByName(name: String!): User\n users(first: Int after: String last: Int before: String): UsersConnection\n}\n\ntype User implements Node {\n id: ID!\n name: String! @tag(name: \"internal\")\n displayName: String!\n birthdate: String!\n}\n\ninterface Node {\n id: ID!\n}\n\ntype UsersConnection {\n pageInfo: PageInfo!\n edges: [UsersEdge!]\n nodes: [User!]\n}\n\ntype UsersEdge {\n cursor: String!\n node: User!\n}\n\ntype PageInfo {\n hasNextPage: Boolean!\n hasPreviousPage: Boolean!\n startCursor: String\n endCursor: String\n}\n\nscalar DateTime\n\ndirective @tag(name: String!) repeatable on SCHEMA | SCALAR | OBJECT | FIELD_DEFINITION | ARGUMENT_DEFINITION | INTERFACE | UNION | ENUM | ENUM_VALUE | INPUT_OBJECT | INPUT_FIELD_DEFINITION", @@ -102,4 +107,5 @@ accounts Subgraph Configuration ], "ConfigurationExtensions": null } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/PackageHelperTests.Create_Extract_Extensions.snap b/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/PackageHelperTests.Create_Extract_Extensions.snap index 70008ed60e1..0f98e06d2a6 100644 --- a/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/PackageHelperTests.Create_Extract_Extensions.snap +++ b/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/PackageHelperTests.Create_Extract_Extensions.snap @@ -23,6 +23,7 @@ type Query { users: [User!]! userById(id: ID!): User usersById(ids: [ID!]!): [User!]! + errorField: String viewer: Viewer! } @@ -39,6 +40,7 @@ type Viewer { } type User implements Node { + errorField: String id: ID! name: String! birthdate: Date! diff --git a/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/PackageHelperTests.Create_Subgraph_Package.snap b/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/PackageHelperTests.Create_Subgraph_Package.snap index 8df5694151d..302843dd60d 100644 --- a/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/PackageHelperTests.Create_Subgraph_Package.snap +++ b/src/HotChocolate/Fusion/test/CommandLine.Tests/__snapshots__/PackageHelperTests.Create_Subgraph_Package.snap @@ -23,6 +23,7 @@ type Query { users: [User!]! userById(id: ID!): User usersById(ids: [ID!]!): [User!]! + errorField: String viewer: Viewer! } @@ -39,6 +40,7 @@ type Viewer { } type User implements Node { + errorField: String id: ID! name: String! birthdate: Date! diff --git a/src/HotChocolate/Fusion/test/Composition.Tests/DemoIntegrationTests.cs b/src/HotChocolate/Fusion/test/Composition.Tests/DemoIntegrationTests.cs index 2435968043d..2a2a152c20a 100644 --- a/src/HotChocolate/Fusion/test/Composition.Tests/DemoIntegrationTests.cs +++ b/src/HotChocolate/Fusion/test/Composition.Tests/DemoIntegrationTests.cs @@ -26,11 +26,9 @@ public async Task Accounts_And_Reviews() demoProject.Reviews.ToConfiguration(ReviewsExtensionSdl), }); - SchemaFormatter - .FormatAsString(fusionConfig) - .MatchSnapshot(extension: ".graphql"); + fusionConfig.MatchSnapshot(extension: ".graphql"); } - + [Fact] public async Task Accounts_And_Reviews_Infer_Patterns() { @@ -46,9 +44,7 @@ public async Task Accounts_And_Reviews_Infer_Patterns() demoProject.Reviews.ToConfiguration(ReviewsExtensionSdl), }); - SchemaFormatter - .FormatAsString(fusionConfig) - .MatchSnapshot(extension: ".graphql"); + fusionConfig.MatchSnapshot(extension: ".graphql"); } [Fact] @@ -67,9 +63,7 @@ public async Task Accounts_And_Reviews_Products() demoProject.Products.ToConfiguration(ProductsExtensionSdl), }); - SchemaFormatter - .FormatAsString(fusionConfig) - .MatchSnapshot(extension: ".graphql"); + fusionConfig.MatchSnapshot(extension: ".graphql"); } [Fact] @@ -89,9 +83,7 @@ public async Task Accounts_And_Reviews_Products_With_Nodes() }, new FusionFeatureCollection(FusionFeatures.NodeField)); - SchemaFormatter - .FormatAsString(fusionConfig) - .MatchSnapshot(extension: ".graphql"); + fusionConfig.MatchSnapshot(extension: ".graphql"); } [Fact] @@ -111,9 +103,7 @@ public async Task Accounts_And_Reviews2_Products_With_Nodes() }, new FusionFeatureCollection(FusionFeatures.NodeField)); - SchemaFormatter - .FormatAsString(fusionConfig) - .MatchSnapshot(extension: ".graphql"); + fusionConfig.MatchSnapshot(extension: ".graphql"); } [Fact] @@ -132,8 +122,6 @@ public async Task Accounts_And_Reviews_Products_AutoCompose_With_Node() demoProject.Products.ToConfiguration(), }); - SchemaFormatter - .FormatAsString(fusionConfig) - .MatchSnapshot(extension: ".graphql"); + fusionConfig.MatchSnapshot(extension: ".graphql"); } } diff --git a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews.graphql b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews.graphql index 3578361c7a0..964e0bbdba0 100644 --- a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews.graphql +++ b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews.graphql @@ -10,6 +10,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews", name: "id", argument: "id") @resolver(subgraph: "Reviews", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -96,6 +98,8 @@ type User implements Node @resolver(subgraph: "Reviews", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Accounts") @source(subgraph: "Reviews") diff --git a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews2_Products_With_Nodes.graphql b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews2_Products_With_Nodes.graphql index 7b92a9a46d1..f399738ef5c 100644 --- a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews2_Products_With_Nodes.graphql +++ b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews2_Products_With_Nodes.graphql @@ -15,6 +15,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") "Fetches an object given its ID." node("ID of the object." id: ID!): Node @variable(subgraph: "Accounts", name: "id", argument: "id") @@ -137,6 +139,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -171,6 +175,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Accounts") @source(subgraph: "Reviews2") diff --git a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews_Infer_Patterns.graphql b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews_Infer_Patterns.graphql index 92919eb3840..e108d0c523b 100644 --- a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews_Infer_Patterns.graphql +++ b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews_Infer_Patterns.graphql @@ -10,6 +10,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews", name: "id", argument: "id") @resolver(subgraph: "Reviews", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -96,6 +98,8 @@ type User implements Node @resolver(subgraph: "Reviews", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Accounts") @source(subgraph: "Reviews") diff --git a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews_Products.graphql b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews_Products.graphql index 13418d85952..c1319d35678 100644 --- a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews_Products.graphql +++ b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews_Products.graphql @@ -12,6 +12,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews", name: "id", argument: "id") @resolver(subgraph: "Reviews", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -149,6 +151,8 @@ type User implements Node @resolver(subgraph: "Reviews", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Accounts") @source(subgraph: "Reviews") diff --git a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews_Products_AutoCompose_With_Node.graphql b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews_Products_AutoCompose_With_Node.graphql index f4e706fe4d8..93ec5bb727b 100644 --- a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews_Products_AutoCompose_With_Node.graphql +++ b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews_Products_AutoCompose_With_Node.graphql @@ -15,6 +15,8 @@ type Query { authorById(id: ID!): Author @variable(subgraph: "Reviews", name: "id", argument: "id") @resolver(subgraph: "Reviews", select: "{ authorById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews", name: "id", argument: "id") @resolver(subgraph: "Reviews", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -158,6 +160,8 @@ type User implements Node @resolver(subgraph: "Accounts", select: "{ usersById(ids: $User_id) }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Accounts") name: String! diff --git a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews_Products_With_Nodes.graphql b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews_Products_With_Nodes.graphql index 282310e6452..b23a8aa5996 100644 --- a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews_Products_With_Nodes.graphql +++ b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/DemoIntegrationTests.Accounts_And_Reviews_Products_With_Nodes.graphql @@ -15,6 +15,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") "Fetches an object given its ID." node("ID of the object." id: ID!): Node @variable(subgraph: "Accounts", name: "id", argument: "id") @@ -168,6 +170,8 @@ type User implements Node @resolver(subgraph: "Reviews", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Accounts") @source(subgraph: "Reviews") diff --git a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/RequireTests.Require_Scalar_Arguments_No_Overloads.graphql b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/RequireTests.Require_Scalar_Arguments_No_Overloads.graphql index 21b6ef99409..1d0da8bc7f1 100644 --- a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/RequireTests.Require_Scalar_Arguments_No_Overloads.graphql +++ b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/RequireTests.Require_Scalar_Arguments_No_Overloads.graphql @@ -17,6 +17,8 @@ type Query { authorById(id: ID!): Author @variable(subgraph: "Reviews", name: "id", argument: "id") @resolver(subgraph: "Reviews", select: "{ authorById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews", name: "id", argument: "id") @resolver(subgraph: "Reviews", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -178,6 +180,8 @@ type User implements Node @resolver(subgraph: "Accounts", select: "{ usersById(ids: $User_id) }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Accounts") name: String! diff --git a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Do_Not_Expose_Tags_On_Public_Schema.graphql b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Do_Not_Expose_Tags_On_Public_Schema.graphql index c5d2932fa6b..2928b8bd7d9 100644 --- a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Do_Not_Expose_Tags_On_Public_Schema.graphql +++ b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Do_Not_Expose_Tags_On_Public_Schema.graphql @@ -10,6 +10,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews", name: "id", argument: "id") @resolver(subgraph: "Reviews", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -106,6 +108,8 @@ type User implements Node @resolver(subgraph: "Reviews", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Accounts") @source(subgraph: "Reviews") diff --git a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Exclude_Subgraphs_With_Review_Tag.graphql b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Exclude_Subgraphs_With_Review_Tag.graphql index 109454a5482..f4bc99be5a8 100644 --- a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Exclude_Subgraphs_With_Review_Tag.graphql +++ b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Exclude_Subgraphs_With_Review_Tag.graphql @@ -9,6 +9,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") someTypeById(id: ID!): SomeType! @variable(subgraph: "Accounts", name: "id", argument: "id") @resolver(subgraph: "Accounts", select: "{ someTypeById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -55,6 +57,8 @@ type User implements Node birthdate: Date! @source(subgraph: "Accounts") @tag(name: "internal") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Accounts") name: String! diff --git a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Exclude_Type_System_Members_With_Internal_Tag.graphql b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Exclude_Type_System_Members_With_Internal_Tag.graphql index b32a04d247c..5bf576c24f2 100644 --- a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Exclude_Type_System_Members_With_Internal_Tag.graphql +++ b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Exclude_Type_System_Members_With_Internal_Tag.graphql @@ -11,6 +11,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews", name: "id", argument: "id") @resolver(subgraph: "Reviews", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -95,6 +97,8 @@ type User implements Node @resolver(subgraph: "Accounts", select: "{ usersById(ids: $User_id) }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") @resolver(subgraph: "Reviews", select: "{ authorById(id: $User_id) }", arguments: [ { name: "User_id", type: "ID!" } ]) @resolver(subgraph: "Reviews", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Accounts") @source(subgraph: "Reviews") diff --git a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Exclude_Type_System_Members_With_Internal_Tag_Which_Is_Private.graphql b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Exclude_Type_System_Members_With_Internal_Tag_Which_Is_Private.graphql index 772da05906e..192c8832497 100644 --- a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Exclude_Type_System_Members_With_Internal_Tag_Which_Is_Private.graphql +++ b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Exclude_Type_System_Members_With_Internal_Tag_Which_Is_Private.graphql @@ -10,6 +10,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews", name: "id", argument: "id") @resolver(subgraph: "Reviews", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -94,6 +96,8 @@ type User implements Node @resolver(subgraph: "Accounts", select: "{ usersById(ids: $User_id) }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") @resolver(subgraph: "Reviews", select: "{ authorById(id: $User_id) }", arguments: [ { name: "User_id", type: "ID!" } ]) @resolver(subgraph: "Reviews", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Accounts") @source(subgraph: "Reviews") diff --git a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Expose_Tags_On_Public_Schema.graphql b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Expose_Tags_On_Public_Schema.graphql index af4f7704761..9d3385666e6 100644 --- a/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Expose_Tags_On_Public_Schema.graphql +++ b/src/HotChocolate/Fusion/test/Composition.Tests/__snapshots__/TagTests.Expose_Tags_On_Public_Schema.graphql @@ -10,6 +10,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews", name: "id", argument: "id") @resolver(subgraph: "Reviews", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -108,6 +110,8 @@ type User implements Node birthdate: Date! @source(subgraph: "Accounts") @tag(name: "internal") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Accounts") @source(subgraph: "Reviews") diff --git a/src/HotChocolate/Fusion/test/Core.Tests/ConfigurationRewriterTests.cs b/src/HotChocolate/Fusion/test/Core.Tests/ConfigurationRewriterTests.cs index 35fb59c076e..ede2f4b2c4b 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/ConfigurationRewriterTests.cs +++ b/src/HotChocolate/Fusion/test/Core.Tests/ConfigurationRewriterTests.cs @@ -41,7 +41,7 @@ public async Task Rewrite_HttpClient_Configuration() var snapshot = new Snapshot(); snapshot.Add(configuration, "Original:"); snapshot.Add(rewritten, "Rewritten:"); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); // this should not throw var reader = new FusionGraphConfigurationReader(); diff --git a/src/HotChocolate/Fusion/test/Core.Tests/DataTests.cs b/src/HotChocolate/Fusion/test/Core.Tests/DataTests.cs index c2b83b0760f..3861394d703 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/DataTests.cs +++ b/src/HotChocolate/Fusion/test/Core.Tests/DataTests.cs @@ -58,7 +58,7 @@ query GetUser { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } diff --git a/src/HotChocolate/Fusion/test/Core.Tests/DemoIntegrationTests.cs b/src/HotChocolate/Fusion/test/Core.Tests/DemoIntegrationTests.cs index bbcffbd2c7a..89715e3639d 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/DemoIntegrationTests.cs +++ b/src/HotChocolate/Fusion/test/Core.Tests/DemoIntegrationTests.cs @@ -32,9 +32,7 @@ public async Task Authors_And_Reviews_AutoCompose() }); // assert - SchemaFormatter - .FormatAsString(fusionGraph) - .MatchSnapshot(extension: ".graphql"); + fusionGraph.MatchSnapshot(extension: ".graphql"); } [Fact] @@ -53,9 +51,7 @@ public async Task Authors_And_Reviews_And_Products_AutoCompose() }); // assert - SchemaFormatter - .FormatAsString(fusionGraph) - .MatchSnapshot(extension: ".graphql"); + fusionGraph.MatchSnapshot(extension: ".graphql"); } [Fact] @@ -104,7 +100,7 @@ query GetUser { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -149,7 +145,7 @@ query GetUser { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -194,7 +190,7 @@ query GetUser { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.NotNull(result.ExpectQueryResult().Errors); Assert.NotEmpty(result.ExpectQueryResult().Errors!); @@ -247,7 +243,7 @@ subscription OnNewReview { // assert var snapshot = new Snapshot(); await CollectStreamSnapshotData(snapshot, request, result, fusionGraph, cts.Token); - await snapshot.MatchAsync(cts.Token); + await snapshot.MatchMarkdownAsync(cts.Token); } [Fact(Skip = "Fix stream order")] @@ -298,7 +294,7 @@ subscription OnNewReview { // assert var snapshot = new Snapshot(); await CollectStreamSnapshotData(snapshot, request, result, fusionGraph, cts.Token); - await snapshot.MatchAsync(cts.Token); + await snapshot.MatchMarkdownAsync(cts.Token); } [Fact] @@ -359,7 +355,7 @@ query GetUser { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -409,7 +405,7 @@ query ReformatIds { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -459,7 +455,7 @@ query ReformatIds { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -510,7 +506,7 @@ query GetUser { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -562,7 +558,7 @@ query TopProducts { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -615,7 +611,7 @@ query TopProducts { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -662,7 +658,7 @@ query TopProducts($first: Int!) { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -718,7 +714,7 @@ query Introspect { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -771,7 +767,7 @@ ... on User { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -821,7 +817,7 @@ ... on User { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -872,7 +868,7 @@ ... on User { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -925,7 +921,7 @@ ... on User { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -979,7 +975,7 @@ ... on User { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -1054,7 +1050,7 @@ public async Task Hot_Reload() snapshot.Add(result, "2. Version"); // assert - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -1096,7 +1092,7 @@ query Introspect { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -1149,7 +1145,7 @@ query ProductReviews( // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -1202,7 +1198,7 @@ public async Task Forward_Nested_Variables_No_OpName() // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -1259,7 +1255,7 @@ public async Task Forward_Nested_Variables_No_OpName_Two_RootSelections() // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -1314,7 +1310,7 @@ ... on Product { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -1371,7 +1367,7 @@ query ProductReviews( // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -1432,7 +1428,7 @@ query Requires { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -1492,7 +1488,7 @@ query Requires { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -1558,7 +1554,7 @@ query Large { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -1605,7 +1601,7 @@ query AfterNull($after: String) { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -1662,7 +1658,7 @@ query TopProducts { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } diff --git a/src/HotChocolate/Fusion/test/Core.Tests/ErrorTests.cs b/src/HotChocolate/Fusion/test/Core.Tests/ErrorTests.cs index d1f09b24860..354d65b9809 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/ErrorTests.cs +++ b/src/HotChocolate/Fusion/test/Core.Tests/ErrorTests.cs @@ -63,7 +63,7 @@ public async Task TopLevelResolveSubgraphError() // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + snapshot.MatchMarkdownSnapshot(); } [Fact] @@ -113,7 +113,7 @@ public async Task NestedResolveSubgraphError() // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + snapshot.MatchMarkdownSnapshot(); } [Fact] @@ -165,7 +165,7 @@ public async Task NestedResolveWithListSubgraphError() // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + snapshot.MatchMarkdownSnapshot(); } [Fact] @@ -215,7 +215,7 @@ public async Task ResolveByKeySubgraphError() // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + snapshot.MatchMarkdownSnapshot(); } [Fact] @@ -265,7 +265,7 @@ query ReformatIds { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + snapshot.MatchMarkdownSnapshot(); } [Fact] @@ -315,7 +315,7 @@ query ReformatIds { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + snapshot.MatchMarkdownSnapshot(); } [Fact] @@ -365,7 +365,7 @@ query ReformatIds { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + snapshot.MatchMarkdownSnapshot(); } [Fact] diff --git a/src/HotChocolate/Fusion/test/Core.Tests/EventStreamTests.cs b/src/HotChocolate/Fusion/test/Core.Tests/EventStreamTests.cs index bac88c05c48..b45f5094951 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/EventStreamTests.cs +++ b/src/HotChocolate/Fusion/test/Core.Tests/EventStreamTests.cs @@ -63,7 +63,7 @@ subscription OnNewReview { // assert var snapshot = new Snapshot(); await CollectStreamSnapshotData(snapshot, request, result, fusionGraph, cts.Token); - await snapshot.MatchAsync(cts.Token); + await snapshot.MatchMarkdownAsync(cts.Token); } private sealed class NoWebSockets : IWebSocketConnectionFactory diff --git a/src/HotChocolate/Fusion/test/Core.Tests/FileUploadTests.cs b/src/HotChocolate/Fusion/test/Core.Tests/FileUploadTests.cs index 4525ae7b291..6127d613ad2 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/FileUploadTests.cs +++ b/src/HotChocolate/Fusion/test/Core.Tests/FileUploadTests.cs @@ -39,9 +39,7 @@ public async Task AutoCompose() }); // assert - SchemaFormatter - .FormatAsString(fusionGraph) - .MatchSnapshot(extension: ".graphql"); + fusionGraph.MatchSnapshot(extension: ".graphql"); } [Fact] @@ -93,7 +91,7 @@ mutation Upload($file: Upload!) { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(cts.Token); + await snapshot.MatchMarkdownAsync(cts.Token); } [Fact] @@ -149,7 +147,7 @@ mutation Upload($input: UploadProductPictureInput!) { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(cts.Token); + await snapshot.MatchMarkdownAsync(cts.Token); } private sealed class NoWebSockets : IWebSocketConnectionFactory diff --git a/src/HotChocolate/Fusion/test/Core.Tests/InterfaceTests.cs b/src/HotChocolate/Fusion/test/Core.Tests/InterfaceTests.cs index 42a3adf1ec8..771a5e48b80 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/InterfaceTests.cs +++ b/src/HotChocolate/Fusion/test/Core.Tests/InterfaceTests.cs @@ -65,7 +65,7 @@ query Appointments { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -118,7 +118,7 @@ ... on Patient1 { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } @@ -173,7 +173,7 @@ ... on Patient1 { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } diff --git a/src/HotChocolate/Fusion/test/Core.Tests/IntrospectionTests.cs b/src/HotChocolate/Fusion/test/Core.Tests/IntrospectionTests.cs index 6d39c08a37c..d63adde3781 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/IntrospectionTests.cs +++ b/src/HotChocolate/Fusion/test/Core.Tests/IntrospectionTests.cs @@ -48,7 +48,7 @@ public async Task ShortCircuit_RootTypeName_Requests() // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); Assert.Null(result.ExpectQueryResult().Errors); } diff --git a/src/HotChocolate/Fusion/test/Core.Tests/RequestPlannerTests.cs b/src/HotChocolate/Fusion/test/Core.Tests/RequestPlannerTests.cs index c5cd1e0dcf5..4b46a27e7fc 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/RequestPlannerTests.cs +++ b/src/HotChocolate/Fusion/test/Core.Tests/RequestPlannerTests.cs @@ -52,7 +52,7 @@ query GetUser { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -98,7 +98,7 @@ query GetUser { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -129,7 +129,7 @@ query GetUser { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -161,7 +161,7 @@ query TopProducts($first: Int!) { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -200,7 +200,7 @@ query TopProducts { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -242,7 +242,7 @@ query Introspect { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -287,7 +287,7 @@ query TopProducts($first: Int!) { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -324,7 +324,7 @@ mutation AddReview { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -369,7 +369,7 @@ mutation AddReviews { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -415,7 +415,7 @@ mutation AddReviews { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -461,7 +461,7 @@ mutation AddReviewAndUser { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -495,7 +495,7 @@ subscription OnNewReview { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -530,7 +530,7 @@ subscription OnNewReview { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -564,7 +564,7 @@ ... on User { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -601,7 +601,7 @@ ... on User { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -640,7 +640,7 @@ ... on User { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -679,7 +679,7 @@ query GetUser { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -722,7 +722,7 @@ ... on Review { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -767,7 +767,7 @@ query Requires { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -812,7 +812,7 @@ query GetUser { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -856,7 +856,7 @@ query Requires { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -891,7 +891,7 @@ query Appointments { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -930,7 +930,7 @@ ... on Patient1 { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -976,7 +976,7 @@ query Requires { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } @@ -1014,7 +1014,7 @@ query Appointments($first: Int!) { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -1055,7 +1055,7 @@ query TopProducts { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -1095,7 +1095,7 @@ query Query { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -1153,7 +1153,7 @@ query Query { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -1211,7 +1211,7 @@ query Query { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -1271,7 +1271,7 @@ query Query { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -1314,7 +1314,7 @@ query Test { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -1357,7 +1357,7 @@ query Test { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -1400,7 +1400,7 @@ query Test { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -1443,7 +1443,7 @@ query Test($variable: TestEnum) { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } [Fact] @@ -1492,7 +1492,7 @@ query Test { var snapshot = new Snapshot(); snapshot.Add(result.UserRequest, nameof(result.UserRequest)); snapshot.Add(result.QueryPlan, nameof(result.QueryPlan)); - await snapshot.MatchAsync(); + await snapshot.MatchMarkdownAsync(); } private static async Task<(DocumentNode UserRequest, Execution.Nodes.QueryPlan QueryPlan)> CreateQueryPlanAsync( diff --git a/src/HotChocolate/Fusion/test/Core.Tests/TestHelper.cs b/src/HotChocolate/Fusion/test/Core.Tests/TestHelper.cs index 49940f1e5ab..a3db81bde6a 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/TestHelper.cs +++ b/src/HotChocolate/Fusion/test/Core.Tests/TestHelper.cs @@ -15,6 +15,7 @@ public static void CollectSnapshotData( Skimmed.Schema fusionGraph) { snapshot.Add(request, "User Request"); + snapshot.Add(result, "Result"); if (result.ContextData is not null && result.ContextData.TryGetValue("queryPlan", out var value) && @@ -24,8 +25,7 @@ public static void CollectSnapshotData( snapshot.Add(queryPlan.Hash, "QueryPlan Hash"); } - snapshot.Add(result, "Result"); - snapshot.Add(SchemaFormatter.FormatAsString(fusionGraph), "Fusion Graph"); + snapshot.Add(fusionGraph, "Fusion Graph"); } public static async Task CollectStreamSnapshotData( @@ -53,6 +53,6 @@ public static async Task CollectStreamSnapshotData( snapshot.Add(item, $"Result {++i}"); } - snapshot.Add(SchemaFormatter.FormatAsString(fusionGraph), "Fusion Graph"); + snapshot.Add(fusionGraph, "Fusion Graph"); } -} \ No newline at end of file +} diff --git a/src/HotChocolate/Fusion/test/Core.Tests/UnionTests.cs b/src/HotChocolate/Fusion/test/Core.Tests/UnionTests.cs index 929396777b5..c5278be5cbd 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/UnionTests.cs +++ b/src/HotChocolate/Fusion/test/Core.Tests/UnionTests.cs @@ -81,7 +81,7 @@ ... on ProductNotFoundError { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(cts.Token); + await snapshot.MatchMarkdownAsync(cts.Token); } [Fact] @@ -143,7 +143,7 @@ ... on ProductNotFoundError { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(cts.Token); + await snapshot.MatchMarkdownAsync(cts.Token); } [Fact] @@ -202,7 +202,7 @@ mutation Upload($input: UploadProductPictureInput!) { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(cts.Token); + await snapshot.MatchMarkdownAsync(cts.Token); } [Fact] @@ -261,7 +261,7 @@ mutation Upload($input: UploadProductPictureInput!) { // assert var snapshot = new Snapshot(); CollectSnapshotData(snapshot, request, result, fusionGraph); - await snapshot.MatchAsync(cts.Token); + await snapshot.MatchMarkdownAsync(cts.Token); } private sealed class NoWebSockets : IWebSocketConnectionFactory diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ConfigurationRewriterTests.Rewrite_HttpClient_Configuration.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ConfigurationRewriterTests.Rewrite_HttpClient_Configuration.md similarity index 95% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ConfigurationRewriterTests.Rewrite_HttpClient_Configuration.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ConfigurationRewriterTests.Rewrite_HttpClient_Configuration.md index 22d322bd9fd..38d3a93e0be 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ConfigurationRewriterTests.Rewrite_HttpClient_Configuration.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ConfigurationRewriterTests.Rewrite_HttpClient_Configuration.md @@ -1,5 +1,8 @@ -Original: ---------------- +# Rewrite_HttpClient_Configuration + +## Original: + +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @transport(subgraph: "Reviews2", location: "ws:\/\/localhost:5000\/graphql", kind: "WebSocket") @transport(subgraph: "Accounts", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @transport(subgraph: "Accounts", location: "ws:\/\/localhost:5000\/graphql", kind: "WebSocket") { query: Query mutation: Mutation @@ -7,6 +10,7 @@ schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/ } type Query { + errorField: String @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) reviewById(id: ID!): Review @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ reviewById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) reviewOrAuthor: ReviewOrAuthor! @resolver(subgraph: "Reviews2", select: "{ reviewOrAuthor }") @@ -42,6 +46,7 @@ type Product @variable(subgraph: "Reviews2", name: "Product_id", select: "id") @ type Review implements Node @variable(subgraph: "Reviews2", name: "Review_id", select: "id") @resolver(subgraph: "Reviews2", select: "{ reviewById(id: $Review_id) }", arguments: [ { name: "Review_id", type: "ID!" } ]) @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $Review_id) { ... on Review { ... Review } } }", arguments: [ { name: "Review_id", type: "[ID!]!" } ], kind: "BATCH") { author: User! @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @source(subgraph: "Reviews2") } @@ -54,6 +59,7 @@ type SomeData { "The user who wrote the review." type User implements Node @variable(subgraph: "Reviews2", name: "User_id", select: "id") @variable(subgraph: "Accounts", name: "User_id", select: "id") @resolver(subgraph: "Reviews2", select: "{ authorById(id: $User_id) }", arguments: [ { name: "User_id", type: "ID!" } ]) @resolver(subgraph: "Accounts", select: "{ userById(id: $User_id) }", arguments: [ { name: "User_id", type: "ID!" } ]) @resolver(subgraph: "Accounts", select: "{ usersById(ids: $User_id) }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") name: String! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") reviews: [Review!]! @source(subgraph: "Reviews2") @@ -87,10 +93,11 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` -Rewritten: ---------------- +## Rewritten: + +```graphql schema @fusion(version: 1) @transport(group: "Reviews2", subgraph: "Reviews2", location: "http:\/\/client\/", location: "http:\/\/client\/", kind: "HTTP") @transport(subgraph: "Reviews2", location: "ws:\/\/localhost:5000\/graphql", kind: "WebSocket") @transport(group: "Accounts", subgraph: "Accounts", location: "http:\/\/client\/", location: "http:\/\/client\/", kind: "HTTP") @transport(subgraph: "Accounts", location: "ws:\/\/localhost:5000\/graphql", kind: "WebSocket") { query: Query mutation: Mutation @@ -98,6 +105,7 @@ schema @fusion(version: 1) @transport(group: "Reviews2", subgraph: "Reviews2", l } type Query { + errorField: String @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) reviewById(id: ID!): Review @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ reviewById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) reviewOrAuthor: ReviewOrAuthor! @resolver(subgraph: "Reviews2", select: "{ reviewOrAuthor }") @@ -133,6 +141,7 @@ type Product @variable(subgraph: "Reviews2", name: "Product_id", select: "id") @ type Review implements Node @variable(subgraph: "Reviews2", name: "Review_id", select: "id") @resolver(subgraph: "Reviews2", select: "{ reviewById(id: $Review_id) }", arguments: [ { name: "Review_id", type: "ID!" } ]) @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $Review_id) { ... on Review { ... Review } } }", arguments: [ { name: "Review_id", type: "[ID!]!" } ], kind: "BATCH") { author: User! @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @source(subgraph: "Reviews2") } @@ -145,6 +154,7 @@ type SomeData { "The user who wrote the review." type User implements Node @variable(subgraph: "Reviews2", name: "User_id", select: "id") @variable(subgraph: "Accounts", name: "User_id", select: "id") @resolver(subgraph: "Reviews2", select: "{ authorById(id: $User_id) }", arguments: [ { name: "User_id", type: "ID!" } ]) @resolver(subgraph: "Accounts", select: "{ userById(id: $User_id) }", arguments: [ { name: "User_id", type: "ID!" } ]) @resolver(subgraph: "Accounts", select: "{ usersById(ids: $User_id) }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") name: String! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") reviews: [Review!]! @source(subgraph: "Reviews2") @@ -178,4 +188,5 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DataTests.Fetch_Data_Across_Subgraphs.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DataTests.Fetch_Data_Across_Subgraphs.md similarity index 94% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DataTests.Fetch_Data_Across_Subgraphs.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DataTests.Fetch_Data_Across_Subgraphs.md index 4db27cb60e0..7b775b77748 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DataTests.Fetch_Data_Across_Subgraphs.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DataTests.Fetch_Data_Across_Subgraphs.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Fetch_Data_Across_Subgraphs + +## User Request + +```graphql query GetUser { viewer { data { @@ -8,10 +11,26 @@ query GetUser { } } } ---------------- +``` + +## Result + +```json +{ + "data": { + "viewer": { + "data": { + "accountValue": "Account", + "reviewsValue": "Reviews2" + } + } + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query GetUser { viewer { data { accountValue reviewsValue } } }", "operation": "GetUser", @@ -44,29 +63,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 0945927521FCEB9066754DDECB9BC7D43B187B4E ---------------- +``` -Result ---------------- -{ - "data": { - "viewer": { - "data": { - "accountValue": "Account", - "reviewsValue": "Reviews2" - } - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -79,6 +86,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -145,6 +154,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -168,6 +179,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -211,4 +224,5 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_AutoCompose.graphql b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_AutoCompose.graphql index b46caa2875e..99a488d7735 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_AutoCompose.graphql +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_AutoCompose.graphql @@ -12,6 +12,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -118,6 +120,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -152,6 +156,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_Introspection.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_Introspection.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_Introspection.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_Introspection.md index 129b697ce33..2f2cc78be73 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_Introspection.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_Introspection.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Authors_And_Reviews_And_Products_Introspection + +## User Request + +```graphql query Introspect { __schema { types { @@ -15,38 +18,11 @@ query Introspect { } } } ---------------- +``` -QueryPlan ---------------- -{ - "document": "query Introspect { __schema { types { name kind fields { name type { name kind } } } } }", - "operation": "Introspect", - "rootNode": { - "type": "Sequence", - "nodes": [ - { - "type": "Introspect", - "document": "{ __schema { types { name kind fields { name type { name kind } } } } }" - }, - { - "type": "Compose", - "selectionSetIds": [ - 0 - ] - } - ] - } -} ---------------- - -QueryPlan Hash ---------------- -3F4377696891DA698EAFD7B8D8BD8CB60FEC342E ---------------- +## Result -Result ---------------- +```json { "data": { "__schema": { @@ -365,6 +341,13 @@ Result "name": "Query", "kind": "OBJECT", "fields": [ + { + "name": "errorField", + "type": { + "name": "String", + "kind": "SCALAR" + } + }, { "name": "productById", "type": { @@ -616,6 +599,13 @@ Result "kind": "NON_NULL" } }, + { + "name": "errorField", + "type": { + "name": "String", + "kind": "SCALAR" + } + }, { "name": "id", "type": { @@ -697,6 +687,13 @@ Result "kind": "NON_NULL" } }, + { + "name": "errorField", + "type": { + "name": "String", + "kind": "SCALAR" + } + }, { "name": "id", "type": { @@ -839,10 +836,41 @@ Result } } } ---------------- +``` + +## QueryPlan + +```json +{ + "document": "query Introspect { __schema { types { name kind fields { name type { name kind } } } } }", + "operation": "Introspect", + "rootNode": { + "type": "Sequence", + "nodes": [ + { + "type": "Introspect", + "document": "{ __schema { types { name kind fields { name type { name kind } } } } }" + }, + { + "type": "Compose", + "selectionSetIds": [ + 0 + ] + } + ] + } +} +``` + +## QueryPlan Hash + +```text +3F4377696891DA698EAFD7B8D8BD8CB60FEC342E +``` -Fusion Graph ---------------- +## Fusion Graph + +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -857,6 +885,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -963,6 +993,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -997,6 +1029,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -1059,4 +1093,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_Query_TopProducts.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_Query_TopProducts.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_Query_TopProducts.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_Query_TopProducts.md index 70d51329771..26156a2c5e5 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_Query_TopProducts.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_Query_TopProducts.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Authors_And_Reviews_And_Products_Query_TopProducts + +## User Request + +```graphql query TopProducts { topProducts(first: 2) { name @@ -11,10 +14,50 @@ query TopProducts { } } } ---------------- +``` + +## Result + +```json +{ + "data": { + "topProducts": [ + { + "name": "Table", + "reviews": [ + { + "body": "Love it!", + "author": { + "name": "@ada" + } + }, + { + "body": "Prefer something else.", + "author": { + "name": "@alan" + } + } + ] + }, + { + "name": "Couch", + "reviews": [ + { + "body": "Too expensive.", + "author": { + "name": "@alan" + } + } + ] + } + ] + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query TopProducts { topProducts(first: 2) { name reviews { body author { name } } } }", "operation": "TopProducts", @@ -64,53 +107,17 @@ QueryPlan "__fusion_exports__1": "Product_id" } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text C5341AF7D1F79A5A4C17FED3BE9B194FBF30C918 ---------------- +``` -Result ---------------- -{ - "data": { - "topProducts": [ - { - "name": "Table", - "reviews": [ - { - "body": "Love it!", - "author": { - "name": "@ada" - } - }, - { - "body": "Prefer something else.", - "author": { - "name": "@alan" - } - } - ] - }, - { - "name": "Couch", - "reviews": [ - { - "body": "Too expensive.", - "author": { - "name": "@alan" - } - } - ] - } - ] - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -125,6 +132,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -231,6 +240,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -265,6 +276,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -327,4 +340,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_Query_TypeName.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_Query_TypeName.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_Query_TypeName.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_Query_TypeName.md index cf7dac6d446..22dffe51dc6 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_Query_TypeName.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_Query_TypeName.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Authors_And_Reviews_And_Products_Query_TypeName + +## User Request + +```graphql query TopProducts { __typename topProducts(first: 2) { @@ -12,10 +15,51 @@ query TopProducts { } } } ---------------- +``` + +## Result + +```json +{ + "data": { + "__typename": "Query", + "topProducts": [ + { + "__typename": "Product", + "reviews": [ + { + "__typename": "Review", + "author": { + "__typename": "User" + } + }, + { + "__typename": "Review", + "author": { + "__typename": "User" + } + } + ] + }, + { + "__typename": "Product", + "reviews": [ + { + "__typename": "Review", + "author": { + "__typename": "User" + } + } + ] + } + ] + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query TopProducts { __typename topProducts(first: 2) { __typename reviews { __typename author { __typename } } } }", "operation": "TopProducts", @@ -74,54 +118,17 @@ QueryPlan "__fusion_exports__1": "Product_id" } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 5262A2743338E9E565B8B4DEDFB63E8DC8AE2FC4 ---------------- +``` -Result ---------------- -{ - "data": { - "__typename": "Query", - "topProducts": [ - { - "__typename": "Product", - "reviews": [ - { - "__typename": "Review", - "author": { - "__typename": "User" - } - }, - { - "__typename": "Review", - "author": { - "__typename": "User" - } - } - ] - }, - { - "__typename": "Product", - "reviews": [ - { - "__typename": "Review", - "author": { - "__typename": "User" - } - } - ] - } - ] - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -136,6 +143,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -242,6 +251,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -276,6 +287,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -338,4 +351,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_With_Variables.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_With_Variables.md similarity index 95% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_With_Variables.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_With_Variables.md index 312731858e5..2b88e0862be 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_With_Variables.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_And_Products_With_Variables.md @@ -1,14 +1,35 @@ -User Request ---------------- +# Authors_And_Reviews_And_Products_With_Variables + +## User Request + +```graphql query TopProducts($first: Int!) { topProducts(first: $first) { id } } ---------------- +``` + +## Result + +```json +{ + "data": { + "topProducts": [ + { + "id": "UHJvZHVjdAppMQ==" + }, + { + "id": "UHJvZHVjdAppMg==" + } + ] + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query TopProducts($first: Int!) { topProducts(first: $first) { id } }", "operation": "TopProducts", @@ -35,31 +56,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text D95EB3DB7C743969F7A95EBD409217BF5E1BB5D8 ---------------- +``` -Result ---------------- -{ - "data": { - "topProducts": [ - { - "id": "UHJvZHVjdAppMQ==" - }, - { - "id": "UHJvZHVjdAppMg==" - } - ] - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -74,6 +81,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -180,6 +189,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -214,6 +225,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -276,4 +289,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_AutoCompose.graphql b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_AutoCompose.graphql index 6822afff434..2f31c0622bf 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_AutoCompose.graphql +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_AutoCompose.graphql @@ -10,6 +10,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -76,6 +78,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -99,6 +103,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Batch_Requests.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Batch_Requests.md similarity index 95% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Batch_Requests.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Batch_Requests.md index a53cbfb9c17..946427c45bf 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Batch_Requests.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Batch_Requests.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Authors_And_Reviews_Batch_Requests + +## User Request + +```graphql query GetUser { reviews { body @@ -8,10 +11,46 @@ query GetUser { } } } ---------------- +``` + +## Result + +```json +{ + "data": { + "reviews": [ + { + "body": "Love it!", + "author": { + "birthdate": "1815-12-10" + } + }, + { + "body": "Too expensive.", + "author": { + "birthdate": "1912-06-23" + } + }, + { + "body": "Could be better.", + "author": { + "birthdate": "1815-12-10" + } + }, + { + "body": "Prefer something else.", + "author": { + "birthdate": "1912-06-23" + } + } + ] + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query GetUser { reviews { body author { birthdate } } }", "operation": "GetUser", @@ -61,49 +100,17 @@ QueryPlan "__fusion_exports__1": "User_id" } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 333DF30FB036FBB1BEB270E16C4A7D635684E74A ---------------- +``` -Result ---------------- -{ - "data": { - "reviews": [ - { - "body": "Love it!", - "author": { - "birthdate": "1815-12-10" - } - }, - { - "body": "Too expensive.", - "author": { - "birthdate": "1912-06-23" - } - }, - { - "body": "Could be better.", - "author": { - "birthdate": "1815-12-10" - } - }, - { - "body": "Prefer something else.", - "author": { - "birthdate": "1912-06-23" - } - } - ] - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -118,6 +125,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") "Fetches an object given its ID." node("ID of the object." id: ID!): Node @variable(subgraph: "Reviews2", name: "id", argument: "id") @@ -196,6 +205,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -219,6 +230,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -262,4 +275,5 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_GetUserById.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_GetUserById.md similarity index 94% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_GetUserById.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_GetUserById.md index a1ea065eebe..a54f311948e 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_GetUserById.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_GetUserById.md @@ -1,14 +1,30 @@ -User Request ---------------- +# Authors_And_Reviews_Query_GetUserById + +## User Request + +```graphql query GetUser { userById(id: "VXNlcgppMQ==") { id } } ---------------- +``` + +## Result + +```json +{ + "data": { + "userById": { + "id": "VXNlcgppMQ==" + } + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query GetUser { userById(id: \u0022VXNlcgppMQ==\u0022) { id } }", "operation": "GetUser", @@ -30,26 +46,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 09961F039AB8E9A5FDD54304FF938C9277EF0562 ---------------- +``` -Result ---------------- -{ - "data": { - "userById": { - "id": "VXNlcgppMQ==" - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -62,6 +69,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -128,6 +137,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -151,6 +162,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -194,4 +207,5 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_GetUserById_With_Invalid_Id_Value.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_GetUserById_With_Invalid_Id_Value.md similarity index 93% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_GetUserById_With_Invalid_Id_Value.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_GetUserById_With_Invalid_Id_Value.md index 35cb41b7347..079f30b8002 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_GetUserById_With_Invalid_Id_Value.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_GetUserById_With_Invalid_Id_Value.md @@ -1,14 +1,33 @@ -User Request ---------------- +# Authors_And_Reviews_Query_GetUserById_With_Invalid_Id_Value + +## User Request + +```graphql query GetUser { userById(id: 1) { id } } ---------------- +``` + +## Result + +```json +{ + "errors": [ + { + "message": "The ID `1` has an invalid format." + } + ], + "data": { + "userById": null + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query GetUser { userById(id: 1) { id } }", "operation": "GetUser", @@ -30,29 +49,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 7D1C123A297876C8F5C32BC231900D1706858A87 ---------------- +``` -Result ---------------- -{ - "errors": [ - { - "message": "The ID `1` has an invalid format." - } - ], - "data": { - "userById": null - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -65,6 +72,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -131,6 +140,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -154,6 +165,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -197,4 +210,5 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_GetUserReviews.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_GetUserReviews.md similarity index 95% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_GetUserReviews.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_GetUserReviews.md index 481b41dea23..9b92bee65c9 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_GetUserReviews.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_GetUserReviews.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Authors_And_Reviews_Query_GetUserReviews + +## User Request + +```graphql query GetUser { users { name @@ -11,10 +14,56 @@ query GetUser { } } } ---------------- +``` + +## Result + +```json +{ + "data": { + "users": [ + { + "name": "Ada Lovelace", + "reviews": [ + { + "body": "Love it!", + "author": { + "name": "@ada" + } + }, + { + "body": "Could be better.", + "author": { + "name": "@ada" + } + } + ] + }, + { + "name": "Alan Turing", + "reviews": [ + { + "body": "Too expensive.", + "author": { + "name": "@alan" + } + }, + { + "body": "Prefer something else.", + "author": { + "name": "@alan" + } + } + ] + } + ] + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query GetUser { users { name reviews { body author { name } } } }", "operation": "GetUser", @@ -64,59 +113,17 @@ QueryPlan "__fusion_exports__1": "User_id" } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 8F6E2CCB58DA60498BA9F134BF2F1B8D5C24FBA0 ---------------- +``` -Result ---------------- -{ - "data": { - "users": [ - { - "name": "Ada Lovelace", - "reviews": [ - { - "body": "Love it!", - "author": { - "name": "@ada" - } - }, - { - "body": "Could be better.", - "author": { - "name": "@ada" - } - } - ] - }, - { - "name": "Alan Turing", - "reviews": [ - { - "body": "Too expensive.", - "author": { - "name": "@alan" - } - }, - { - "body": "Prefer something else.", - "author": { - "name": "@alan" - } - } - ] - } - ] - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -129,6 +136,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -195,6 +204,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -218,6 +229,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -261,4 +274,5 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_Reformat_AuthorIds.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_Reformat_AuthorIds.md similarity index 95% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_Reformat_AuthorIds.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_Reformat_AuthorIds.md index dac246ba197..9a6957e5852 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_Reformat_AuthorIds.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_Reformat_AuthorIds.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Authors_And_Reviews_Query_Reformat_AuthorIds + +## User Request + +```graphql query ReformatIds { reviews { author { @@ -7,40 +10,11 @@ query ReformatIds { } } } ---------------- +``` -QueryPlan ---------------- -{ - "document": "query ReformatIds { reviews { author { id } } }", - "operation": "ReformatIds", - "rootNode": { - "type": "Sequence", - "nodes": [ - { - "type": "Resolve", - "subgraph": "Reviews", - "document": "query ReformatIds_1 { reviews { author { id } } }", - "selectionSetId": 0 - }, - { - "type": "Compose", - "selectionSetIds": [ - 0 - ] - } - ] - } -} ---------------- - -QueryPlan Hash ---------------- -9F1489CA5289059663ED412471F2C4B87F8A4911 ---------------- +## Result -Result ---------------- +```json { "data": { "reviews": [ @@ -67,10 +41,43 @@ Result ] } } ---------------- +``` + +## QueryPlan + +```json +{ + "document": "query ReformatIds { reviews { author { id } } }", + "operation": "ReformatIds", + "rootNode": { + "type": "Sequence", + "nodes": [ + { + "type": "Resolve", + "subgraph": "Reviews", + "document": "query ReformatIds_1 { reviews { author { id } } }", + "selectionSetId": 0 + }, + { + "type": "Compose", + "selectionSetIds": [ + 0 + ] + } + ] + } +} +``` -Fusion Graph ---------------- +## QueryPlan Hash + +```text +9F1489CA5289059663ED412471F2C4B87F8A4911 +``` + +## Fusion Graph + +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -85,6 +92,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") "Fetches an object given its ID." node("ID of the object." id: ID!): Node @variable(subgraph: "Reviews", name: "id", argument: "id") @@ -183,6 +192,8 @@ type User implements Node @resolver(subgraph: "Reviews", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews") @source(subgraph: "Accounts") @@ -224,4 +235,5 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_ReviewsUser.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_ReviewsUser.md similarity index 95% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_ReviewsUser.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_ReviewsUser.md index ea475a26bf0..7c42dee391c 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_ReviewsUser.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Authors_And_Reviews_Query_ReviewsUser.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Authors_And_Reviews_Query_ReviewsUser + +## User Request + +```graphql query GetUser { a: reviews { body @@ -23,79 +26,11 @@ query GetUser { } } } ---------------- +``` -QueryPlan ---------------- -{ - "document": "query GetUser { a: reviews { body author { name } } b: reviews { body author { name } } users { name reviews { body author { name } } } }", - "operation": "GetUser", - "rootNode": { - "type": "Sequence", - "nodes": [ - { - "type": "Parallel", - "nodes": [ - { - "type": "Resolve", - "subgraph": "Reviews2", - "document": "query GetUser_1 { a: reviews { body author { name } } b: reviews { body author { name } } }", - "selectionSetId": 0 - }, - { - "type": "Resolve", - "subgraph": "Accounts", - "document": "query GetUser_2 { users { name __fusion_exports__1: id } }", - "selectionSetId": 0, - "provides": [ - { - "variable": "__fusion_exports__1" - } - ] - } - ] - }, - { - "type": "Compose", - "selectionSetIds": [ - 0 - ] - }, - { - "type": "ResolveByKeyBatch", - "subgraph": "Reviews2", - "document": "query GetUser_3($__fusion_exports__1: [ID!]!) { nodes(ids: $__fusion_exports__1) { ... on User { reviews { body author { name } } __fusion_exports__1: id } } }", - "selectionSetId": 1, - "path": [ - "nodes" - ], - "requires": [ - { - "variable": "__fusion_exports__1" - } - ] - }, - { - "type": "Compose", - "selectionSetIds": [ - 1 - ] - } - ] - }, - "state": { - "__fusion_exports__1": "User_id" - } -} ---------------- - -QueryPlan Hash ---------------- -3FC299961B8EECB810A073703612092CC602232F ---------------- +## Result -Result ---------------- +```json { "data": { "a": [ @@ -188,10 +123,82 @@ Result ] } } ---------------- +``` + +## QueryPlan -Fusion Graph ---------------- +```json +{ + "document": "query GetUser { a: reviews { body author { name } } b: reviews { body author { name } } users { name reviews { body author { name } } } }", + "operation": "GetUser", + "rootNode": { + "type": "Sequence", + "nodes": [ + { + "type": "Parallel", + "nodes": [ + { + "type": "Resolve", + "subgraph": "Reviews2", + "document": "query GetUser_1 { a: reviews { body author { name } } b: reviews { body author { name } } }", + "selectionSetId": 0 + }, + { + "type": "Resolve", + "subgraph": "Accounts", + "document": "query GetUser_2 { users { name __fusion_exports__1: id } }", + "selectionSetId": 0, + "provides": [ + { + "variable": "__fusion_exports__1" + } + ] + } + ] + }, + { + "type": "Compose", + "selectionSetIds": [ + 0 + ] + }, + { + "type": "ResolveByKeyBatch", + "subgraph": "Reviews2", + "document": "query GetUser_3($__fusion_exports__1: [ID!]!) { nodes(ids: $__fusion_exports__1) { ... on User { reviews { body author { name } } __fusion_exports__1: id } } }", + "selectionSetId": 1, + "path": [ + "nodes" + ], + "requires": [ + { + "variable": "__fusion_exports__1" + } + ] + }, + { + "type": "Compose", + "selectionSetIds": [ + 1 + ] + } + ] + }, + "state": { + "__fusion_exports__1": "User_id" + } +} +``` + +## QueryPlan Hash + +```text +3FC299961B8EECB810A073703612092CC602232F +``` + +## Fusion Graph + +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -204,6 +211,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -270,6 +279,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -293,6 +304,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -336,4 +349,5 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Invalid_Node_Field.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Invalid_Node_Field.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Invalid_Node_Field.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Invalid_Node_Field.md index a35f9a1c1be..4cc93699003 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Invalid_Node_Field.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Invalid_Node_Field.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Fetch_User_With_Invalid_Node_Field + +## User Request + +```graphql query FetchNode($id: ID!) { node(id: $id) { ... on User { @@ -7,10 +10,35 @@ query FetchNode($id: ID!) { } } } ---------------- +``` + +## Result + +```json +{ + "errors": [ + { + "message": "The id value has an invalid format.", + "locations": [ + { + "line": 2, + "column": 5 + } + ], + "path": [ + "node" + ] + } + ], + "data": { + "node": null + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query FetchNode($id: ID!) { node(id: $id) { ... on User { id } } }", "operation": "FetchNode", @@ -75,38 +103,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 1A21CA422439C6540C53FC5028089D965C5F8A03 ---------------- +``` -Result ---------------- -{ - "errors": [ - { - "message": "The id value has an invalid format.", - "locations": [ - { - "line": 2, - "column": 5 - } - ], - "path": [ - "node" - ] - } - ], - "data": { - "node": null - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -124,6 +131,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") "Fetches an object given its ID." node("ID of the object." id: ID!): Node @variable(subgraph: "Reviews2", name: "id", argument: "id") @@ -246,6 +255,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -280,6 +291,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -342,4 +355,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field.md index e5c4483f8ca..7a4675ef53a 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Fetch_User_With_Node_Field + +## User Request + +```graphql query FetchNode($id: ID!) { node(id: $id) { ... on User { @@ -7,10 +10,23 @@ query FetchNode($id: ID!) { } } } ---------------- +``` + +## Result + +```json +{ + "data": { + "node": { + "id": "VXNlcgppMQ==" + } + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query FetchNode($id: ID!) { node(id: $id) { ... on User { id } } }", "operation": "FetchNode", @@ -75,26 +91,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 1A21CA422439C6540C53FC5028089D965C5F8A03 ---------------- +``` -Result ---------------- -{ - "data": { - "node": { - "id": "VXNlcgppMQ==" - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -112,6 +119,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") "Fetches an object given its ID." node("ID of the object." id: ID!): Node @variable(subgraph: "Reviews2", name: "id", argument: "id") @@ -234,6 +243,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -268,6 +279,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -330,4 +343,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field_From_Two_Subgraphs.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field_From_Two_Subgraphs.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field_From_Two_Subgraphs.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field_From_Two_Subgraphs.md index 7940fb16db4..12e1b31d784 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field_From_Two_Subgraphs.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field_From_Two_Subgraphs.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Fetch_User_With_Node_Field_From_Two_Subgraphs + +## User Request + +```graphql query FetchNode($id: ID!) { node(id: $id) { ... on User { @@ -10,10 +13,31 @@ query FetchNode($id: ID!) { } } } ---------------- +``` + +## Result + +```json +{ + "data": { + "node": { + "birthdate": "1815-12-10", + "reviews": [ + { + "body": "Love it!" + }, + { + "body": "Could be better." + } + ] + } + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query FetchNode($id: ID!) { node(id: $id) { ... on User { birthdate reviews { body } } } }", "operation": "FetchNode", @@ -101,34 +125,17 @@ QueryPlan "__fusion_exports__1": "User_id" } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text CF2FA54AB2C2B903352C6B622DDDE63DD34CE7A4 ---------------- +``` -Result ---------------- -{ - "data": { - "node": { - "birthdate": "1815-12-10", - "reviews": [ - { - "body": "Love it!" - }, - { - "body": "Could be better." - } - ] - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -146,6 +153,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") "Fetches an object given its ID." node("ID of the object." id: ID!): Node @variable(subgraph: "Reviews2", name: "id", argument: "id") @@ -268,6 +277,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -302,6 +313,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -364,4 +377,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field_Pass_In_Review_Id.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field_Pass_In_Review_Id.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field_Pass_In_Review_Id.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field_Pass_In_Review_Id.md index 0df8c6d3aeb..7b2e54adb90 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field_Pass_In_Review_Id.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field_Pass_In_Review_Id.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Fetch_User_With_Node_Field_Pass_In_Review_Id + +## User Request + +```graphql query FetchNode($id: ID!) { node(id: $id) { ... on User { @@ -7,10 +10,21 @@ query FetchNode($id: ID!) { } } } ---------------- +``` + +## Result + +```json +{ + "data": { + "node": {} + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query FetchNode($id: ID!) { node(id: $id) { ... on User { id } } }", "operation": "FetchNode", @@ -75,24 +89,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 1A21CA422439C6540C53FC5028089D965C5F8A03 ---------------- +``` -Result ---------------- -{ - "data": { - "node": {} - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -110,6 +117,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") "Fetches an object given its ID." node("ID of the object." id: ID!): Node @variable(subgraph: "Reviews2", name: "id", argument: "id") @@ -232,6 +241,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -266,6 +277,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -328,4 +341,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field_Pass_In_Unknown_Id.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field_Pass_In_Unknown_Id.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field_Pass_In_Unknown_Id.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field_Pass_In_Unknown_Id.md index a35f9a1c1be..9984386201f 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field_Pass_In_Unknown_Id.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Fetch_User_With_Node_Field_Pass_In_Unknown_Id.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Fetch_User_With_Node_Field_Pass_In_Unknown_Id + +## User Request + +```graphql query FetchNode($id: ID!) { node(id: $id) { ... on User { @@ -7,10 +10,35 @@ query FetchNode($id: ID!) { } } } ---------------- +``` + +## Result + +```json +{ + "errors": [ + { + "message": "The id value has an invalid format.", + "locations": [ + { + "line": 2, + "column": 5 + } + ], + "path": [ + "node" + ] + } + ], + "data": { + "node": null + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query FetchNode($id: ID!) { node(id: $id) { ... on User { id } } }", "operation": "FetchNode", @@ -75,38 +103,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 1A21CA422439C6540C53FC5028089D965C5F8A03 ---------------- +``` -Result ---------------- -{ - "errors": [ - { - "message": "The id value has an invalid format.", - "locations": [ - { - "line": 2, - "column": 5 - } - ], - "path": [ - "node" - ] - } - ], - "data": { - "node": null - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -124,6 +131,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") "Fetches an object given its ID." node("ID of the object." id: ID!): Node @variable(subgraph: "Reviews2", name: "id", argument: "id") @@ -246,6 +255,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -280,6 +291,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -342,4 +355,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Node_Variables.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Node_Variables.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Node_Variables.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Node_Variables.md index 42a20f464e2..f255f5af474 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Node_Variables.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Node_Variables.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Forward_Nested_Node_Variables + +## User Request + +```graphql query ProductReviews($id: ID!, $first: Int!) { node(id: $id) { ... on Product { @@ -8,10 +11,24 @@ query ProductReviews($id: ID!, $first: Int!) { } } } ---------------- +``` + +## Result + +```json +{ + "data": { + "node": { + "id": "UHJvZHVjdAppMQ==", + "repeat": 1 + } + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query ProductReviews($id: ID!, $first: Int!) { node(id: $id) { ... on Product { id repeat(num: $first) } } }", "operation": "ProductReviews", @@ -79,27 +96,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 802664ED0C849F707F3AA4098DE07E5D1D9E80DB ---------------- +``` -Result ---------------- -{ - "data": { - "node": { - "id": "UHJvZHVjdAppMQ==", - "repeat": 1 - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -117,6 +124,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") "Fetches an object given its ID." node("ID of the object." id: ID!): Node @variable(subgraph: "Reviews2", name: "id", argument: "id") @@ -239,6 +248,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -273,6 +284,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -335,4 +348,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Object_Variables.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Object_Variables.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Object_Variables.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Object_Variables.md index d9ba45a48d5..250c7dea379 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Object_Variables.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Object_Variables.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Forward_Nested_Object_Variables + +## User Request + +```graphql query ProductReviews($id: ID!, $first: Int!) { productById(id: $id) { id @@ -10,10 +13,28 @@ query ProductReviews($id: ID!, $first: Int!) { } } } ---------------- +``` + +## Result + +```json +{ + "data": { + "productById": { + "id": "UHJvZHVjdAppMQ==", + "repeatData": { + "data": { + "num": 1 + } + } + } + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query ProductReviews($id: ID!, $first: Int!) { productById(id: $id) { id repeatData(data: { data: { num: $first } }) { data { num } } } }", "operation": "ProductReviews", @@ -43,31 +64,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 8ECD591E2162E9499A4E7DAC6CA05988445547E6 ---------------- +``` -Result ---------------- -{ - "data": { - "productById": { - "id": "UHJvZHVjdAppMQ==", - "repeatData": { - "data": { - "num": 1 - } - } - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -85,6 +92,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") "Fetches an object given its ID." node("ID of the object." id: ID!): Node @variable(subgraph: "Reviews2", name: "id", argument: "id") @@ -207,6 +216,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -241,6 +252,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -303,4 +316,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Variables.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Variables.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Variables.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Variables.md index 23977c9afd5..65b99dfda9d 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Variables.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Variables.md @@ -1,15 +1,32 @@ -User Request ---------------- +# Forward_Nested_Variables + +## User Request + +```graphql query ProductReviews($id: ID!, $first: Int!) { productById(id: $id) { id repeat(num: $first) } } ---------------- +``` + +## Result + +```json +{ + "data": { + "productById": { + "id": "UHJvZHVjdAppMQ==", + "repeat": 1 + } + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query ProductReviews($id: ID!, $first: Int!) { productById(id: $id) { id repeat(num: $first) } }", "operation": "ProductReviews", @@ -39,27 +56,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text CAA1FE80B0D6C630C75664DB34FD91624B849F27 ---------------- +``` -Result ---------------- -{ - "data": { - "productById": { - "id": "UHJvZHVjdAppMQ==", - "repeat": 1 - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -77,6 +84,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") "Fetches an object given its ID." node("ID of the object." id: ID!): Node @variable(subgraph: "Reviews2", name: "id", argument: "id") @@ -199,6 +208,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -233,6 +244,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -295,4 +308,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Variables_No_OpName.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Variables_No_OpName.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Variables_No_OpName.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Variables_No_OpName.md index f6d0e1902b3..cd7bdb02751 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Variables_No_OpName.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Variables_No_OpName.md @@ -1,15 +1,32 @@ -User Request ---------------- +# Forward_Nested_Variables_No_OpName + +## User Request + +```graphql query($id: ID!, $first: Int!) { productById(id: $id) { id repeat(num: $first) } } ---------------- +``` + +## Result + +```json +{ + "data": { + "productById": { + "id": "UHJvZHVjdAppMQ==", + "repeat": 1 + } + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query($id: ID!, $first: Int!) { productById(id: $id) { id repeat(num: $first) } }", "rootNode": { @@ -38,27 +55,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 361C327571AE2F6013116F6DBD44EBDB241DA154 ---------------- +``` -Result ---------------- -{ - "data": { - "productById": { - "id": "UHJvZHVjdAppMQ==", - "repeat": 1 - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -76,6 +83,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") "Fetches an object given its ID." node("ID of the object." id: ID!): Node @variable(subgraph: "Reviews2", name: "id", argument: "id") @@ -198,6 +207,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -232,6 +243,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -294,4 +307,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Variables_No_OpName_Two_RootSelections.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Variables_No_OpName_Two_RootSelections.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Variables_No_OpName_Two_RootSelections.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Variables_No_OpName_Two_RootSelections.md index 3252e19537c..fb932b1c14d 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Variables_No_OpName_Two_RootSelections.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Forward_Nested_Variables_No_OpName_Two_RootSelections.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Forward_Nested_Variables_No_OpName_Two_RootSelections + +## User Request + +```graphql query($id: ID!, $first: Int!) { a: productById(id: $id) { id @@ -10,10 +13,28 @@ query($id: ID!, $first: Int!) { repeat(num: $first) } } ---------------- +``` + +## Result + +```json +{ + "data": { + "a": { + "id": "UHJvZHVjdAppMQ==", + "repeat": 1 + }, + "b": { + "id": "UHJvZHVjdAppMQ==", + "repeat": 1 + } + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query($id: ID!, $first: Int!) { a: productById(id: $id) { id repeat(num: $first) } b: productById(id: $id) { id repeat(num: $first) } }", "rootNode": { @@ -42,31 +63,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 0B9DDBAE987F3EF0FF2163307F2744D756A81213 ---------------- +``` -Result ---------------- -{ - "data": { - "a": { - "id": "UHJvZHVjdAppMQ==", - "repeat": 1 - }, - "b": { - "id": "UHJvZHVjdAppMQ==", - "repeat": 1 - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -84,6 +91,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") "Fetches an object given its ID." node("ID of the object." id: ID!): Node @variable(subgraph: "Reviews2", name: "id", argument: "id") @@ -206,6 +215,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -240,6 +251,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -302,4 +315,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.GetFirstPage_With_After_Null.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.GetFirstPage_With_After_Null.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.GetFirstPage_With_After_Null.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.GetFirstPage_With_After_Null.md index 9c56b969f48..df72b7ad5ea 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.GetFirstPage_With_After_Null.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.GetFirstPage_With_After_Null.md @@ -1,5 +1,8 @@ -User Request ---------------- +# GetFirstPage_With_After_Null + +## User Request + +```graphql query AfterNull($after: String) { appointments(after: $after) { nodes { @@ -7,10 +10,30 @@ query AfterNull($after: String) { } } } ---------------- +``` + +## Result -QueryPlan ---------------- +```json +{ + "data": { + "appointments": { + "nodes": [ + { + "id": "QXBwb2ludG1lbnQKaTE=" + }, + { + "id": "QXBwb2ludG1lbnQKaTI=" + } + ] + } + } +} +``` + +## QueryPlan + +```json { "document": "query AfterNull($after: String) { appointments(after: $after) { nodes { id } } }", "operation": "AfterNull", @@ -37,33 +60,17 @@ QueryPlan ] } } ---------------- +``` + +## QueryPlan Hash -QueryPlan Hash ---------------- +```text C601EB39A2F136D152B59B30853A0073588356FE ---------------- +``` -Result ---------------- -{ - "data": { - "appointments": { - "nodes": [ - { - "id": "QXBwb2ludG1lbnQKaTE=" - }, - { - "id": "QXBwb2ludG1lbnQKaTI=" - } - ] - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Appointment", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -171,4 +178,5 @@ interface IPatient { interface Node { id: ID! } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Hot_Reload.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Hot_Reload.md similarity index 84% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Hot_Reload.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Hot_Reload.md index 7653c3dfcc2..1b78fa8b1af 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Hot_Reload.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Hot_Reload.md @@ -1,9 +1,15 @@ -1. Version ---------------- +# Hot_Reload + +## 1. Version + +```json { "data": { "__type": { "fields": [ + { + "name": "errorField" + }, { "name": "node" }, @@ -26,10 +32,11 @@ } } } ---------------- +``` -2. Version ---------------- +## 2. Version + +```json { "data": { "__type": { @@ -37,6 +44,9 @@ { "name": "authorById" }, + { + "name": "errorField" + }, { "name": "node" }, @@ -71,4 +81,5 @@ } } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.QueryType_Parallel_Multiple_SubGraphs_WithArguments.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.QueryType_Parallel_Multiple_SubGraphs_WithArguments.md similarity index 97% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.QueryType_Parallel_Multiple_SubGraphs_WithArguments.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.QueryType_Parallel_Multiple_SubGraphs_WithArguments.md index 98b076a1474..82811b738e8 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.QueryType_Parallel_Multiple_SubGraphs_WithArguments.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.QueryType_Parallel_Multiple_SubGraphs_WithArguments.md @@ -1,5 +1,8 @@ -User Request ---------------- +# QueryType_Parallel_Multiple_SubGraphs_WithArguments + +## User Request + +```graphql query TopProducts { topProducts(first: 5) { weight @@ -12,10 +15,61 @@ query TopProducts { } } } ---------------- +``` + +## Result + +```json +{ + "data": { + "topProducts": [ + { + "weight": 100, + "deliveryEstimate": { + "min": 400, + "max": 800 + }, + "reviews": [ + { + "body": "Love it!" + }, + { + "body": "Prefer something else." + } + ] + }, + { + "weight": 1000, + "deliveryEstimate": { + "min": 2650, + "max": 5300 + }, + "reviews": [ + { + "body": "Too expensive." + } + ] + }, + { + "weight": 50, + "deliveryEstimate": { + "min": 45, + "max": 90 + }, + "reviews": [ + { + "body": "Could be better." + } + ] + } + ] + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query TopProducts { topProducts(first: 5) { weight deliveryEstimate(zip: \u002212345\u0022) { min max } reviews { body } } }", "operation": "TopProducts", @@ -98,64 +152,17 @@ QueryPlan "__fusion_exports__3": "Product_id" } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text FC03CBC397E93B9EFAE6B51FE7ACC718616299F7 ---------------- +``` -Result ---------------- -{ - "data": { - "topProducts": [ - { - "weight": 100, - "deliveryEstimate": { - "min": 400, - "max": 800 - }, - "reviews": [ - { - "body": "Love it!" - }, - { - "body": "Prefer something else." - } - ] - }, - { - "weight": 1000, - "deliveryEstimate": { - "min": 2650, - "max": 5300 - }, - "reviews": [ - { - "body": "Too expensive." - } - ] - }, - { - "weight": 50, - "deliveryEstimate": { - "min": 45, - "max": 90 - }, - "reviews": [ - { - "body": "Could be better." - } - ] - } - ] - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -175,6 +182,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") "Fetches an object given its ID." node("ID of the object." id: ID!): Node @variable(subgraph: "Reviews2", name: "id", argument: "id") @@ -315,6 +324,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -349,6 +360,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -411,4 +424,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Require_Data_In_Context.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Require_Data_In_Context.md similarity index 97% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Require_Data_In_Context.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Require_Data_In_Context.md index 641176af15a..65062025913 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Require_Data_In_Context.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Require_Data_In_Context.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Require_Data_In_Context + +## User Request + +```graphql query Requires { reviews { body @@ -16,10 +19,78 @@ query Requires { } } } ---------------- +``` + +## Result + +```json +{ + "data": { + "reviews": [ + { + "body": "Love it!", + "author": { + "name": "@ada", + "birthdate": "1815-12-10" + }, + "product": { + "name": "Table", + "deliveryEstimate": { + "min": 400, + "max": 800 + } + } + }, + { + "body": "Too expensive.", + "author": { + "name": "@alan", + "birthdate": "1912-06-23" + }, + "product": { + "name": "Couch", + "deliveryEstimate": { + "min": 2650, + "max": 5300 + } + } + }, + { + "body": "Could be better.", + "author": { + "name": "@ada", + "birthdate": "1815-12-10" + }, + "product": { + "name": "Chair", + "deliveryEstimate": { + "min": 45, + "max": 90 + } + } + }, + { + "body": "Prefer something else.", + "author": { + "name": "@alan", + "birthdate": "1912-06-23" + }, + "product": { + "name": "Table", + "deliveryEstimate": { + "min": 400, + "max": 800 + } + } + } + ] + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query Requires { reviews { body author { name birthdate } product { name deliveryEstimate(zip: \u002212345\u0022) { min max } } } }", "operation": "Requires", @@ -128,81 +199,17 @@ QueryPlan "__fusion_exports__4": "Product_id" } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 1B718F11ED7C5BDB1D2FFEEA7E9F43541950F756 ---------------- +``` -Result ---------------- -{ - "data": { - "reviews": [ - { - "body": "Love it!", - "author": { - "name": "@ada", - "birthdate": "1815-12-10" - }, - "product": { - "name": "Table", - "deliveryEstimate": { - "min": 400, - "max": 800 - } - } - }, - { - "body": "Too expensive.", - "author": { - "name": "@alan", - "birthdate": "1912-06-23" - }, - "product": { - "name": "Couch", - "deliveryEstimate": { - "min": 2650, - "max": 5300 - } - } - }, - { - "body": "Could be better.", - "author": { - "name": "@ada", - "birthdate": "1815-12-10" - }, - "product": { - "name": "Chair", - "deliveryEstimate": { - "min": 45, - "max": 90 - } - } - }, - { - "body": "Prefer something else.", - "author": { - "name": "@alan", - "birthdate": "1912-06-23" - }, - "product": { - "name": "Table", - "deliveryEstimate": { - "min": 400, - "max": 800 - } - } - } - ] - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -222,6 +229,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") "Fetches an object given its ID." node("ID of the object." id: ID!): Node @variable(subgraph: "Reviews2", name: "id", argument: "id") @@ -362,6 +371,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -396,6 +407,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -458,4 +471,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Require_Data_In_Context_2.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Require_Data_In_Context_2.md similarity index 97% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Require_Data_In_Context_2.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Require_Data_In_Context_2.md index 0686f5ea0d6..ccb1f91cc4f 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Require_Data_In_Context_2.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Require_Data_In_Context_2.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Require_Data_In_Context_2 + +## User Request + +```graphql query Requires { reviews { body @@ -15,10 +18,74 @@ query Requires { } } } ---------------- +``` + +## Result + +```json +{ + "data": { + "reviews": [ + { + "body": "Love it!", + "author": { + "name": "@ada", + "birthdate": "1815-12-10" + }, + "product": { + "deliveryEstimate": { + "min": 400, + "max": 800 + } + } + }, + { + "body": "Too expensive.", + "author": { + "name": "@alan", + "birthdate": "1912-06-23" + }, + "product": { + "deliveryEstimate": { + "min": 2650, + "max": 5300 + } + } + }, + { + "body": "Could be better.", + "author": { + "name": "@ada", + "birthdate": "1815-12-10" + }, + "product": { + "deliveryEstimate": { + "min": 45, + "max": 90 + } + } + }, + { + "body": "Prefer something else.", + "author": { + "name": "@alan", + "birthdate": "1912-06-23" + }, + "product": { + "deliveryEstimate": { + "min": 400, + "max": 800 + } + } + } + ] + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query Requires { reviews { body author { name birthdate } product { deliveryEstimate(zip: \u002212345\u0022) { min max } } } }", "operation": "Requires", @@ -127,77 +194,17 @@ QueryPlan "__fusion_exports__4": "Product_id" } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 156A66BF984BDE259CFD46F7024F2A1FFFC7A673 ---------------- +``` -Result ---------------- -{ - "data": { - "reviews": [ - { - "body": "Love it!", - "author": { - "name": "@ada", - "birthdate": "1815-12-10" - }, - "product": { - "deliveryEstimate": { - "min": 400, - "max": 800 - } - } - }, - { - "body": "Too expensive.", - "author": { - "name": "@alan", - "birthdate": "1912-06-23" - }, - "product": { - "deliveryEstimate": { - "min": 2650, - "max": 5300 - } - } - }, - { - "body": "Could be better.", - "author": { - "name": "@ada", - "birthdate": "1815-12-10" - }, - "product": { - "deliveryEstimate": { - "min": 45, - "max": 90 - } - } - }, - { - "body": "Prefer something else.", - "author": { - "name": "@alan", - "birthdate": "1912-06-23" - }, - "product": { - "deliveryEstimate": { - "min": 400, - "max": 800 - } - } - } - ] - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -217,6 +224,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") "Fetches an object given its ID." node("ID of the object." id: ID!): Node @variable(subgraph: "Reviews2", name: "id", argument: "id") @@ -357,6 +366,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -391,6 +402,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -453,4 +466,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Require_Data_In_Context_3.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Require_Data_In_Context_3.md similarity index 97% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Require_Data_In_Context_3.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Require_Data_In_Context_3.md index 8d9094002e0..716e298e2ad 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Require_Data_In_Context_3.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.Require_Data_In_Context_3.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Require_Data_In_Context_3 + +## User Request + +```graphql query Large { users { id @@ -21,10 +24,92 @@ query Large { } } } ---------------- +``` + +## Result + +```json +{ + "data": { + "users": [ + { + "id": "VXNlcgppMQ==", + "name": "Ada Lovelace", + "birthdate": "1815-12-10", + "reviews": [ + { + "body": "Love it!", + "author": { + "name": "@ada", + "birthdate": "1815-12-10" + }, + "product": { + "id": "UHJvZHVjdAppMQ==", + "name": "Table", + "deliveryEstimate": { + "max": 800 + } + } + }, + { + "body": "Could be better.", + "author": { + "name": "@ada", + "birthdate": "1815-12-10" + }, + "product": { + "id": "UHJvZHVjdAppMw==", + "name": "Chair", + "deliveryEstimate": { + "max": 90 + } + } + } + ] + }, + { + "id": "VXNlcgppMg==", + "name": "Alan Turing", + "birthdate": "1912-06-23", + "reviews": [ + { + "body": "Too expensive.", + "author": { + "name": "@alan", + "birthdate": "1912-06-23" + }, + "product": { + "id": "UHJvZHVjdAppMg==", + "name": "Couch", + "deliveryEstimate": { + "max": 5300 + } + } + }, + { + "body": "Prefer something else.", + "author": { + "name": "@alan", + "birthdate": "1912-06-23" + }, + "product": { + "id": "UHJvZHVjdAppMQ==", + "name": "Table", + "deliveryEstimate": { + "max": 800 + } + } + } + ] + } + ] + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query Large { users { id name birthdate reviews { body author { name birthdate } product { id name deliveryEstimate(zip: \u0022abc\u0022) { max } } } } }", "operation": "Large", @@ -163,95 +248,17 @@ QueryPlan "__fusion_exports__6": "Product_id" } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 101625F3F501285D93CDCE7FAFC995538EC16F8E ---------------- +``` -Result ---------------- -{ - "data": { - "users": [ - { - "id": "VXNlcgppMQ==", - "name": "Ada Lovelace", - "birthdate": "1815-12-10", - "reviews": [ - { - "body": "Love it!", - "author": { - "name": "@ada", - "birthdate": "1815-12-10" - }, - "product": { - "id": "UHJvZHVjdAppMQ==", - "name": "Table", - "deliveryEstimate": { - "max": 800 - } - } - }, - { - "body": "Could be better.", - "author": { - "name": "@ada", - "birthdate": "1815-12-10" - }, - "product": { - "id": "UHJvZHVjdAppMw==", - "name": "Chair", - "deliveryEstimate": { - "max": 90 - } - } - } - ] - }, - { - "id": "VXNlcgppMg==", - "name": "Alan Turing", - "birthdate": "1912-06-23", - "reviews": [ - { - "body": "Too expensive.", - "author": { - "name": "@alan", - "birthdate": "1912-06-23" - }, - "product": { - "id": "UHJvZHVjdAppMg==", - "name": "Couch", - "deliveryEstimate": { - "max": 5300 - } - } - }, - { - "body": "Prefer something else.", - "author": { - "name": "@alan", - "birthdate": "1912-06-23" - }, - "product": { - "id": "UHJvZHVjdAppMQ==", - "name": "Table", - "deliveryEstimate": { - "max": 800 - } - } - } - ] - } - ] - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -271,6 +278,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") "Fetches an object given its ID." node("ID of the object." id: ID!): Node @variable(subgraph: "Reviews2", name: "id", argument: "id") @@ -411,6 +420,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -445,6 +456,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -507,4 +520,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.TypeName_Field_On_QueryRoot.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.TypeName_Field_On_QueryRoot.md similarity index 95% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.TypeName_Field_On_QueryRoot.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.TypeName_Field_On_QueryRoot.md index 578ddfeb9c1..2ca2838d26d 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.TypeName_Field_On_QueryRoot.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/DemoIntegrationTests.TypeName_Field_On_QueryRoot.md @@ -1,12 +1,26 @@ -User Request ---------------- +# TypeName_Field_On_QueryRoot + +## User Request + +```graphql query Introspect { __typename } ---------------- +``` + +## Result + +```json +{ + "data": { + "__typename": "Query" + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "query Introspect { __typename }", "operation": "Introspect", @@ -26,24 +40,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 697698C162C0AB8A3054708CABD070BFABE80B8B ---------------- +``` -Result ---------------- -{ - "data": { - "__typename": "Query" - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -58,6 +65,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -164,6 +173,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -198,6 +209,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -260,4 +273,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.Accounts_Offline_Author_NonNull.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.Accounts_Offline_Author_NonNull.md similarity index 97% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.Accounts_Offline_Author_NonNull.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.Accounts_Offline_Author_NonNull.md index a8b1748c1b2..397f3c57db9 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.Accounts_Offline_Author_NonNull.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.Accounts_Offline_Author_NonNull.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Accounts_Offline_Author_NonNull + +## User Request + +```graphql query ReformatIds { reviews { body @@ -8,10 +11,24 @@ query ReformatIds { } } } ---------------- +``` + +## Result -QueryPlan ---------------- +```json +{ + "errors": [ + { + "message": "Internal Execution Error" + } + ], + "data": null +} +``` + +## QueryPlan + +```json { "document": "query ReformatIds { reviews { body author! { birthdate } } }", "operation": "ReformatIds", @@ -61,27 +78,17 @@ QueryPlan "__fusion_exports__1": "User_id" } } ---------------- +``` + +## QueryPlan Hash -QueryPlan Hash ---------------- +```text DAC82CF381252DBDCD201FE838FA2FE069C60F40 ---------------- +``` -Result ---------------- -{ - "errors": [ - { - "message": "Internal Execution Error" - } - ], - "data": null -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -239,4 +246,5 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.Accounts_Offline_Author_Nullable.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.Accounts_Offline_Author_Nullable.md similarity index 97% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.Accounts_Offline_Author_Nullable.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.Accounts_Offline_Author_Nullable.md index 25cd64e3134..7561bb881b8 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.Accounts_Offline_Author_Nullable.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.Accounts_Offline_Author_Nullable.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Accounts_Offline_Author_Nullable + +## User Request + +```graphql query ReformatIds { reviews { body @@ -8,10 +11,43 @@ query ReformatIds { } } } ---------------- +``` -QueryPlan ---------------- +## Result + +```json +{ + "errors": [ + { + "message": "Internal Execution Error" + } + ], + "data": { + "reviews": [ + { + "body": "Love it!", + "author": null + }, + { + "body": "Too expensive.", + "author": null + }, + { + "body": "Could be better.", + "author": null + }, + { + "body": "Prefer something else.", + "author": null + } + ] + } +} +``` + +## QueryPlan + +```json { "document": "query ReformatIds { reviews { body author? { birthdate } } }", "operation": "ReformatIds", @@ -61,46 +97,17 @@ QueryPlan "__fusion_exports__1": "User_id" } } ---------------- +``` + +## QueryPlan Hash -QueryPlan Hash ---------------- +```text 44090BD107B85A967BEBFFCA8844F840215A117F ---------------- +``` -Result ---------------- -{ - "errors": [ - { - "message": "Internal Execution Error" - } - ], - "data": { - "reviews": [ - { - "body": "Love it!", - "author": null - }, - { - "body": "Too expensive.", - "author": null - }, - { - "body": "Could be better.", - "author": null - }, - { - "body": "Prefer something else.", - "author": null - } - ] - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -258,4 +265,5 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.Accounts_Offline_Reviews_ListElement_Nullable.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.Accounts_Offline_Reviews_ListElement_Nullable.md similarity index 97% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.Accounts_Offline_Reviews_ListElement_Nullable.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.Accounts_Offline_Reviews_ListElement_Nullable.md index cdd071c0f16..89c06ab7995 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.Accounts_Offline_Reviews_ListElement_Nullable.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.Accounts_Offline_Reviews_ListElement_Nullable.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Accounts_Offline_Reviews_ListElement_Nullable + +## User Request + +```graphql query ReformatIds { reviews[?]! { body @@ -8,10 +11,31 @@ query ReformatIds { } } } ---------------- +``` + +## Result -QueryPlan ---------------- +```json +{ + "errors": [ + { + "message": "Internal Execution Error" + } + ], + "data": { + "reviews": [ + null, + null, + null, + null + ] + } +} +``` + +## QueryPlan + +```json { "document": "query ReformatIds { reviews[?]! { body author { birthdate } } }", "operation": "ReformatIds", @@ -61,34 +85,17 @@ QueryPlan "__fusion_exports__1": "User_id" } } ---------------- +``` + +## QueryPlan Hash -QueryPlan Hash ---------------- +```text 33778A501536384C3FDCA645FA673B8DD1640192 ---------------- +``` -Result ---------------- -{ - "errors": [ - { - "message": "Internal Execution Error" - } - ], - "data": { - "reviews": [ - null, - null, - null, - null - ] - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -246,4 +253,5 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.NestedResolveSubgraphError.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.NestedResolveSubgraphError.md similarity index 97% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.NestedResolveSubgraphError.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.NestedResolveSubgraphError.md index 02feb9b2364..9de1c26ca4c 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.NestedResolveSubgraphError.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.NestedResolveSubgraphError.md @@ -1,5 +1,8 @@ -User Request ---------------- +# NestedResolveSubgraphError + +## User Request + +```graphql { reviewById(id: "UmV2aWV3Cmkx") { body @@ -9,10 +12,49 @@ User Request } } } ---------------- +``` + +## Result -QueryPlan ---------------- +```json +{ + "errors": [ + { + "message": "SOME USER ERROR", + "locations": [ + { + "line": 1, + "column": 101 + } + ], + "path": [ + "reviewById", + "author", + "errorField" + ], + "extensions": { + "remotePath": [ + "userById", + "errorField" + ] + } + } + ], + "data": { + "reviewById": { + "body": "Love it!", + "author": { + "username": "@ada", + "errorField": null + } + } + } +} +``` + +## QueryPlan + +```json { "document": "{ reviewById(id: \u0022UmV2aWV3Cmkx\u0022) { body author { username errorField } } }", "rootNode": { @@ -61,52 +103,17 @@ QueryPlan "__fusion_exports__1": "User_id" } } ---------------- +``` + +## QueryPlan Hash -QueryPlan Hash ---------------- +```text B73888B06A83C483A7570669A3B4E13081014CD5 ---------------- +``` -Result ---------------- -{ - "errors": [ - { - "message": "SOME USER ERROR", - "locations": [ - { - "line": 1, - "column": 101 - } - ], - "path": [ - "reviewById", - "author", - "errorField" - ], - "extensions": { - "remotePath": [ - "userById", - "errorField" - ] - } - } - ], - "data": { - "reviewById": { - "body": "Love it!", - "author": { - "username": "@ada", - "errorField": null - } - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Accounts", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -271,4 +278,5 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.NestedResolveWithListSubgraphError.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.NestedResolveWithListSubgraphError.md similarity index 97% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.NestedResolveWithListSubgraphError.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.NestedResolveWithListSubgraphError.md index cd21cceb567..2c5f5d4010e 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.NestedResolveWithListSubgraphError.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.NestedResolveWithListSubgraphError.md @@ -1,5 +1,8 @@ -User Request ---------------- +# NestedResolveWithListSubgraphError + +## User Request + +```graphql { userById(id: "VXNlcgppMQ==") { account1: birthdate @@ -11,10 +14,59 @@ User Request } } } ---------------- +``` + +## Result -QueryPlan ---------------- +```json +{ + "errors": [ + { + "message": "SOME REVIEW ERROR", + "locations": [ + { + "line": 1, + "column": 107 + } + ], + "path": [ + "userById", + "reviews", + 1, + "errorField" + ], + "extensions": { + "remotePath": [ + "authorById", + "reviews",1, + "errorField" + ] + } + } + ], + "data": { + "userById": { + "account1": "1815-12-10", + "account2": "1815-12-10", + "username": "@ada", + "reviews": [ + { + "body": "Love it!", + "errorField": null + }, + { + "body": "Could be better.", + "errorField": null + } + ] + } + } +} +``` + +## QueryPlan + +```json { "document": "{ userById(id: \u0022VXNlcgppMQ==\u0022) { account1: birthdate account2: birthdate username reviews { body errorField } } }", "rootNode": { @@ -63,62 +115,17 @@ QueryPlan "__fusion_exports__1": "User_id" } } ---------------- +``` + +## QueryPlan Hash -QueryPlan Hash ---------------- +```text 7D3257F87D5E3FD2EA9D743001D2F7487EF312F7 ---------------- +``` -Result ---------------- -{ - "errors": [ - { - "message": "SOME REVIEW ERROR", - "locations": [ - { - "line": 1, - "column": 107 - } - ], - "path": [ - "userById", - "reviews", - 1, - "errorField" - ], - "extensions": { - "remotePath": [ - "authorById", - "reviews",1, - "errorField" - ] - } - } - ], - "data": { - "userById": { - "account1": "1815-12-10", - "account2": "1815-12-10", - "username": "@ada", - "reviews": [ - { - "body": "Love it!", - "errorField": null - }, - { - "body": "Could be better.", - "errorField": null - } - ] - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Accounts", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -283,4 +290,5 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.ResolveByKeySubgraphError.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.ResolveByKeySubgraphError.md similarity index 97% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.ResolveByKeySubgraphError.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.ResolveByKeySubgraphError.md index fee0fbbcc51..9d126c5e125 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.ResolveByKeySubgraphError.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.ResolveByKeySubgraphError.md @@ -1,5 +1,8 @@ -User Request ---------------- +# ResolveByKeySubgraphError + +## User Request + +```graphql { reviews { body @@ -9,67 +12,11 @@ User Request } } } ---------------- - -QueryPlan ---------------- -{ - "document": "{ reviews { body author { id errorField } } }", - "rootNode": { - "type": "Sequence", - "nodes": [ - { - "type": "Resolve", - "subgraph": "Reviews2", - "document": "query fetch_reviews_1 { reviews { body author { id __fusion_exports__1: id } } }", - "selectionSetId": 0, - "provides": [ - { - "variable": "__fusion_exports__1" - } - ] - }, - { - "type": "Compose", - "selectionSetIds": [ - 0 - ] - }, - { - "type": "ResolveByKeyBatch", - "subgraph": "Accounts", - "document": "query fetch_reviews_2($__fusion_exports__1: [ID!]!) { usersById(ids: $__fusion_exports__1) { errorField __fusion_exports__1: id } }", - "selectionSetId": 2, - "path": [ - "usersById" - ], - "requires": [ - { - "variable": "__fusion_exports__1" - } - ] - }, - { - "type": "Compose", - "selectionSetIds": [ - 2 - ] - } - ] - }, - "state": { - "__fusion_exports__1": "User_id" - } -} ---------------- +``` -QueryPlan Hash ---------------- -CF3D9A7EDFFF39BD900F00B515F641838206630E ---------------- +## Result -Result ---------------- +```json { "errors": [ { @@ -148,10 +95,70 @@ Result ] } } ---------------- +``` + +## QueryPlan -Fusion Graph ---------------- +```json +{ + "document": "{ reviews { body author { id errorField } } }", + "rootNode": { + "type": "Sequence", + "nodes": [ + { + "type": "Resolve", + "subgraph": "Reviews2", + "document": "query fetch_reviews_1 { reviews { body author { id __fusion_exports__1: id } } }", + "selectionSetId": 0, + "provides": [ + { + "variable": "__fusion_exports__1" + } + ] + }, + { + "type": "Compose", + "selectionSetIds": [ + 0 + ] + }, + { + "type": "ResolveByKeyBatch", + "subgraph": "Accounts", + "document": "query fetch_reviews_2($__fusion_exports__1: [ID!]!) { usersById(ids: $__fusion_exports__1) { errorField __fusion_exports__1: id } }", + "selectionSetId": 2, + "path": [ + "usersById" + ], + "requires": [ + { + "variable": "__fusion_exports__1" + } + ] + }, + { + "type": "Compose", + "selectionSetIds": [ + 2 + ] + } + ] + }, + "state": { + "__fusion_exports__1": "User_id" + } +} +``` + +## QueryPlan Hash + +```text +CF3D9A7EDFFF39BD900F00B515F641838206630E +``` + +## Fusion Graph + +```graphql schema @fusion(version: 1) @transport(subgraph: "Accounts", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -316,4 +323,5 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.TopLevelResolveSubgraphError.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.TopLevelResolveSubgraphError.md similarity index 94% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.TopLevelResolveSubgraphError.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.TopLevelResolveSubgraphError.md index 545d8aa611b..a8cef835863 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.TopLevelResolveSubgraphError.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/ErrorTests.TopLevelResolveSubgraphError.md @@ -1,5 +1,8 @@ -User Request ---------------- +# TopLevelResolveSubgraphError + +## User Request + +```graphql { viewer { data { @@ -8,39 +11,11 @@ User Request } errorField } ---------------- - -QueryPlan ---------------- -{ - "document": "{ viewer { data { accountValue } } errorField }", - "rootNode": { - "type": "Sequence", - "nodes": [ - { - "type": "Resolve", - "subgraph": "Accounts", - "document": "query fetch_viewer_errorField_1 { viewer { data { accountValue } } errorField }", - "selectionSetId": 0 - }, - { - "type": "Compose", - "selectionSetIds": [ - 0 - ] - } - ] - } -} ---------------- +``` -QueryPlan Hash ---------------- -9578FF2608B68C6D9AE96CD13B57F603C4554FFF ---------------- +## Result -Result ---------------- +```json { "errors": [ { @@ -70,10 +45,42 @@ Result "errorField": null } } ---------------- +``` + +## QueryPlan -Fusion Graph ---------------- +```json +{ + "document": "{ viewer { data { accountValue } } errorField }", + "rootNode": { + "type": "Sequence", + "nodes": [ + { + "type": "Resolve", + "subgraph": "Accounts", + "document": "query fetch_viewer_errorField_1 { viewer { data { accountValue } } errorField }", + "selectionSetId": 0 + }, + { + "type": "Compose", + "selectionSetIds": [ + 0 + ] + } + ] + } +} +``` + +## QueryPlan Hash + +```text +9578FF2608B68C6D9AE96CD13B57F603C4554FFF +``` + +## Fusion Graph + +```graphql schema @fusion(version: 1) @transport(subgraph: "Accounts", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -158,4 +165,5 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/EventStreamTests.Authors_And_Reviews_Subscription_OnNewReview.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/EventStreamTests.Authors_And_Reviews_Subscription_OnNewReview.md similarity index 93% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/EventStreamTests.Authors_And_Reviews_Subscription_OnNewReview.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/EventStreamTests.Authors_And_Reviews_Subscription_OnNewReview.md index e1f60d40a9f..e6260dc5064 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/EventStreamTests.Authors_And_Reviews_Subscription_OnNewReview.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/EventStreamTests.Authors_And_Reviews_Subscription_OnNewReview.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Authors_And_Reviews_Subscription_OnNewReview + +## User Request + +```graphql subscription OnNewReview { onNewReview { body @@ -8,10 +11,11 @@ subscription OnNewReview { } } } ---------------- +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "subscription OnNewReview { onNewReview { body author { name } } }", "operation": "OnNewReview", @@ -35,15 +39,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text F823835BFACD5B49C03063C112F1293EAB40DE1E ---------------- +``` + +## Result 1 -Result 1 ---------------- +```json { "data": { "onNewReview": { @@ -54,10 +60,11 @@ Result 1 } } } ---------------- +``` + +## Result 2 -Result 2 ---------------- +```json { "data": { "onNewReview": { @@ -68,10 +75,11 @@ Result 2 } } } ---------------- +``` -Result 3 ---------------- +## Result 3 + +```json { "data": { "onNewReview": { @@ -82,10 +90,11 @@ Result 3 } } } ---------------- +``` + +## Result 4 -Result 4 ---------------- +```json { "data": { "onNewReview": { @@ -96,10 +105,11 @@ Result 4 } } } ---------------- +``` + +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -110,6 +120,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -176,6 +188,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -199,6 +213,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -242,4 +258,5 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/FileUploadTests.AutoCompose.graphql b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/FileUploadTests.AutoCompose.graphql index 4e25eae3102..e2266d949c2 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/FileUploadTests.AutoCompose.graphql +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/FileUploadTests.AutoCompose.graphql @@ -10,6 +10,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -134,6 +136,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -168,6 +172,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/FileUploadTests.UploadFile.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/FileUploadTests.UploadFile.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/FileUploadTests.UploadFile.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/FileUploadTests.UploadFile.md index ddd692dff88..198f94472b7 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/FileUploadTests.UploadFile.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/FileUploadTests.UploadFile.md @@ -1,14 +1,30 @@ -User Request ---------------- +# UploadFile + +## User Request + +```graphql mutation Upload($file: Upload!) { uploadProductPicture(input: { productId: 1, file: $file }) { boolean } } ---------------- +``` + +## Result + +```json +{ + "data": { + "uploadProductPicture": { + "boolean": true + } + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "mutation Upload($file: Upload!) { uploadProductPicture(input: { productId: 1, file: $file }) { boolean } }", "operation": "Upload", @@ -35,26 +51,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text C3298260FD8612E0FE8DB108E15FB4122CBBF47C ---------------- +``` -Result ---------------- -{ - "data": { - "uploadProductPicture": { - "boolean": true - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -67,6 +74,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -191,6 +200,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -225,6 +236,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -287,4 +300,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/FileUploadTests.UploadFile_2.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/FileUploadTests.UploadFile_2.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/FileUploadTests.UploadFile_2.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/FileUploadTests.UploadFile_2.md index 8635a326d99..e333289f75e 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/FileUploadTests.UploadFile_2.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/FileUploadTests.UploadFile_2.md @@ -1,14 +1,30 @@ -User Request ---------------- +# UploadFile_2 + +## User Request + +```graphql mutation Upload($input: UploadProductPictureInput!) { uploadProductPicture(input: $input) { boolean } } ---------------- +``` + +## Result + +```json +{ + "data": { + "uploadProductPicture": { + "boolean": true + } + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "mutation Upload($input: UploadProductPictureInput!) { uploadProductPicture(input: $input) { boolean } }", "operation": "Upload", @@ -35,26 +51,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text D968748DEC5B900198E5ABEBE187BCF83431A5AC ---------------- +``` -Result ---------------- -{ - "data": { - "uploadProductPicture": { - "boolean": true - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -67,6 +74,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -191,6 +200,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -225,6 +236,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -287,4 +300,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/InterfaceTests.Query_Interface_List.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/InterfaceTests.Query_Interface_List.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/InterfaceTests.Query_Interface_List.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/InterfaceTests.Query_Interface_List.md index 6590a937ced..1e582f75490 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/InterfaceTests.Query_Interface_List.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/InterfaceTests.Query_Interface_List.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Query_Interface_List + +## User Request + +```graphql query Appointments { appointments { nodes { @@ -9,10 +12,34 @@ query Appointments { } } } ---------------- +``` + +## Result -QueryPlan ---------------- +```json +{ + "data": { + "appointments": { + "nodes": [ + { + "patient": { + "id": "UGF0aWVudDEKaTE=" + } + }, + { + "patient": { + "id": "UGF0aWVudDIKaTI=" + } + } + ] + } + } +} +``` + +## QueryPlan + +```json { "document": "query Appointments { appointments { nodes { patient { id } } } }", "operation": "Appointments", @@ -34,37 +61,17 @@ QueryPlan ] } } ---------------- +``` + +## QueryPlan Hash -QueryPlan Hash ---------------- +```text 7FA915AFBA06ABAAF57A31CE4888B161285111C3 ---------------- +``` -Result ---------------- -{ - "data": { - "appointments": { - "nodes": [ - { - "patient": { - "id": "UGF0aWVudDEKaTE=" - } - }, - { - "patient": { - "id": "UGF0aWVudDIKaTI=" - } - } - ] - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Appointment", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -172,4 +179,5 @@ interface IPatient { interface Node { id: ID! } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/InterfaceTests.Query_Interface_List_With_Fragment_Fetch.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/InterfaceTests.Query_Interface_List_With_Fragment.md similarity index 97% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/InterfaceTests.Query_Interface_List_With_Fragment_Fetch.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/InterfaceTests.Query_Interface_List_With_Fragment.md index c409edebe1d..7266699d01b 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/InterfaceTests.Query_Interface_List_With_Fragment_Fetch.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/InterfaceTests.Query_Interface_List_With_Fragment.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Query_Interface_List_With_Fragment + +## User Request + +```graphql query Appointments { appointments { nodes { @@ -12,10 +15,35 @@ query Appointments { } } } ---------------- +``` + +## Result -QueryPlan ---------------- +```json +{ + "data": { + "appointments": { + "nodes": [ + { + "patient": { + "id": "UGF0aWVudDEKaTE=", + "name": "Karl Kokoloko" + } + }, + { + "patient": { + "id": "UGF0aWVudDIKaTI=" + } + } + ] + } + } +} +``` + +## QueryPlan + +```json { "document": "query Appointments { appointments { nodes { patient { id ... on Patient1 { name } } } } }", "operation": "Appointments", @@ -65,38 +93,17 @@ QueryPlan "__fusion_exports__1": "Patient1_id" } } ---------------- +``` + +## QueryPlan Hash -QueryPlan Hash ---------------- +```text 347001780000BC39AA06AB363EB4F49993793518 ---------------- +``` -Result ---------------- -{ - "data": { - "appointments": { - "nodes": [ - { - "patient": { - "id": "UGF0aWVudDEKaTE=", - "name": "Karl Kokoloko" - } - }, - { - "patient": { - "id": "UGF0aWVudDIKaTI=" - } - } - ] - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Appointment", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -220,4 +227,5 @@ interface IPatient { interface Node { id: ID! } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/InterfaceTests.Query_Interface_List_With_Fragment.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/InterfaceTests.Query_Interface_List_With_Fragment_Fetch.md similarity index 97% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/InterfaceTests.Query_Interface_List_With_Fragment.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/InterfaceTests.Query_Interface_List_With_Fragment_Fetch.md index c409edebe1d..0687ab405f4 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/InterfaceTests.Query_Interface_List_With_Fragment.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/InterfaceTests.Query_Interface_List_With_Fragment_Fetch.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Query_Interface_List_With_Fragment_Fetch + +## User Request + +```graphql query Appointments { appointments { nodes { @@ -12,10 +15,35 @@ query Appointments { } } } ---------------- +``` + +## Result -QueryPlan ---------------- +```json +{ + "data": { + "appointments": { + "nodes": [ + { + "patient": { + "id": "UGF0aWVudDEKaTE=", + "name": "Karl Kokoloko" + } + }, + { + "patient": { + "id": "UGF0aWVudDIKaTI=" + } + } + ] + } + } +} +``` + +## QueryPlan + +```json { "document": "query Appointments { appointments { nodes { patient { id ... on Patient1 { name } } } } }", "operation": "Appointments", @@ -65,38 +93,17 @@ QueryPlan "__fusion_exports__1": "Patient1_id" } } ---------------- +``` + +## QueryPlan Hash -QueryPlan Hash ---------------- +```text 347001780000BC39AA06AB363EB4F49993793518 ---------------- +``` -Result ---------------- -{ - "data": { - "appointments": { - "nodes": [ - { - "patient": { - "id": "UGF0aWVudDEKaTE=", - "name": "Karl Kokoloko" - } - }, - { - "patient": { - "id": "UGF0aWVudDIKaTI=" - } - } - ] - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Appointment", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -220,4 +227,5 @@ interface IPatient { interface Node { id: ID! } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/IntrospectionTests.ShortCircuit_RootTypeName_Requests.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/IntrospectionTests.ShortCircuit_RootTypeName_Requests.md similarity index 99% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/IntrospectionTests.ShortCircuit_RootTypeName_Requests.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/IntrospectionTests.ShortCircuit_RootTypeName_Requests.md index e91eaabbe8f..fcb97a2067f 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/IntrospectionTests.ShortCircuit_RootTypeName_Requests.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/IntrospectionTests.ShortCircuit_RootTypeName_Requests.md @@ -1,5 +1,8 @@ -User Request ---------------- +# ShortCircuit_RootTypeName_Requests + +## User Request + +```graphql query queryalias { alias0: __typename alias1: __typename @@ -2050,38 +2053,11 @@ query queryalias { alias2046: __typename alias2047: __typename } ---------------- - -QueryPlan ---------------- -{ - "document": "query queryalias { alias0: __typename alias1: __typename alias2: __typename alias3: __typename alias4: __typename alias5: __typename alias6: __typename alias7: __typename alias8: __typename alias9: __typename alias10: __typename alias11: __typename alias12: __typename alias13: __typename alias14: __typename alias15: __typename alias16: __typename alias17: __typename alias18: __typename alias19: __typename alias20: __typename alias21: __typename alias22: __typename alias23: __typename alias24: __typename alias25: __typename alias26: __typename alias27: __typename alias28: __typename alias29: __typename alias30: __typename alias31: __typename alias32: __typename alias33: __typename alias34: __typename alias35: __typename alias36: __typename alias37: __typename alias38: __typename alias39: __typename alias40: __typename alias41: __typename alias42: __typename alias43: __typename alias44: __typename alias45: __typename alias46: __typename alias47: __typename alias48: __typename alias49: __typename alias50: __typename alias51: __typename alias52: __typename alias53: __typename alias54: __typename alias55: __typename alias56: __typename alias57: __typename alias58: __typename alias59: __typename alias60: __typename alias61: __typename alias62: __typename alias63: __typename alias64: __typename alias65: __typename alias66: __typename alias67: __typename alias68: __typename alias69: __typename alias70: __typename alias71: __typename alias72: __typename alias73: __typename alias74: __typename alias75: __typename alias76: __typename alias77: __typename alias78: __typename alias79: __typename alias80: __typename alias81: __typename alias82: __typename alias83: __typename alias84: __typename alias85: __typename alias86: __typename alias87: __typename alias88: __typename alias89: __typename alias90: __typename alias91: __typename alias92: __typename alias93: __typename alias94: __typename alias95: __typename alias96: __typename alias97: __typename alias98: __typename alias99: __typename alias100: __typename alias101: __typename alias102: __typename alias103: __typename alias104: __typename alias105: __typename alias106: __typename alias107: __typename alias108: __typename alias109: __typename alias110: __typename alias111: __typename alias112: __typename alias113: __typename alias114: __typename alias115: __typename alias116: __typename alias117: __typename alias118: __typename alias119: __typename alias120: __typename alias121: __typename alias122: __typename alias123: __typename alias124: __typename alias125: __typename alias126: __typename alias127: __typename alias128: __typename alias129: __typename alias130: __typename alias131: __typename alias132: __typename alias133: __typename alias134: __typename alias135: __typename alias136: __typename alias137: __typename alias138: __typename alias139: __typename alias140: __typename alias141: __typename alias142: __typename alias143: __typename alias144: __typename alias145: __typename alias146: __typename alias147: __typename alias148: __typename alias149: __typename alias150: __typename alias151: __typename alias152: __typename alias153: __typename alias154: __typename alias155: __typename alias156: __typename alias157: __typename alias158: __typename alias159: __typename alias160: __typename alias161: __typename alias162: __typename alias163: __typename alias164: __typename alias165: __typename alias166: __typename alias167: __typename alias168: __typename alias169: __typename alias170: __typename alias171: __typename alias172: __typename alias173: __typename alias174: __typename alias175: __typename alias176: __typename alias177: __typename alias178: __typename alias179: __typename alias180: __typename alias181: __typename alias182: __typename alias183: __typename alias184: __typename alias185: __typename alias186: __typename alias187: __typename alias188: __typename alias189: __typename alias190: __typename alias191: __typename alias192: __typename alias193: __typename alias194: __typename alias195: __typename alias196: __typename alias197: __typename alias198: __typename alias199: __typename alias200: __typename alias201: __typename alias202: __typename alias203: __typename alias204: __typename alias205: __typename alias206: __typename alias207: __typename alias208: __typename alias209: __typename alias210: __typename alias211: __typename alias212: __typename alias213: __typename alias214: __typename alias215: __typename alias216: __typename alias217: __typename alias218: __typename alias219: __typename alias220: __typename alias221: __typename alias222: __typename alias223: __typename alias224: __typename alias225: __typename alias226: __typename alias227: __typename alias228: __typename alias229: __typename alias230: __typename alias231: __typename alias232: __typename alias233: __typename alias234: __typename alias235: __typename alias236: __typename alias237: __typename alias238: __typename alias239: __typename alias240: __typename alias241: __typename alias242: __typename alias243: __typename alias244: __typename alias245: __typename alias246: __typename alias247: __typename alias248: __typename alias249: __typename alias250: __typename alias251: __typename alias252: __typename alias253: __typename alias254: __typename alias255: __typename alias256: __typename alias257: __typename alias258: __typename alias259: __typename alias260: __typename alias261: __typename alias262: __typename alias263: __typename alias264: __typename alias265: __typename alias266: __typename alias267: __typename alias268: __typename alias269: __typename alias270: __typename alias271: __typename alias272: __typename alias273: __typename alias274: __typename alias275: __typename alias276: __typename alias277: __typename alias278: __typename alias279: __typename alias280: __typename alias281: __typename alias282: __typename alias283: __typename alias284: __typename alias285: __typename alias286: __typename alias287: __typename alias288: __typename alias289: __typename alias290: __typename alias291: __typename alias292: __typename alias293: __typename alias294: __typename alias295: __typename alias296: __typename alias297: __typename alias298: __typename alias299: __typename alias300: __typename alias301: __typename alias302: __typename alias303: __typename alias304: __typename alias305: __typename alias306: __typename alias307: __typename alias308: __typename alias309: __typename alias310: __typename alias311: __typename alias312: __typename alias313: __typename alias314: __typename alias315: __typename alias316: __typename alias317: __typename alias318: __typename alias319: __typename alias320: __typename alias321: __typename alias322: __typename alias323: __typename alias324: __typename alias325: __typename alias326: __typename alias327: __typename alias328: __typename alias329: __typename alias330: __typename alias331: __typename alias332: __typename alias333: __typename alias334: __typename alias335: __typename alias336: __typename alias337: __typename alias338: __typename alias339: __typename alias340: __typename alias341: __typename alias342: __typename alias343: __typename alias344: __typename alias345: __typename alias346: __typename alias347: __typename alias348: __typename alias349: __typename alias350: __typename alias351: __typename alias352: __typename alias353: __typename alias354: __typename alias355: __typename alias356: __typename alias357: __typename alias358: __typename alias359: __typename alias360: __typename alias361: __typename alias362: __typename alias363: __typename alias364: __typename alias365: __typename alias366: __typename alias367: __typename alias368: __typename alias369: __typename alias370: __typename alias371: __typename alias372: __typename alias373: __typename alias374: __typename alias375: __typename alias376: __typename alias377: __typename alias378: __typename alias379: __typename alias380: __typename alias381: __typename alias382: __typename alias383: __typename alias384: __typename alias385: __typename alias386: __typename alias387: __typename alias388: __typename alias389: __typename alias390: __typename alias391: __typename alias392: __typename alias393: __typename alias394: __typename alias395: __typename alias396: __typename alias397: __typename alias398: __typename alias399: __typename alias400: __typename alias401: __typename alias402: __typename alias403: __typename alias404: __typename alias405: __typename alias406: __typename alias407: __typename alias408: __typename alias409: __typename alias410: __typename alias411: __typename alias412: __typename alias413: __typename alias414: __typename alias415: __typename alias416: __typename alias417: __typename alias418: __typename alias419: __typename alias420: __typename alias421: __typename alias422: __typename alias423: __typename alias424: __typename alias425: __typename alias426: __typename alias427: __typename alias428: __typename alias429: __typename alias430: __typename alias431: __typename alias432: __typename alias433: __typename alias434: __typename alias435: __typename alias436: __typename alias437: __typename alias438: __typename alias439: __typename alias440: __typename alias441: __typename alias442: __typename alias443: __typename alias444: __typename alias445: __typename alias446: __typename alias447: __typename alias448: __typename alias449: __typename alias450: __typename alias451: __typename alias452: __typename alias453: __typename alias454: __typename alias455: __typename alias456: __typename alias457: __typename alias458: __typename alias459: __typename alias460: __typename alias461: __typename alias462: __typename alias463: __typename alias464: __typename alias465: __typename alias466: __typename alias467: __typename alias468: __typename alias469: __typename alias470: __typename alias471: __typename alias472: __typename alias473: __typename alias474: __typename alias475: __typename alias476: __typename alias477: __typename alias478: __typename alias479: __typename alias480: __typename alias481: __typename alias482: __typename alias483: __typename alias484: __typename alias485: __typename alias486: __typename alias487: __typename alias488: __typename alias489: __typename alias490: __typename alias491: __typename alias492: __typename alias493: __typename alias494: __typename alias495: __typename alias496: __typename alias497: __typename alias498: __typename alias499: __typename alias500: __typename alias501: __typename alias502: __typename alias503: __typename alias504: __typename alias505: __typename alias506: __typename alias507: __typename alias508: __typename alias509: __typename alias510: __typename alias511: __typename alias512: __typename alias513: __typename alias514: __typename alias515: __typename alias516: __typename alias517: __typename alias518: __typename alias519: __typename alias520: __typename alias521: __typename alias522: __typename alias523: __typename alias524: __typename alias525: __typename alias526: __typename alias527: __typename alias528: __typename alias529: __typename alias530: __typename alias531: __typename alias532: __typename alias533: __typename alias534: __typename alias535: __typename alias536: __typename alias537: __typename alias538: __typename alias539: __typename alias540: __typename alias541: __typename alias542: __typename alias543: __typename alias544: __typename alias545: __typename alias546: __typename alias547: __typename alias548: __typename alias549: __typename alias550: __typename alias551: __typename alias552: __typename alias553: __typename alias554: __typename alias555: __typename alias556: __typename alias557: __typename alias558: __typename alias559: __typename alias560: __typename alias561: __typename alias562: __typename alias563: __typename alias564: __typename alias565: __typename alias566: __typename alias567: __typename alias568: __typename alias569: __typename alias570: __typename alias571: __typename alias572: __typename alias573: __typename alias574: __typename alias575: __typename alias576: __typename alias577: __typename alias578: __typename alias579: __typename alias580: __typename alias581: __typename alias582: __typename alias583: __typename alias584: __typename alias585: __typename alias586: __typename alias587: __typename alias588: __typename alias589: __typename alias590: __typename alias591: __typename alias592: __typename alias593: __typename alias594: __typename alias595: __typename alias596: __typename alias597: __typename alias598: __typename alias599: __typename alias600: __typename alias601: __typename alias602: __typename alias603: __typename alias604: __typename alias605: __typename alias606: __typename alias607: __typename alias608: __typename alias609: __typename alias610: __typename alias611: __typename alias612: __typename alias613: __typename alias614: __typename alias615: __typename alias616: __typename alias617: __typename alias618: __typename alias619: __typename alias620: __typename alias621: __typename alias622: __typename alias623: __typename alias624: __typename alias625: __typename alias626: __typename alias627: __typename alias628: __typename alias629: __typename alias630: __typename alias631: __typename alias632: __typename alias633: __typename alias634: __typename alias635: __typename alias636: __typename alias637: __typename alias638: __typename alias639: __typename alias640: __typename alias641: __typename alias642: __typename alias643: __typename alias644: __typename alias645: __typename alias646: __typename alias647: __typename alias648: __typename alias649: __typename alias650: __typename alias651: __typename alias652: __typename alias653: __typename alias654: __typename alias655: __typename alias656: __typename alias657: __typename alias658: __typename alias659: __typename alias660: __typename alias661: __typename alias662: __typename alias663: __typename alias664: __typename alias665: __typename alias666: __typename alias667: __typename alias668: __typename alias669: __typename alias670: __typename alias671: __typename alias672: __typename alias673: __typename alias674: __typename alias675: __typename alias676: __typename alias677: __typename alias678: __typename alias679: __typename alias680: __typename alias681: __typename alias682: __typename alias683: __typename alias684: __typename alias685: __typename alias686: __typename alias687: __typename alias688: __typename alias689: __typename alias690: __typename alias691: __typename alias692: __typename alias693: __typename alias694: __typename alias695: __typename alias696: __typename alias697: __typename alias698: __typename alias699: __typename alias700: __typename alias701: __typename alias702: __typename alias703: __typename alias704: __typename alias705: __typename alias706: __typename alias707: __typename alias708: __typename alias709: __typename alias710: __typename alias711: __typename alias712: __typename alias713: __typename alias714: __typename alias715: __typename alias716: __typename alias717: __typename alias718: __typename alias719: __typename alias720: __typename alias721: __typename alias722: __typename alias723: __typename alias724: __typename alias725: __typename alias726: __typename alias727: __typename alias728: __typename alias729: __typename alias730: __typename alias731: __typename alias732: __typename alias733: __typename alias734: __typename alias735: __typename alias736: __typename alias737: __typename alias738: __typename alias739: __typename alias740: __typename alias741: __typename alias742: __typename alias743: __typename alias744: __typename alias745: __typename alias746: __typename alias747: __typename alias748: __typename alias749: __typename alias750: __typename alias751: __typename alias752: __typename alias753: __typename alias754: __typename alias755: __typename alias756: __typename alias757: __typename alias758: __typename alias759: __typename alias760: __typename alias761: __typename alias762: __typename alias763: __typename alias764: __typename alias765: __typename alias766: __typename alias767: __typename alias768: __typename alias769: __typename alias770: __typename alias771: __typename alias772: __typename alias773: __typename alias774: __typename alias775: __typename alias776: __typename alias777: __typename alias778: __typename alias779: __typename alias780: __typename alias781: __typename alias782: __typename alias783: __typename alias784: __typename alias785: __typename alias786: __typename alias787: __typename alias788: __typename alias789: __typename alias790: __typename alias791: __typename alias792: __typename alias793: __typename alias794: __typename alias795: __typename alias796: __typename alias797: __typename alias798: __typename alias799: __typename alias800: __typename alias801: __typename alias802: __typename alias803: __typename alias804: __typename alias805: __typename alias806: __typename alias807: __typename alias808: __typename alias809: __typename alias810: __typename alias811: __typename alias812: __typename alias813: __typename alias814: __typename alias815: __typename alias816: __typename alias817: __typename alias818: __typename alias819: __typename alias820: __typename alias821: __typename alias822: __typename alias823: __typename alias824: __typename alias825: __typename alias826: __typename alias827: __typename alias828: __typename alias829: __typename alias830: __typename alias831: __typename alias832: __typename alias833: __typename alias834: __typename alias835: __typename alias836: __typename alias837: __typename alias838: __typename alias839: __typename alias840: __typename alias841: __typename alias842: __typename alias843: __typename alias844: __typename alias845: __typename alias846: __typename alias847: __typename alias848: __typename alias849: __typename alias850: __typename alias851: __typename alias852: __typename alias853: __typename alias854: __typename alias855: __typename alias856: __typename alias857: __typename alias858: __typename alias859: __typename alias860: __typename alias861: __typename alias862: __typename alias863: __typename alias864: __typename alias865: __typename alias866: __typename alias867: __typename alias868: __typename alias869: __typename alias870: __typename alias871: __typename alias872: __typename alias873: __typename alias874: __typename alias875: __typename alias876: __typename alias877: __typename alias878: __typename alias879: __typename alias880: __typename alias881: __typename alias882: __typename alias883: __typename alias884: __typename alias885: __typename alias886: __typename alias887: __typename alias888: __typename alias889: __typename alias890: __typename alias891: __typename alias892: __typename alias893: __typename alias894: __typename alias895: __typename alias896: __typename alias897: __typename alias898: __typename alias899: __typename alias900: __typename alias901: __typename alias902: __typename alias903: __typename alias904: __typename alias905: __typename alias906: __typename alias907: __typename alias908: __typename alias909: __typename alias910: __typename alias911: __typename alias912: __typename alias913: __typename alias914: __typename alias915: __typename alias916: __typename alias917: __typename alias918: __typename alias919: __typename alias920: __typename alias921: __typename alias922: __typename alias923: __typename alias924: __typename alias925: __typename alias926: __typename alias927: __typename alias928: __typename alias929: __typename alias930: __typename alias931: __typename alias932: __typename alias933: __typename alias934: __typename alias935: __typename alias936: __typename alias937: __typename alias938: __typename alias939: __typename alias940: __typename alias941: __typename alias942: __typename alias943: __typename alias944: __typename alias945: __typename alias946: __typename alias947: __typename alias948: __typename alias949: __typename alias950: __typename alias951: __typename alias952: __typename alias953: __typename alias954: __typename alias955: __typename alias956: __typename alias957: __typename alias958: __typename alias959: __typename alias960: __typename alias961: __typename alias962: __typename alias963: __typename alias964: __typename alias965: __typename alias966: __typename alias967: __typename alias968: __typename alias969: __typename alias970: __typename alias971: __typename alias972: __typename alias973: __typename alias974: __typename alias975: __typename alias976: __typename alias977: __typename alias978: __typename alias979: __typename alias980: __typename alias981: __typename alias982: __typename alias983: __typename alias984: __typename alias985: __typename alias986: __typename alias987: __typename alias988: __typename alias989: __typename alias990: __typename alias991: __typename alias992: __typename alias993: __typename alias994: __typename alias995: __typename alias996: __typename alias997: __typename alias998: __typename alias999: __typename alias1000: __typename alias1001: __typename alias1002: __typename alias1003: __typename alias1004: __typename alias1005: __typename alias1006: __typename alias1007: __typename alias1008: __typename alias1009: __typename alias1010: __typename alias1011: __typename alias1012: __typename alias1013: __typename alias1014: __typename alias1015: __typename alias1016: __typename alias1017: __typename alias1018: __typename alias1019: __typename alias1020: __typename alias1021: __typename alias1022: __typename alias1023: __typename alias1024: __typename alias1025: __typename alias1026: __typename alias1027: __typename alias1028: __typename alias1029: __typename alias1030: __typename alias1031: __typename alias1032: __typename alias1033: __typename alias1034: __typename alias1035: __typename alias1036: __typename alias1037: __typename alias1038: __typename alias1039: __typename alias1040: __typename alias1041: __typename alias1042: __typename alias1043: __typename alias1044: __typename alias1045: __typename alias1046: __typename alias1047: __typename alias1048: __typename alias1049: __typename alias1050: __typename alias1051: __typename alias1052: __typename alias1053: __typename alias1054: __typename alias1055: __typename alias1056: __typename alias1057: __typename alias1058: __typename alias1059: __typename alias1060: __typename alias1061: __typename alias1062: __typename alias1063: __typename alias1064: __typename alias1065: __typename alias1066: __typename alias1067: __typename alias1068: __typename alias1069: __typename alias1070: __typename alias1071: __typename alias1072: __typename alias1073: __typename alias1074: __typename alias1075: __typename alias1076: __typename alias1077: __typename alias1078: __typename alias1079: __typename alias1080: __typename alias1081: __typename alias1082: __typename alias1083: __typename alias1084: __typename alias1085: __typename alias1086: __typename alias1087: __typename alias1088: __typename alias1089: __typename alias1090: __typename alias1091: __typename alias1092: __typename alias1093: __typename alias1094: __typename alias1095: __typename alias1096: __typename alias1097: __typename alias1098: __typename alias1099: __typename alias1100: __typename alias1101: __typename alias1102: __typename alias1103: __typename alias1104: __typename alias1105: __typename alias1106: __typename alias1107: __typename alias1108: __typename alias1109: __typename alias1110: __typename alias1111: __typename alias1112: __typename alias1113: __typename alias1114: __typename alias1115: __typename alias1116: __typename alias1117: __typename alias1118: __typename alias1119: __typename alias1120: __typename alias1121: __typename alias1122: __typename alias1123: __typename alias1124: __typename alias1125: __typename alias1126: __typename alias1127: __typename alias1128: __typename alias1129: __typename alias1130: __typename alias1131: __typename alias1132: __typename alias1133: __typename alias1134: __typename alias1135: __typename alias1136: __typename alias1137: __typename alias1138: __typename alias1139: __typename alias1140: __typename alias1141: __typename alias1142: __typename alias1143: __typename alias1144: __typename alias1145: __typename alias1146: __typename alias1147: __typename alias1148: __typename alias1149: __typename alias1150: __typename alias1151: __typename alias1152: __typename alias1153: __typename alias1154: __typename alias1155: __typename alias1156: __typename alias1157: __typename alias1158: __typename alias1159: __typename alias1160: __typename alias1161: __typename alias1162: __typename alias1163: __typename alias1164: __typename alias1165: __typename alias1166: __typename alias1167: __typename alias1168: __typename alias1169: __typename alias1170: __typename alias1171: __typename alias1172: __typename alias1173: __typename alias1174: __typename alias1175: __typename alias1176: __typename alias1177: __typename alias1178: __typename alias1179: __typename alias1180: __typename alias1181: __typename alias1182: __typename alias1183: __typename alias1184: __typename alias1185: __typename alias1186: __typename alias1187: __typename alias1188: __typename alias1189: __typename alias1190: __typename alias1191: __typename alias1192: __typename alias1193: __typename alias1194: __typename alias1195: __typename alias1196: __typename alias1197: __typename alias1198: __typename alias1199: __typename alias1200: __typename alias1201: __typename alias1202: __typename alias1203: __typename alias1204: __typename alias1205: __typename alias1206: __typename alias1207: __typename alias1208: __typename alias1209: __typename alias1210: __typename alias1211: __typename alias1212: __typename alias1213: __typename alias1214: __typename alias1215: __typename alias1216: __typename alias1217: __typename alias1218: __typename alias1219: __typename alias1220: __typename alias1221: __typename alias1222: __typename alias1223: __typename alias1224: __typename alias1225: __typename alias1226: __typename alias1227: __typename alias1228: __typename alias1229: __typename alias1230: __typename alias1231: __typename alias1232: __typename alias1233: __typename alias1234: __typename alias1235: __typename alias1236: __typename alias1237: __typename alias1238: __typename alias1239: __typename alias1240: __typename alias1241: __typename alias1242: __typename alias1243: __typename alias1244: __typename alias1245: __typename alias1246: __typename alias1247: __typename alias1248: __typename alias1249: __typename alias1250: __typename alias1251: __typename alias1252: __typename alias1253: __typename alias1254: __typename alias1255: __typename alias1256: __typename alias1257: __typename alias1258: __typename alias1259: __typename alias1260: __typename alias1261: __typename alias1262: __typename alias1263: __typename alias1264: __typename alias1265: __typename alias1266: __typename alias1267: __typename alias1268: __typename alias1269: __typename alias1270: __typename alias1271: __typename alias1272: __typename alias1273: __typename alias1274: __typename alias1275: __typename alias1276: __typename alias1277: __typename alias1278: __typename alias1279: __typename alias1280: __typename alias1281: __typename alias1282: __typename alias1283: __typename alias1284: __typename alias1285: __typename alias1286: __typename alias1287: __typename alias1288: __typename alias1289: __typename alias1290: __typename alias1291: __typename alias1292: __typename alias1293: __typename alias1294: __typename alias1295: __typename alias1296: __typename alias1297: __typename alias1298: __typename alias1299: __typename alias1300: __typename alias1301: __typename alias1302: __typename alias1303: __typename alias1304: __typename alias1305: __typename alias1306: __typename alias1307: __typename alias1308: __typename alias1309: __typename alias1310: __typename alias1311: __typename alias1312: __typename alias1313: __typename alias1314: __typename alias1315: __typename alias1316: __typename alias1317: __typename alias1318: __typename alias1319: __typename alias1320: __typename alias1321: __typename alias1322: __typename alias1323: __typename alias1324: __typename alias1325: __typename alias1326: __typename alias1327: __typename alias1328: __typename alias1329: __typename alias1330: __typename alias1331: __typename alias1332: __typename alias1333: __typename alias1334: __typename alias1335: __typename alias1336: __typename alias1337: __typename alias1338: __typename alias1339: __typename alias1340: __typename alias1341: __typename alias1342: __typename alias1343: __typename alias1344: __typename alias1345: __typename alias1346: __typename alias1347: __typename alias1348: __typename alias1349: __typename alias1350: __typename alias1351: __typename alias1352: __typename alias1353: __typename alias1354: __typename alias1355: __typename alias1356: __typename alias1357: __typename alias1358: __typename alias1359: __typename alias1360: __typename alias1361: __typename alias1362: __typename alias1363: __typename alias1364: __typename alias1365: __typename alias1366: __typename alias1367: __typename alias1368: __typename alias1369: __typename alias1370: __typename alias1371: __typename alias1372: __typename alias1373: __typename alias1374: __typename alias1375: __typename alias1376: __typename alias1377: __typename alias1378: __typename alias1379: __typename alias1380: __typename alias1381: __typename alias1382: __typename alias1383: __typename alias1384: __typename alias1385: __typename alias1386: __typename alias1387: __typename alias1388: __typename alias1389: __typename alias1390: __typename alias1391: __typename alias1392: __typename alias1393: __typename alias1394: __typename alias1395: __typename alias1396: __typename alias1397: __typename alias1398: __typename alias1399: __typename alias1400: __typename alias1401: __typename alias1402: __typename alias1403: __typename alias1404: __typename alias1405: __typename alias1406: __typename alias1407: __typename alias1408: __typename alias1409: __typename alias1410: __typename alias1411: __typename alias1412: __typename alias1413: __typename alias1414: __typename alias1415: __typename alias1416: __typename alias1417: __typename alias1418: __typename alias1419: __typename alias1420: __typename alias1421: __typename alias1422: __typename alias1423: __typename alias1424: __typename alias1425: __typename alias1426: __typename alias1427: __typename alias1428: __typename alias1429: __typename alias1430: __typename alias1431: __typename alias1432: __typename alias1433: __typename alias1434: __typename alias1435: __typename alias1436: __typename alias1437: __typename alias1438: __typename alias1439: __typename alias1440: __typename alias1441: __typename alias1442: __typename alias1443: __typename alias1444: __typename alias1445: __typename alias1446: __typename alias1447: __typename alias1448: __typename alias1449: __typename alias1450: __typename alias1451: __typename alias1452: __typename alias1453: __typename alias1454: __typename alias1455: __typename alias1456: __typename alias1457: __typename alias1458: __typename alias1459: __typename alias1460: __typename alias1461: __typename alias1462: __typename alias1463: __typename alias1464: __typename alias1465: __typename alias1466: __typename alias1467: __typename alias1468: __typename alias1469: __typename alias1470: __typename alias1471: __typename alias1472: __typename alias1473: __typename alias1474: __typename alias1475: __typename alias1476: __typename alias1477: __typename alias1478: __typename alias1479: __typename alias1480: __typename alias1481: __typename alias1482: __typename alias1483: __typename alias1484: __typename alias1485: __typename alias1486: __typename alias1487: __typename alias1488: __typename alias1489: __typename alias1490: __typename alias1491: __typename alias1492: __typename alias1493: __typename alias1494: __typename alias1495: __typename alias1496: __typename alias1497: __typename alias1498: __typename alias1499: __typename alias1500: __typename alias1501: __typename alias1502: __typename alias1503: __typename alias1504: __typename alias1505: __typename alias1506: __typename alias1507: __typename alias1508: __typename alias1509: __typename alias1510: __typename alias1511: __typename alias1512: __typename alias1513: __typename alias1514: __typename alias1515: __typename alias1516: __typename alias1517: __typename alias1518: __typename alias1519: __typename alias1520: __typename alias1521: __typename alias1522: __typename alias1523: __typename alias1524: __typename alias1525: __typename alias1526: __typename alias1527: __typename alias1528: __typename alias1529: __typename alias1530: __typename alias1531: __typename alias1532: __typename alias1533: __typename alias1534: __typename alias1535: __typename alias1536: __typename alias1537: __typename alias1538: __typename alias1539: __typename alias1540: __typename alias1541: __typename alias1542: __typename alias1543: __typename alias1544: __typename alias1545: __typename alias1546: __typename alias1547: __typename alias1548: __typename alias1549: __typename alias1550: __typename alias1551: __typename alias1552: __typename alias1553: __typename alias1554: __typename alias1555: __typename alias1556: __typename alias1557: __typename alias1558: __typename alias1559: __typename alias1560: __typename alias1561: __typename alias1562: __typename alias1563: __typename alias1564: __typename alias1565: __typename alias1566: __typename alias1567: __typename alias1568: __typename alias1569: __typename alias1570: __typename alias1571: __typename alias1572: __typename alias1573: __typename alias1574: __typename alias1575: __typename alias1576: __typename alias1577: __typename alias1578: __typename alias1579: __typename alias1580: __typename alias1581: __typename alias1582: __typename alias1583: __typename alias1584: __typename alias1585: __typename alias1586: __typename alias1587: __typename alias1588: __typename alias1589: __typename alias1590: __typename alias1591: __typename alias1592: __typename alias1593: __typename alias1594: __typename alias1595: __typename alias1596: __typename alias1597: __typename alias1598: __typename alias1599: __typename alias1600: __typename alias1601: __typename alias1602: __typename alias1603: __typename alias1604: __typename alias1605: __typename alias1606: __typename alias1607: __typename alias1608: __typename alias1609: __typename alias1610: __typename alias1611: __typename alias1612: __typename alias1613: __typename alias1614: __typename alias1615: __typename alias1616: __typename alias1617: __typename alias1618: __typename alias1619: __typename alias1620: __typename alias1621: __typename alias1622: __typename alias1623: __typename alias1624: __typename alias1625: __typename alias1626: __typename alias1627: __typename alias1628: __typename alias1629: __typename alias1630: __typename alias1631: __typename alias1632: __typename alias1633: __typename alias1634: __typename alias1635: __typename alias1636: __typename alias1637: __typename alias1638: __typename alias1639: __typename alias1640: __typename alias1641: __typename alias1642: __typename alias1643: __typename alias1644: __typename alias1645: __typename alias1646: __typename alias1647: __typename alias1648: __typename alias1649: __typename alias1650: __typename alias1651: __typename alias1652: __typename alias1653: __typename alias1654: __typename alias1655: __typename alias1656: __typename alias1657: __typename alias1658: __typename alias1659: __typename alias1660: __typename alias1661: __typename alias1662: __typename alias1663: __typename alias1664: __typename alias1665: __typename alias1666: __typename alias1667: __typename alias1668: __typename alias1669: __typename alias1670: __typename alias1671: __typename alias1672: __typename alias1673: __typename alias1674: __typename alias1675: __typename alias1676: __typename alias1677: __typename alias1678: __typename alias1679: __typename alias1680: __typename alias1681: __typename alias1682: __typename alias1683: __typename alias1684: __typename alias1685: __typename alias1686: __typename alias1687: __typename alias1688: __typename alias1689: __typename alias1690: __typename alias1691: __typename alias1692: __typename alias1693: __typename alias1694: __typename alias1695: __typename alias1696: __typename alias1697: __typename alias1698: __typename alias1699: __typename alias1700: __typename alias1701: __typename alias1702: __typename alias1703: __typename alias1704: __typename alias1705: __typename alias1706: __typename alias1707: __typename alias1708: __typename alias1709: __typename alias1710: __typename alias1711: __typename alias1712: __typename alias1713: __typename alias1714: __typename alias1715: __typename alias1716: __typename alias1717: __typename alias1718: __typename alias1719: __typename alias1720: __typename alias1721: __typename alias1722: __typename alias1723: __typename alias1724: __typename alias1725: __typename alias1726: __typename alias1727: __typename alias1728: __typename alias1729: __typename alias1730: __typename alias1731: __typename alias1732: __typename alias1733: __typename alias1734: __typename alias1735: __typename alias1736: __typename alias1737: __typename alias1738: __typename alias1739: __typename alias1740: __typename alias1741: __typename alias1742: __typename alias1743: __typename alias1744: __typename alias1745: __typename alias1746: __typename alias1747: __typename alias1748: __typename alias1749: __typename alias1750: __typename alias1751: __typename alias1752: __typename alias1753: __typename alias1754: __typename alias1755: __typename alias1756: __typename alias1757: __typename alias1758: __typename alias1759: __typename alias1760: __typename alias1761: __typename alias1762: __typename alias1763: __typename alias1764: __typename alias1765: __typename alias1766: __typename alias1767: __typename alias1768: __typename alias1769: __typename alias1770: __typename alias1771: __typename alias1772: __typename alias1773: __typename alias1774: __typename alias1775: __typename alias1776: __typename alias1777: __typename alias1778: __typename alias1779: __typename alias1780: __typename alias1781: __typename alias1782: __typename alias1783: __typename alias1784: __typename alias1785: __typename alias1786: __typename alias1787: __typename alias1788: __typename alias1789: __typename alias1790: __typename alias1791: __typename alias1792: __typename alias1793: __typename alias1794: __typename alias1795: __typename alias1796: __typename alias1797: __typename alias1798: __typename alias1799: __typename alias1800: __typename alias1801: __typename alias1802: __typename alias1803: __typename alias1804: __typename alias1805: __typename alias1806: __typename alias1807: __typename alias1808: __typename alias1809: __typename alias1810: __typename alias1811: __typename alias1812: __typename alias1813: __typename alias1814: __typename alias1815: __typename alias1816: __typename alias1817: __typename alias1818: __typename alias1819: __typename alias1820: __typename alias1821: __typename alias1822: __typename alias1823: __typename alias1824: __typename alias1825: __typename alias1826: __typename alias1827: __typename alias1828: __typename alias1829: __typename alias1830: __typename alias1831: __typename alias1832: __typename alias1833: __typename alias1834: __typename alias1835: __typename alias1836: __typename alias1837: __typename alias1838: __typename alias1839: __typename alias1840: __typename alias1841: __typename alias1842: __typename alias1843: __typename alias1844: __typename alias1845: __typename alias1846: __typename alias1847: __typename alias1848: __typename alias1849: __typename alias1850: __typename alias1851: __typename alias1852: __typename alias1853: __typename alias1854: __typename alias1855: __typename alias1856: __typename alias1857: __typename alias1858: __typename alias1859: __typename alias1860: __typename alias1861: __typename alias1862: __typename alias1863: __typename alias1864: __typename alias1865: __typename alias1866: __typename alias1867: __typename alias1868: __typename alias1869: __typename alias1870: __typename alias1871: __typename alias1872: __typename alias1873: __typename alias1874: __typename alias1875: __typename alias1876: __typename alias1877: __typename alias1878: __typename alias1879: __typename alias1880: __typename alias1881: __typename alias1882: __typename alias1883: __typename alias1884: __typename alias1885: __typename alias1886: __typename alias1887: __typename alias1888: __typename alias1889: __typename alias1890: __typename alias1891: __typename alias1892: __typename alias1893: __typename alias1894: __typename alias1895: __typename alias1896: __typename alias1897: __typename alias1898: __typename alias1899: __typename alias1900: __typename alias1901: __typename alias1902: __typename alias1903: __typename alias1904: __typename alias1905: __typename alias1906: __typename alias1907: __typename alias1908: __typename alias1909: __typename alias1910: __typename alias1911: __typename alias1912: __typename alias1913: __typename alias1914: __typename alias1915: __typename alias1916: __typename alias1917: __typename alias1918: __typename alias1919: __typename alias1920: __typename alias1921: __typename alias1922: __typename alias1923: __typename alias1924: __typename alias1925: __typename alias1926: __typename alias1927: __typename alias1928: __typename alias1929: __typename alias1930: __typename alias1931: __typename alias1932: __typename alias1933: __typename alias1934: __typename alias1935: __typename alias1936: __typename alias1937: __typename alias1938: __typename alias1939: __typename alias1940: __typename alias1941: __typename alias1942: __typename alias1943: __typename alias1944: __typename alias1945: __typename alias1946: __typename alias1947: __typename alias1948: __typename alias1949: __typename alias1950: __typename alias1951: __typename alias1952: __typename alias1953: __typename alias1954: __typename alias1955: __typename alias1956: __typename alias1957: __typename alias1958: __typename alias1959: __typename alias1960: __typename alias1961: __typename alias1962: __typename alias1963: __typename alias1964: __typename alias1965: __typename alias1966: __typename alias1967: __typename alias1968: __typename alias1969: __typename alias1970: __typename alias1971: __typename alias1972: __typename alias1973: __typename alias1974: __typename alias1975: __typename alias1976: __typename alias1977: __typename alias1978: __typename alias1979: __typename alias1980: __typename alias1981: __typename alias1982: __typename alias1983: __typename alias1984: __typename alias1985: __typename alias1986: __typename alias1987: __typename alias1988: __typename alias1989: __typename alias1990: __typename alias1991: __typename alias1992: __typename alias1993: __typename alias1994: __typename alias1995: __typename alias1996: __typename alias1997: __typename alias1998: __typename alias1999: __typename alias2000: __typename alias2001: __typename alias2002: __typename alias2003: __typename alias2004: __typename alias2005: __typename alias2006: __typename alias2007: __typename alias2008: __typename alias2009: __typename alias2010: __typename alias2011: __typename alias2012: __typename alias2013: __typename alias2014: __typename alias2015: __typename alias2016: __typename alias2017: __typename alias2018: __typename alias2019: __typename alias2020: __typename alias2021: __typename alias2022: __typename alias2023: __typename alias2024: __typename alias2025: __typename alias2026: __typename alias2027: __typename alias2028: __typename alias2029: __typename alias2030: __typename alias2031: __typename alias2032: __typename alias2033: __typename alias2034: __typename alias2035: __typename alias2036: __typename alias2037: __typename alias2038: __typename alias2039: __typename alias2040: __typename alias2041: __typename alias2042: __typename alias2043: __typename alias2044: __typename alias2045: __typename alias2046: __typename alias2047: __typename }", - "operation": "queryalias", - "rootNode": { - "type": "Sequence", - "nodes": [ - { - "type": "Introspect", - "document": "{ alias0: __typename alias1: __typename alias2: __typename alias3: __typename alias4: __typename alias5: __typename alias6: __typename alias7: __typename alias8: __typename alias9: __typename alias10: __typename alias11: __typename alias12: __typename alias13: __typename alias14: __typename alias15: __typename alias16: __typename alias17: __typename alias18: __typename alias19: __typename alias20: __typename alias21: __typename alias22: __typename alias23: __typename alias24: __typename alias25: __typename alias26: __typename alias27: __typename alias28: __typename alias29: __typename alias30: __typename alias31: __typename alias32: __typename alias33: __typename alias34: __typename alias35: __typename alias36: __typename alias37: __typename alias38: __typename alias39: __typename alias40: __typename alias41: __typename alias42: __typename alias43: __typename alias44: __typename alias45: __typename alias46: __typename alias47: __typename alias48: __typename alias49: __typename alias50: __typename alias51: __typename alias52: __typename alias53: __typename alias54: __typename alias55: __typename alias56: __typename alias57: __typename alias58: __typename alias59: __typename alias60: __typename alias61: __typename alias62: __typename alias63: __typename alias64: __typename alias65: __typename alias66: __typename alias67: __typename alias68: __typename alias69: __typename alias70: __typename alias71: __typename alias72: __typename alias73: __typename alias74: __typename alias75: __typename alias76: __typename alias77: __typename alias78: __typename alias79: __typename alias80: __typename alias81: __typename alias82: __typename alias83: __typename alias84: __typename alias85: __typename alias86: __typename alias87: __typename alias88: __typename alias89: __typename alias90: __typename alias91: __typename alias92: __typename alias93: __typename alias94: __typename alias95: __typename alias96: __typename alias97: __typename alias98: __typename alias99: __typename alias100: __typename alias101: __typename alias102: __typename alias103: __typename alias104: __typename alias105: __typename alias106: __typename alias107: __typename alias108: __typename alias109: __typename alias110: __typename alias111: __typename alias112: __typename alias113: __typename alias114: __typename alias115: __typename alias116: __typename alias117: __typename alias118: __typename alias119: __typename alias120: __typename alias121: __typename alias122: __typename alias123: __typename alias124: __typename alias125: __typename alias126: __typename alias127: __typename alias128: __typename alias129: __typename alias130: __typename alias131: __typename alias132: __typename alias133: __typename alias134: __typename alias135: __typename alias136: __typename alias137: __typename alias138: __typename alias139: __typename alias140: __typename alias141: __typename alias142: __typename alias143: __typename alias144: __typename alias145: __typename alias146: __typename alias147: __typename alias148: __typename alias149: __typename alias150: __typename alias151: __typename alias152: __typename alias153: __typename alias154: __typename alias155: __typename alias156: __typename alias157: __typename alias158: __typename alias159: __typename alias160: __typename alias161: __typename alias162: __typename alias163: __typename alias164: __typename alias165: __typename alias166: __typename alias167: __typename alias168: __typename alias169: __typename alias170: __typename alias171: __typename alias172: __typename alias173: __typename alias174: __typename alias175: __typename alias176: __typename alias177: __typename alias178: __typename alias179: __typename alias180: __typename alias181: __typename alias182: __typename alias183: __typename alias184: __typename alias185: __typename alias186: __typename alias187: __typename alias188: __typename alias189: __typename alias190: __typename alias191: __typename alias192: __typename alias193: __typename alias194: __typename alias195: __typename alias196: __typename alias197: __typename alias198: __typename alias199: __typename alias200: __typename alias201: __typename alias202: __typename alias203: __typename alias204: __typename alias205: __typename alias206: __typename alias207: __typename alias208: __typename alias209: __typename alias210: __typename alias211: __typename alias212: __typename alias213: __typename alias214: __typename alias215: __typename alias216: __typename alias217: __typename alias218: __typename alias219: __typename alias220: __typename alias221: __typename alias222: __typename alias223: __typename alias224: __typename alias225: __typename alias226: __typename alias227: __typename alias228: __typename alias229: __typename alias230: __typename alias231: __typename alias232: __typename alias233: __typename alias234: __typename alias235: __typename alias236: __typename alias237: __typename alias238: __typename alias239: __typename alias240: __typename alias241: __typename alias242: __typename alias243: __typename alias244: __typename alias245: __typename alias246: __typename alias247: __typename alias248: __typename alias249: __typename alias250: __typename alias251: __typename alias252: __typename alias253: __typename alias254: __typename alias255: __typename alias256: __typename alias257: __typename alias258: __typename alias259: __typename alias260: __typename alias261: __typename alias262: __typename alias263: __typename alias264: __typename alias265: __typename alias266: __typename alias267: __typename alias268: __typename alias269: __typename alias270: __typename alias271: __typename alias272: __typename alias273: __typename alias274: __typename alias275: __typename alias276: __typename alias277: __typename alias278: __typename alias279: __typename alias280: __typename alias281: __typename alias282: __typename alias283: __typename alias284: __typename alias285: __typename alias286: __typename alias287: __typename alias288: __typename alias289: __typename alias290: __typename alias291: __typename alias292: __typename alias293: __typename alias294: __typename alias295: __typename alias296: __typename alias297: __typename alias298: __typename alias299: __typename alias300: __typename alias301: __typename alias302: __typename alias303: __typename alias304: __typename alias305: __typename alias306: __typename alias307: __typename alias308: __typename alias309: __typename alias310: __typename alias311: __typename alias312: __typename alias313: __typename alias314: __typename alias315: __typename alias316: __typename alias317: __typename alias318: __typename alias319: __typename alias320: __typename alias321: __typename alias322: __typename alias323: __typename alias324: __typename alias325: __typename alias326: __typename alias327: __typename alias328: __typename alias329: __typename alias330: __typename alias331: __typename alias332: __typename alias333: __typename alias334: __typename alias335: __typename alias336: __typename alias337: __typename alias338: __typename alias339: __typename alias340: __typename alias341: __typename alias342: __typename alias343: __typename alias344: __typename alias345: __typename alias346: __typename alias347: __typename alias348: __typename alias349: __typename alias350: __typename alias351: __typename alias352: __typename alias353: __typename alias354: __typename alias355: __typename alias356: __typename alias357: __typename alias358: __typename alias359: __typename alias360: __typename alias361: __typename alias362: __typename alias363: __typename alias364: __typename alias365: __typename alias366: __typename alias367: __typename alias368: __typename alias369: __typename alias370: __typename alias371: __typename alias372: __typename alias373: __typename alias374: __typename alias375: __typename alias376: __typename alias377: __typename alias378: __typename alias379: __typename alias380: __typename alias381: __typename alias382: __typename alias383: __typename alias384: __typename alias385: __typename alias386: __typename alias387: __typename alias388: __typename alias389: __typename alias390: __typename alias391: __typename alias392: __typename alias393: __typename alias394: __typename alias395: __typename alias396: __typename alias397: __typename alias398: __typename alias399: __typename alias400: __typename alias401: __typename alias402: __typename alias403: __typename alias404: __typename alias405: __typename alias406: __typename alias407: __typename alias408: __typename alias409: __typename alias410: __typename alias411: __typename alias412: __typename alias413: __typename alias414: __typename alias415: __typename alias416: __typename alias417: __typename alias418: __typename alias419: __typename alias420: __typename alias421: __typename alias422: __typename alias423: __typename alias424: __typename alias425: __typename alias426: __typename alias427: __typename alias428: __typename alias429: __typename alias430: __typename alias431: __typename alias432: __typename alias433: __typename alias434: __typename alias435: __typename alias436: __typename alias437: __typename alias438: __typename alias439: __typename alias440: __typename alias441: __typename alias442: __typename alias443: __typename alias444: __typename alias445: __typename alias446: __typename alias447: __typename alias448: __typename alias449: __typename alias450: __typename alias451: __typename alias452: __typename alias453: __typename alias454: __typename alias455: __typename alias456: __typename alias457: __typename alias458: __typename alias459: __typename alias460: __typename alias461: __typename alias462: __typename alias463: __typename alias464: __typename alias465: __typename alias466: __typename alias467: __typename alias468: __typename alias469: __typename alias470: __typename alias471: __typename alias472: __typename alias473: __typename alias474: __typename alias475: __typename alias476: __typename alias477: __typename alias478: __typename alias479: __typename alias480: __typename alias481: __typename alias482: __typename alias483: __typename alias484: __typename alias485: __typename alias486: __typename alias487: __typename alias488: __typename alias489: __typename alias490: __typename alias491: __typename alias492: __typename alias493: __typename alias494: __typename alias495: __typename alias496: __typename alias497: __typename alias498: __typename alias499: __typename alias500: __typename alias501: __typename alias502: __typename alias503: __typename alias504: __typename alias505: __typename alias506: __typename alias507: __typename alias508: __typename alias509: __typename alias510: __typename alias511: __typename alias512: __typename alias513: __typename alias514: __typename alias515: __typename alias516: __typename alias517: __typename alias518: __typename alias519: __typename alias520: __typename alias521: __typename alias522: __typename alias523: __typename alias524: __typename alias525: __typename alias526: __typename alias527: __typename alias528: __typename alias529: __typename alias530: __typename alias531: __typename alias532: __typename alias533: __typename alias534: __typename alias535: __typename alias536: __typename alias537: __typename alias538: __typename alias539: __typename alias540: __typename alias541: __typename alias542: __typename alias543: __typename alias544: __typename alias545: __typename alias546: __typename alias547: __typename alias548: __typename alias549: __typename alias550: __typename alias551: __typename alias552: __typename alias553: __typename alias554: __typename alias555: __typename alias556: __typename alias557: __typename alias558: __typename alias559: __typename alias560: __typename alias561: __typename alias562: __typename alias563: __typename alias564: __typename alias565: __typename alias566: __typename alias567: __typename alias568: __typename alias569: __typename alias570: __typename alias571: __typename alias572: __typename alias573: __typename alias574: __typename alias575: __typename alias576: __typename alias577: __typename alias578: __typename alias579: __typename alias580: __typename alias581: __typename alias582: __typename alias583: __typename alias584: __typename alias585: __typename alias586: __typename alias587: __typename alias588: __typename alias589: __typename alias590: __typename alias591: __typename alias592: __typename alias593: __typename alias594: __typename alias595: __typename alias596: __typename alias597: __typename alias598: __typename alias599: __typename alias600: __typename alias601: __typename alias602: __typename alias603: __typename alias604: __typename alias605: __typename alias606: __typename alias607: __typename alias608: __typename alias609: __typename alias610: __typename alias611: __typename alias612: __typename alias613: __typename alias614: __typename alias615: __typename alias616: __typename alias617: __typename alias618: __typename alias619: __typename alias620: __typename alias621: __typename alias622: __typename alias623: __typename alias624: __typename alias625: __typename alias626: __typename alias627: __typename alias628: __typename alias629: __typename alias630: __typename alias631: __typename alias632: __typename alias633: __typename alias634: __typename alias635: __typename alias636: __typename alias637: __typename alias638: __typename alias639: __typename alias640: __typename alias641: __typename alias642: __typename alias643: __typename alias644: __typename alias645: __typename alias646: __typename alias647: __typename alias648: __typename alias649: __typename alias650: __typename alias651: __typename alias652: __typename alias653: __typename alias654: __typename alias655: __typename alias656: __typename alias657: __typename alias658: __typename alias659: __typename alias660: __typename alias661: __typename alias662: __typename alias663: __typename alias664: __typename alias665: __typename alias666: __typename alias667: __typename alias668: __typename alias669: __typename alias670: __typename alias671: __typename alias672: __typename alias673: __typename alias674: __typename alias675: __typename alias676: __typename alias677: __typename alias678: __typename alias679: __typename alias680: __typename alias681: __typename alias682: __typename alias683: __typename alias684: __typename alias685: __typename alias686: __typename alias687: __typename alias688: __typename alias689: __typename alias690: __typename alias691: __typename alias692: __typename alias693: __typename alias694: __typename alias695: __typename alias696: __typename alias697: __typename alias698: __typename alias699: __typename alias700: __typename alias701: __typename alias702: __typename alias703: __typename alias704: __typename alias705: __typename alias706: __typename alias707: __typename alias708: __typename alias709: __typename alias710: __typename alias711: __typename alias712: __typename alias713: __typename alias714: __typename alias715: __typename alias716: __typename alias717: __typename alias718: __typename alias719: __typename alias720: __typename alias721: __typename alias722: __typename alias723: __typename alias724: __typename alias725: __typename alias726: __typename alias727: __typename alias728: __typename alias729: __typename alias730: __typename alias731: __typename alias732: __typename alias733: __typename alias734: __typename alias735: __typename alias736: __typename alias737: __typename alias738: __typename alias739: __typename alias740: __typename alias741: __typename alias742: __typename alias743: __typename alias744: __typename alias745: __typename alias746: __typename alias747: __typename alias748: __typename alias749: __typename alias750: __typename alias751: __typename alias752: __typename alias753: __typename alias754: __typename alias755: __typename alias756: __typename alias757: __typename alias758: __typename alias759: __typename alias760: __typename alias761: __typename alias762: __typename alias763: __typename alias764: __typename alias765: __typename alias766: __typename alias767: __typename alias768: __typename alias769: __typename alias770: __typename alias771: __typename alias772: __typename alias773: __typename alias774: __typename alias775: __typename alias776: __typename alias777: __typename alias778: __typename alias779: __typename alias780: __typename alias781: __typename alias782: __typename alias783: __typename alias784: __typename alias785: __typename alias786: __typename alias787: __typename alias788: __typename alias789: __typename alias790: __typename alias791: __typename alias792: __typename alias793: __typename alias794: __typename alias795: __typename alias796: __typename alias797: __typename alias798: __typename alias799: __typename alias800: __typename alias801: __typename alias802: __typename alias803: __typename alias804: __typename alias805: __typename alias806: __typename alias807: __typename alias808: __typename alias809: __typename alias810: __typename alias811: __typename alias812: __typename alias813: __typename alias814: __typename alias815: __typename alias816: __typename alias817: __typename alias818: __typename alias819: __typename alias820: __typename alias821: __typename alias822: __typename alias823: __typename alias824: __typename alias825: __typename alias826: __typename alias827: __typename alias828: __typename alias829: __typename alias830: __typename alias831: __typename alias832: __typename alias833: __typename alias834: __typename alias835: __typename alias836: __typename alias837: __typename alias838: __typename alias839: __typename alias840: __typename alias841: __typename alias842: __typename alias843: __typename alias844: __typename alias845: __typename alias846: __typename alias847: __typename alias848: __typename alias849: __typename alias850: __typename alias851: __typename alias852: __typename alias853: __typename alias854: __typename alias855: __typename alias856: __typename alias857: __typename alias858: __typename alias859: __typename alias860: __typename alias861: __typename alias862: __typename alias863: __typename alias864: __typename alias865: __typename alias866: __typename alias867: __typename alias868: __typename alias869: __typename alias870: __typename alias871: __typename alias872: __typename alias873: __typename alias874: __typename alias875: __typename alias876: __typename alias877: __typename alias878: __typename alias879: __typename alias880: __typename alias881: __typename alias882: __typename alias883: __typename alias884: __typename alias885: __typename alias886: __typename alias887: __typename alias888: __typename alias889: __typename alias890: __typename alias891: __typename alias892: __typename alias893: __typename alias894: __typename alias895: __typename alias896: __typename alias897: __typename alias898: __typename alias899: __typename alias900: __typename alias901: __typename alias902: __typename alias903: __typename alias904: __typename alias905: __typename alias906: __typename alias907: __typename alias908: __typename alias909: __typename alias910: __typename alias911: __typename alias912: __typename alias913: __typename alias914: __typename alias915: __typename alias916: __typename alias917: __typename alias918: __typename alias919: __typename alias920: __typename alias921: __typename alias922: __typename alias923: __typename alias924: __typename alias925: __typename alias926: __typename alias927: __typename alias928: __typename alias929: __typename alias930: __typename alias931: __typename alias932: __typename alias933: __typename alias934: __typename alias935: __typename alias936: __typename alias937: __typename alias938: __typename alias939: __typename alias940: __typename alias941: __typename alias942: __typename alias943: __typename alias944: __typename alias945: __typename alias946: __typename alias947: __typename alias948: __typename alias949: __typename alias950: __typename alias951: __typename alias952: __typename alias953: __typename alias954: __typename alias955: __typename alias956: __typename alias957: __typename alias958: __typename alias959: __typename alias960: __typename alias961: __typename alias962: __typename alias963: __typename alias964: __typename alias965: __typename alias966: __typename alias967: __typename alias968: __typename alias969: __typename alias970: __typename alias971: __typename alias972: __typename alias973: __typename alias974: __typename alias975: __typename alias976: __typename alias977: __typename alias978: __typename alias979: __typename alias980: __typename alias981: __typename alias982: __typename alias983: __typename alias984: __typename alias985: __typename alias986: __typename alias987: __typename alias988: __typename alias989: __typename alias990: __typename alias991: __typename alias992: __typename alias993: __typename alias994: __typename alias995: __typename alias996: __typename alias997: __typename alias998: __typename alias999: __typename alias1000: __typename alias1001: __typename alias1002: __typename alias1003: __typename alias1004: __typename alias1005: __typename alias1006: __typename alias1007: __typename alias1008: __typename alias1009: __typename alias1010: __typename alias1011: __typename alias1012: __typename alias1013: __typename alias1014: __typename alias1015: __typename alias1016: __typename alias1017: __typename alias1018: __typename alias1019: __typename alias1020: __typename alias1021: __typename alias1022: __typename alias1023: __typename alias1024: __typename alias1025: __typename alias1026: __typename alias1027: __typename alias1028: __typename alias1029: __typename alias1030: __typename alias1031: __typename alias1032: __typename alias1033: __typename alias1034: __typename alias1035: __typename alias1036: __typename alias1037: __typename alias1038: __typename alias1039: __typename alias1040: __typename alias1041: __typename alias1042: __typename alias1043: __typename alias1044: __typename alias1045: __typename alias1046: __typename alias1047: __typename alias1048: __typename alias1049: __typename alias1050: __typename alias1051: __typename alias1052: __typename alias1053: __typename alias1054: __typename alias1055: __typename alias1056: __typename alias1057: __typename alias1058: __typename alias1059: __typename alias1060: __typename alias1061: __typename alias1062: __typename alias1063: __typename alias1064: __typename alias1065: __typename alias1066: __typename alias1067: __typename alias1068: __typename alias1069: __typename alias1070: __typename alias1071: __typename alias1072: __typename alias1073: __typename alias1074: __typename alias1075: __typename alias1076: __typename alias1077: __typename alias1078: __typename alias1079: __typename alias1080: __typename alias1081: __typename alias1082: __typename alias1083: __typename alias1084: __typename alias1085: __typename alias1086: __typename alias1087: __typename alias1088: __typename alias1089: __typename alias1090: __typename alias1091: __typename alias1092: __typename alias1093: __typename alias1094: __typename alias1095: __typename alias1096: __typename alias1097: __typename alias1098: __typename alias1099: __typename alias1100: __typename alias1101: __typename alias1102: __typename alias1103: __typename alias1104: __typename alias1105: __typename alias1106: __typename alias1107: __typename alias1108: __typename alias1109: __typename alias1110: __typename alias1111: __typename alias1112: __typename alias1113: __typename alias1114: __typename alias1115: __typename alias1116: __typename alias1117: __typename alias1118: __typename alias1119: __typename alias1120: __typename alias1121: __typename alias1122: __typename alias1123: __typename alias1124: __typename alias1125: __typename alias1126: __typename alias1127: __typename alias1128: __typename alias1129: __typename alias1130: __typename alias1131: __typename alias1132: __typename alias1133: __typename alias1134: __typename alias1135: __typename alias1136: __typename alias1137: __typename alias1138: __typename alias1139: __typename alias1140: __typename alias1141: __typename alias1142: __typename alias1143: __typename alias1144: __typename alias1145: __typename alias1146: __typename alias1147: __typename alias1148: __typename alias1149: __typename alias1150: __typename alias1151: __typename alias1152: __typename alias1153: __typename alias1154: __typename alias1155: __typename alias1156: __typename alias1157: __typename alias1158: __typename alias1159: __typename alias1160: __typename alias1161: __typename alias1162: __typename alias1163: __typename alias1164: __typename alias1165: __typename alias1166: __typename alias1167: __typename alias1168: __typename alias1169: __typename alias1170: __typename alias1171: __typename alias1172: __typename alias1173: __typename alias1174: __typename alias1175: __typename alias1176: __typename alias1177: __typename alias1178: __typename alias1179: __typename alias1180: __typename alias1181: __typename alias1182: __typename alias1183: __typename alias1184: __typename alias1185: __typename alias1186: __typename alias1187: __typename alias1188: __typename alias1189: __typename alias1190: __typename alias1191: __typename alias1192: __typename alias1193: __typename alias1194: __typename alias1195: __typename alias1196: __typename alias1197: __typename alias1198: __typename alias1199: __typename alias1200: __typename alias1201: __typename alias1202: __typename alias1203: __typename alias1204: __typename alias1205: __typename alias1206: __typename alias1207: __typename alias1208: __typename alias1209: __typename alias1210: __typename alias1211: __typename alias1212: __typename alias1213: __typename alias1214: __typename alias1215: __typename alias1216: __typename alias1217: __typename alias1218: __typename alias1219: __typename alias1220: __typename alias1221: __typename alias1222: __typename alias1223: __typename alias1224: __typename alias1225: __typename alias1226: __typename alias1227: __typename alias1228: __typename alias1229: __typename alias1230: __typename alias1231: __typename alias1232: __typename alias1233: __typename alias1234: __typename alias1235: __typename alias1236: __typename alias1237: __typename alias1238: __typename alias1239: __typename alias1240: __typename alias1241: __typename alias1242: __typename alias1243: __typename alias1244: __typename alias1245: __typename alias1246: __typename alias1247: __typename alias1248: __typename alias1249: __typename alias1250: __typename alias1251: __typename alias1252: __typename alias1253: __typename alias1254: __typename alias1255: __typename alias1256: __typename alias1257: __typename alias1258: __typename alias1259: __typename alias1260: __typename alias1261: __typename alias1262: __typename alias1263: __typename alias1264: __typename alias1265: __typename alias1266: __typename alias1267: __typename alias1268: __typename alias1269: __typename alias1270: __typename alias1271: __typename alias1272: __typename alias1273: __typename alias1274: __typename alias1275: __typename alias1276: __typename alias1277: __typename alias1278: __typename alias1279: __typename alias1280: __typename alias1281: __typename alias1282: __typename alias1283: __typename alias1284: __typename alias1285: __typename alias1286: __typename alias1287: __typename alias1288: __typename alias1289: __typename alias1290: __typename alias1291: __typename alias1292: __typename alias1293: __typename alias1294: __typename alias1295: __typename alias1296: __typename alias1297: __typename alias1298: __typename alias1299: __typename alias1300: __typename alias1301: __typename alias1302: __typename alias1303: __typename alias1304: __typename alias1305: __typename alias1306: __typename alias1307: __typename alias1308: __typename alias1309: __typename alias1310: __typename alias1311: __typename alias1312: __typename alias1313: __typename alias1314: __typename alias1315: __typename alias1316: __typename alias1317: __typename alias1318: __typename alias1319: __typename alias1320: __typename alias1321: __typename alias1322: __typename alias1323: __typename alias1324: __typename alias1325: __typename alias1326: __typename alias1327: __typename alias1328: __typename alias1329: __typename alias1330: __typename alias1331: __typename alias1332: __typename alias1333: __typename alias1334: __typename alias1335: __typename alias1336: __typename alias1337: __typename alias1338: __typename alias1339: __typename alias1340: __typename alias1341: __typename alias1342: __typename alias1343: __typename alias1344: __typename alias1345: __typename alias1346: __typename alias1347: __typename alias1348: __typename alias1349: __typename alias1350: __typename alias1351: __typename alias1352: __typename alias1353: __typename alias1354: __typename alias1355: __typename alias1356: __typename alias1357: __typename alias1358: __typename alias1359: __typename alias1360: __typename alias1361: __typename alias1362: __typename alias1363: __typename alias1364: __typename alias1365: __typename alias1366: __typename alias1367: __typename alias1368: __typename alias1369: __typename alias1370: __typename alias1371: __typename alias1372: __typename alias1373: __typename alias1374: __typename alias1375: __typename alias1376: __typename alias1377: __typename alias1378: __typename alias1379: __typename alias1380: __typename alias1381: __typename alias1382: __typename alias1383: __typename alias1384: __typename alias1385: __typename alias1386: __typename alias1387: __typename alias1388: __typename alias1389: __typename alias1390: __typename alias1391: __typename alias1392: __typename alias1393: __typename alias1394: __typename alias1395: __typename alias1396: __typename alias1397: __typename alias1398: __typename alias1399: __typename alias1400: __typename alias1401: __typename alias1402: __typename alias1403: __typename alias1404: __typename alias1405: __typename alias1406: __typename alias1407: __typename alias1408: __typename alias1409: __typename alias1410: __typename alias1411: __typename alias1412: __typename alias1413: __typename alias1414: __typename alias1415: __typename alias1416: __typename alias1417: __typename alias1418: __typename alias1419: __typename alias1420: __typename alias1421: __typename alias1422: __typename alias1423: __typename alias1424: __typename alias1425: __typename alias1426: __typename alias1427: __typename alias1428: __typename alias1429: __typename alias1430: __typename alias1431: __typename alias1432: __typename alias1433: __typename alias1434: __typename alias1435: __typename alias1436: __typename alias1437: __typename alias1438: __typename alias1439: __typename alias1440: __typename alias1441: __typename alias1442: __typename alias1443: __typename alias1444: __typename alias1445: __typename alias1446: __typename alias1447: __typename alias1448: __typename alias1449: __typename alias1450: __typename alias1451: __typename alias1452: __typename alias1453: __typename alias1454: __typename alias1455: __typename alias1456: __typename alias1457: __typename alias1458: __typename alias1459: __typename alias1460: __typename alias1461: __typename alias1462: __typename alias1463: __typename alias1464: __typename alias1465: __typename alias1466: __typename alias1467: __typename alias1468: __typename alias1469: __typename alias1470: __typename alias1471: __typename alias1472: __typename alias1473: __typename alias1474: __typename alias1475: __typename alias1476: __typename alias1477: __typename alias1478: __typename alias1479: __typename alias1480: __typename alias1481: __typename alias1482: __typename alias1483: __typename alias1484: __typename alias1485: __typename alias1486: __typename alias1487: __typename alias1488: __typename alias1489: __typename alias1490: __typename alias1491: __typename alias1492: __typename alias1493: __typename alias1494: __typename alias1495: __typename alias1496: __typename alias1497: __typename alias1498: __typename alias1499: __typename alias1500: __typename alias1501: __typename alias1502: __typename alias1503: __typename alias1504: __typename alias1505: __typename alias1506: __typename alias1507: __typename alias1508: __typename alias1509: __typename alias1510: __typename alias1511: __typename alias1512: __typename alias1513: __typename alias1514: __typename alias1515: __typename alias1516: __typename alias1517: __typename alias1518: __typename alias1519: __typename alias1520: __typename alias1521: __typename alias1522: __typename alias1523: __typename alias1524: __typename alias1525: __typename alias1526: __typename alias1527: __typename alias1528: __typename alias1529: __typename alias1530: __typename alias1531: __typename alias1532: __typename alias1533: __typename alias1534: __typename alias1535: __typename alias1536: __typename alias1537: __typename alias1538: __typename alias1539: __typename alias1540: __typename alias1541: __typename alias1542: __typename alias1543: __typename alias1544: __typename alias1545: __typename alias1546: __typename alias1547: __typename alias1548: __typename alias1549: __typename alias1550: __typename alias1551: __typename alias1552: __typename alias1553: __typename alias1554: __typename alias1555: __typename alias1556: __typename alias1557: __typename alias1558: __typename alias1559: __typename alias1560: __typename alias1561: __typename alias1562: __typename alias1563: __typename alias1564: __typename alias1565: __typename alias1566: __typename alias1567: __typename alias1568: __typename alias1569: __typename alias1570: __typename alias1571: __typename alias1572: __typename alias1573: __typename alias1574: __typename alias1575: __typename alias1576: __typename alias1577: __typename alias1578: __typename alias1579: __typename alias1580: __typename alias1581: __typename alias1582: __typename alias1583: __typename alias1584: __typename alias1585: __typename alias1586: __typename alias1587: __typename alias1588: __typename alias1589: __typename alias1590: __typename alias1591: __typename alias1592: __typename alias1593: __typename alias1594: __typename alias1595: __typename alias1596: __typename alias1597: __typename alias1598: __typename alias1599: __typename alias1600: __typename alias1601: __typename alias1602: __typename alias1603: __typename alias1604: __typename alias1605: __typename alias1606: __typename alias1607: __typename alias1608: __typename alias1609: __typename alias1610: __typename alias1611: __typename alias1612: __typename alias1613: __typename alias1614: __typename alias1615: __typename alias1616: __typename alias1617: __typename alias1618: __typename alias1619: __typename alias1620: __typename alias1621: __typename alias1622: __typename alias1623: __typename alias1624: __typename alias1625: __typename alias1626: __typename alias1627: __typename alias1628: __typename alias1629: __typename alias1630: __typename alias1631: __typename alias1632: __typename alias1633: __typename alias1634: __typename alias1635: __typename alias1636: __typename alias1637: __typename alias1638: __typename alias1639: __typename alias1640: __typename alias1641: __typename alias1642: __typename alias1643: __typename alias1644: __typename alias1645: __typename alias1646: __typename alias1647: __typename alias1648: __typename alias1649: __typename alias1650: __typename alias1651: __typename alias1652: __typename alias1653: __typename alias1654: __typename alias1655: __typename alias1656: __typename alias1657: __typename alias1658: __typename alias1659: __typename alias1660: __typename alias1661: __typename alias1662: __typename alias1663: __typename alias1664: __typename alias1665: __typename alias1666: __typename alias1667: __typename alias1668: __typename alias1669: __typename alias1670: __typename alias1671: __typename alias1672: __typename alias1673: __typename alias1674: __typename alias1675: __typename alias1676: __typename alias1677: __typename alias1678: __typename alias1679: __typename alias1680: __typename alias1681: __typename alias1682: __typename alias1683: __typename alias1684: __typename alias1685: __typename alias1686: __typename alias1687: __typename alias1688: __typename alias1689: __typename alias1690: __typename alias1691: __typename alias1692: __typename alias1693: __typename alias1694: __typename alias1695: __typename alias1696: __typename alias1697: __typename alias1698: __typename alias1699: __typename alias1700: __typename alias1701: __typename alias1702: __typename alias1703: __typename alias1704: __typename alias1705: __typename alias1706: __typename alias1707: __typename alias1708: __typename alias1709: __typename alias1710: __typename alias1711: __typename alias1712: __typename alias1713: __typename alias1714: __typename alias1715: __typename alias1716: __typename alias1717: __typename alias1718: __typename alias1719: __typename alias1720: __typename alias1721: __typename alias1722: __typename alias1723: __typename alias1724: __typename alias1725: __typename alias1726: __typename alias1727: __typename alias1728: __typename alias1729: __typename alias1730: __typename alias1731: __typename alias1732: __typename alias1733: __typename alias1734: __typename alias1735: __typename alias1736: __typename alias1737: __typename alias1738: __typename alias1739: __typename alias1740: __typename alias1741: __typename alias1742: __typename alias1743: __typename alias1744: __typename alias1745: __typename alias1746: __typename alias1747: __typename alias1748: __typename alias1749: __typename alias1750: __typename alias1751: __typename alias1752: __typename alias1753: __typename alias1754: __typename alias1755: __typename alias1756: __typename alias1757: __typename alias1758: __typename alias1759: __typename alias1760: __typename alias1761: __typename alias1762: __typename alias1763: __typename alias1764: __typename alias1765: __typename alias1766: __typename alias1767: __typename alias1768: __typename alias1769: __typename alias1770: __typename alias1771: __typename alias1772: __typename alias1773: __typename alias1774: __typename alias1775: __typename alias1776: __typename alias1777: __typename alias1778: __typename alias1779: __typename alias1780: __typename alias1781: __typename alias1782: __typename alias1783: __typename alias1784: __typename alias1785: __typename alias1786: __typename alias1787: __typename alias1788: __typename alias1789: __typename alias1790: __typename alias1791: __typename alias1792: __typename alias1793: __typename alias1794: __typename alias1795: __typename alias1796: __typename alias1797: __typename alias1798: __typename alias1799: __typename alias1800: __typename alias1801: __typename alias1802: __typename alias1803: __typename alias1804: __typename alias1805: __typename alias1806: __typename alias1807: __typename alias1808: __typename alias1809: __typename alias1810: __typename alias1811: __typename alias1812: __typename alias1813: __typename alias1814: __typename alias1815: __typename alias1816: __typename alias1817: __typename alias1818: __typename alias1819: __typename alias1820: __typename alias1821: __typename alias1822: __typename alias1823: __typename alias1824: __typename alias1825: __typename alias1826: __typename alias1827: __typename alias1828: __typename alias1829: __typename alias1830: __typename alias1831: __typename alias1832: __typename alias1833: __typename alias1834: __typename alias1835: __typename alias1836: __typename alias1837: __typename alias1838: __typename alias1839: __typename alias1840: __typename alias1841: __typename alias1842: __typename alias1843: __typename alias1844: __typename alias1845: __typename alias1846: __typename alias1847: __typename alias1848: __typename alias1849: __typename alias1850: __typename alias1851: __typename alias1852: __typename alias1853: __typename alias1854: __typename alias1855: __typename alias1856: __typename alias1857: __typename alias1858: __typename alias1859: __typename alias1860: __typename alias1861: __typename alias1862: __typename alias1863: __typename alias1864: __typename alias1865: __typename alias1866: __typename alias1867: __typename alias1868: __typename alias1869: __typename alias1870: __typename alias1871: __typename alias1872: __typename alias1873: __typename alias1874: __typename alias1875: __typename alias1876: __typename alias1877: __typename alias1878: __typename alias1879: __typename alias1880: __typename alias1881: __typename alias1882: __typename alias1883: __typename alias1884: __typename alias1885: __typename alias1886: __typename alias1887: __typename alias1888: __typename alias1889: __typename alias1890: __typename alias1891: __typename alias1892: __typename alias1893: __typename alias1894: __typename alias1895: __typename alias1896: __typename alias1897: __typename alias1898: __typename alias1899: __typename alias1900: __typename alias1901: __typename alias1902: __typename alias1903: __typename alias1904: __typename alias1905: __typename alias1906: __typename alias1907: __typename alias1908: __typename alias1909: __typename alias1910: __typename alias1911: __typename alias1912: __typename alias1913: __typename alias1914: __typename alias1915: __typename alias1916: __typename alias1917: __typename alias1918: __typename alias1919: __typename alias1920: __typename alias1921: __typename alias1922: __typename alias1923: __typename alias1924: __typename alias1925: __typename alias1926: __typename alias1927: __typename alias1928: __typename alias1929: __typename alias1930: __typename alias1931: __typename alias1932: __typename alias1933: __typename alias1934: __typename alias1935: __typename alias1936: __typename alias1937: __typename alias1938: __typename alias1939: __typename alias1940: __typename alias1941: __typename alias1942: __typename alias1943: __typename alias1944: __typename alias1945: __typename alias1946: __typename alias1947: __typename alias1948: __typename alias1949: __typename alias1950: __typename alias1951: __typename alias1952: __typename alias1953: __typename alias1954: __typename alias1955: __typename alias1956: __typename alias1957: __typename alias1958: __typename alias1959: __typename alias1960: __typename alias1961: __typename alias1962: __typename alias1963: __typename alias1964: __typename alias1965: __typename alias1966: __typename alias1967: __typename alias1968: __typename alias1969: __typename alias1970: __typename alias1971: __typename alias1972: __typename alias1973: __typename alias1974: __typename alias1975: __typename alias1976: __typename alias1977: __typename alias1978: __typename alias1979: __typename alias1980: __typename alias1981: __typename alias1982: __typename alias1983: __typename alias1984: __typename alias1985: __typename alias1986: __typename alias1987: __typename alias1988: __typename alias1989: __typename alias1990: __typename alias1991: __typename alias1992: __typename alias1993: __typename alias1994: __typename alias1995: __typename alias1996: __typename alias1997: __typename alias1998: __typename alias1999: __typename alias2000: __typename alias2001: __typename alias2002: __typename alias2003: __typename alias2004: __typename alias2005: __typename alias2006: __typename alias2007: __typename alias2008: __typename alias2009: __typename alias2010: __typename alias2011: __typename alias2012: __typename alias2013: __typename alias2014: __typename alias2015: __typename alias2016: __typename alias2017: __typename alias2018: __typename alias2019: __typename alias2020: __typename alias2021: __typename alias2022: __typename alias2023: __typename alias2024: __typename alias2025: __typename alias2026: __typename alias2027: __typename alias2028: __typename alias2029: __typename alias2030: __typename alias2031: __typename alias2032: __typename alias2033: __typename alias2034: __typename alias2035: __typename alias2036: __typename alias2037: __typename alias2038: __typename alias2039: __typename alias2040: __typename alias2041: __typename alias2042: __typename alias2043: __typename alias2044: __typename alias2045: __typename alias2046: __typename alias2047: __typename }" - }, - { - "type": "Compose", - "selectionSetIds": [ - 0 - ] - } - ] - } -} ---------------- +``` -QueryPlan Hash ---------------- -01246D7DB5ECDD14497D332C955C9446F5E6929D ---------------- +## Result -Result ---------------- +```json { "data": { "alias0": "Query", @@ -4134,10 +4110,41 @@ Result "alias2047": "Query" } } ---------------- +``` -Fusion Graph ---------------- +## QueryPlan + +```json +{ + "document": "query queryalias { alias0: __typename alias1: __typename alias2: __typename alias3: __typename alias4: __typename alias5: __typename alias6: __typename alias7: __typename alias8: __typename alias9: __typename alias10: __typename alias11: __typename alias12: __typename alias13: __typename alias14: __typename alias15: __typename alias16: __typename alias17: __typename alias18: __typename alias19: __typename alias20: __typename alias21: __typename alias22: __typename alias23: __typename alias24: __typename alias25: __typename alias26: __typename alias27: __typename alias28: __typename alias29: __typename alias30: __typename alias31: __typename alias32: __typename alias33: __typename alias34: __typename alias35: __typename alias36: __typename alias37: __typename alias38: __typename alias39: __typename alias40: __typename alias41: __typename alias42: __typename alias43: __typename alias44: __typename alias45: __typename alias46: __typename alias47: __typename alias48: __typename alias49: __typename alias50: __typename alias51: __typename alias52: __typename alias53: __typename alias54: __typename alias55: __typename alias56: __typename alias57: __typename alias58: __typename alias59: __typename alias60: __typename alias61: __typename alias62: __typename alias63: __typename alias64: __typename alias65: __typename alias66: __typename alias67: __typename alias68: __typename alias69: __typename alias70: __typename alias71: __typename alias72: __typename alias73: __typename alias74: __typename alias75: __typename alias76: __typename alias77: __typename alias78: __typename alias79: __typename alias80: __typename alias81: __typename alias82: __typename alias83: __typename alias84: __typename alias85: __typename alias86: __typename alias87: __typename alias88: __typename alias89: __typename alias90: __typename alias91: __typename alias92: __typename alias93: __typename alias94: __typename alias95: __typename alias96: __typename alias97: __typename alias98: __typename alias99: __typename alias100: __typename alias101: __typename alias102: __typename alias103: __typename alias104: __typename alias105: __typename alias106: __typename alias107: __typename alias108: __typename alias109: __typename alias110: __typename alias111: __typename alias112: __typename alias113: __typename alias114: __typename alias115: __typename alias116: __typename alias117: __typename alias118: __typename alias119: __typename alias120: __typename alias121: __typename alias122: __typename alias123: __typename alias124: __typename alias125: __typename alias126: __typename alias127: __typename alias128: __typename alias129: __typename alias130: __typename alias131: __typename alias132: __typename alias133: __typename alias134: __typename alias135: __typename alias136: __typename alias137: __typename alias138: __typename alias139: __typename alias140: __typename alias141: __typename alias142: __typename alias143: __typename alias144: __typename alias145: __typename alias146: __typename alias147: __typename alias148: __typename alias149: __typename alias150: __typename alias151: __typename alias152: __typename alias153: __typename alias154: __typename alias155: __typename alias156: __typename alias157: __typename alias158: __typename alias159: __typename alias160: __typename alias161: __typename alias162: __typename alias163: __typename alias164: __typename alias165: __typename alias166: __typename alias167: __typename alias168: __typename alias169: __typename alias170: __typename alias171: __typename alias172: __typename alias173: __typename alias174: __typename alias175: __typename alias176: __typename alias177: __typename alias178: __typename alias179: __typename alias180: __typename alias181: __typename alias182: __typename alias183: __typename alias184: __typename alias185: __typename alias186: __typename alias187: __typename alias188: __typename alias189: __typename alias190: __typename alias191: __typename alias192: __typename alias193: __typename alias194: __typename alias195: __typename alias196: __typename alias197: __typename alias198: __typename alias199: __typename alias200: __typename alias201: __typename alias202: __typename alias203: __typename alias204: __typename alias205: __typename alias206: __typename alias207: __typename alias208: __typename alias209: __typename alias210: __typename alias211: __typename alias212: __typename alias213: __typename alias214: __typename alias215: __typename alias216: __typename alias217: __typename alias218: __typename alias219: __typename alias220: __typename alias221: __typename alias222: __typename alias223: __typename alias224: __typename alias225: __typename alias226: __typename alias227: __typename alias228: __typename alias229: __typename alias230: __typename alias231: __typename alias232: __typename alias233: __typename alias234: __typename alias235: __typename alias236: __typename alias237: __typename alias238: __typename alias239: __typename alias240: __typename alias241: __typename alias242: __typename alias243: __typename alias244: __typename alias245: __typename alias246: __typename alias247: __typename alias248: __typename alias249: __typename alias250: __typename alias251: __typename alias252: __typename alias253: __typename alias254: __typename alias255: __typename alias256: __typename alias257: __typename alias258: __typename alias259: __typename alias260: __typename alias261: __typename alias262: __typename alias263: __typename alias264: __typename alias265: __typename alias266: __typename alias267: __typename alias268: __typename alias269: __typename alias270: __typename alias271: __typename alias272: __typename alias273: __typename alias274: __typename alias275: __typename alias276: __typename alias277: __typename alias278: __typename alias279: __typename alias280: __typename alias281: __typename alias282: __typename alias283: __typename alias284: __typename alias285: __typename alias286: __typename alias287: __typename alias288: __typename alias289: __typename alias290: __typename alias291: __typename alias292: __typename alias293: __typename alias294: __typename alias295: __typename alias296: __typename alias297: __typename alias298: __typename alias299: __typename alias300: __typename alias301: __typename alias302: __typename alias303: __typename alias304: __typename alias305: __typename alias306: __typename alias307: __typename alias308: __typename alias309: __typename alias310: __typename alias311: __typename alias312: __typename alias313: __typename alias314: __typename alias315: __typename alias316: __typename alias317: __typename alias318: __typename alias319: __typename alias320: __typename alias321: __typename alias322: __typename alias323: __typename alias324: __typename alias325: __typename alias326: __typename alias327: __typename alias328: __typename alias329: __typename alias330: __typename alias331: __typename alias332: __typename alias333: __typename alias334: __typename alias335: __typename alias336: __typename alias337: __typename alias338: __typename alias339: __typename alias340: __typename alias341: __typename alias342: __typename alias343: __typename alias344: __typename alias345: __typename alias346: __typename alias347: __typename alias348: __typename alias349: __typename alias350: __typename alias351: __typename alias352: __typename alias353: __typename alias354: __typename alias355: __typename alias356: __typename alias357: __typename alias358: __typename alias359: __typename alias360: __typename alias361: __typename alias362: __typename alias363: __typename alias364: __typename alias365: __typename alias366: __typename alias367: __typename alias368: __typename alias369: __typename alias370: __typename alias371: __typename alias372: __typename alias373: __typename alias374: __typename alias375: __typename alias376: __typename alias377: __typename alias378: __typename alias379: __typename alias380: __typename alias381: __typename alias382: __typename alias383: __typename alias384: __typename alias385: __typename alias386: __typename alias387: __typename alias388: __typename alias389: __typename alias390: __typename alias391: __typename alias392: __typename alias393: __typename alias394: __typename alias395: __typename alias396: __typename alias397: __typename alias398: __typename alias399: __typename alias400: __typename alias401: __typename alias402: __typename alias403: __typename alias404: __typename alias405: __typename alias406: __typename alias407: __typename alias408: __typename alias409: __typename alias410: __typename alias411: __typename alias412: __typename alias413: __typename alias414: __typename alias415: __typename alias416: __typename alias417: __typename alias418: __typename alias419: __typename alias420: __typename alias421: __typename alias422: __typename alias423: __typename alias424: __typename alias425: __typename alias426: __typename alias427: __typename alias428: __typename alias429: __typename alias430: __typename alias431: __typename alias432: __typename alias433: __typename alias434: __typename alias435: __typename alias436: __typename alias437: __typename alias438: __typename alias439: __typename alias440: __typename alias441: __typename alias442: __typename alias443: __typename alias444: __typename alias445: __typename alias446: __typename alias447: __typename alias448: __typename alias449: __typename alias450: __typename alias451: __typename alias452: __typename alias453: __typename alias454: __typename alias455: __typename alias456: __typename alias457: __typename alias458: __typename alias459: __typename alias460: __typename alias461: __typename alias462: __typename alias463: __typename alias464: __typename alias465: __typename alias466: __typename alias467: __typename alias468: __typename alias469: __typename alias470: __typename alias471: __typename alias472: __typename alias473: __typename alias474: __typename alias475: __typename alias476: __typename alias477: __typename alias478: __typename alias479: __typename alias480: __typename alias481: __typename alias482: __typename alias483: __typename alias484: __typename alias485: __typename alias486: __typename alias487: __typename alias488: __typename alias489: __typename alias490: __typename alias491: __typename alias492: __typename alias493: __typename alias494: __typename alias495: __typename alias496: __typename alias497: __typename alias498: __typename alias499: __typename alias500: __typename alias501: __typename alias502: __typename alias503: __typename alias504: __typename alias505: __typename alias506: __typename alias507: __typename alias508: __typename alias509: __typename alias510: __typename alias511: __typename alias512: __typename alias513: __typename alias514: __typename alias515: __typename alias516: __typename alias517: __typename alias518: __typename alias519: __typename alias520: __typename alias521: __typename alias522: __typename alias523: __typename alias524: __typename alias525: __typename alias526: __typename alias527: __typename alias528: __typename alias529: __typename alias530: __typename alias531: __typename alias532: __typename alias533: __typename alias534: __typename alias535: __typename alias536: __typename alias537: __typename alias538: __typename alias539: __typename alias540: __typename alias541: __typename alias542: __typename alias543: __typename alias544: __typename alias545: __typename alias546: __typename alias547: __typename alias548: __typename alias549: __typename alias550: __typename alias551: __typename alias552: __typename alias553: __typename alias554: __typename alias555: __typename alias556: __typename alias557: __typename alias558: __typename alias559: __typename alias560: __typename alias561: __typename alias562: __typename alias563: __typename alias564: __typename alias565: __typename alias566: __typename alias567: __typename alias568: __typename alias569: __typename alias570: __typename alias571: __typename alias572: __typename alias573: __typename alias574: __typename alias575: __typename alias576: __typename alias577: __typename alias578: __typename alias579: __typename alias580: __typename alias581: __typename alias582: __typename alias583: __typename alias584: __typename alias585: __typename alias586: __typename alias587: __typename alias588: __typename alias589: __typename alias590: __typename alias591: __typename alias592: __typename alias593: __typename alias594: __typename alias595: __typename alias596: __typename alias597: __typename alias598: __typename alias599: __typename alias600: __typename alias601: __typename alias602: __typename alias603: __typename alias604: __typename alias605: __typename alias606: __typename alias607: __typename alias608: __typename alias609: __typename alias610: __typename alias611: __typename alias612: __typename alias613: __typename alias614: __typename alias615: __typename alias616: __typename alias617: __typename alias618: __typename alias619: __typename alias620: __typename alias621: __typename alias622: __typename alias623: __typename alias624: __typename alias625: __typename alias626: __typename alias627: __typename alias628: __typename alias629: __typename alias630: __typename alias631: __typename alias632: __typename alias633: __typename alias634: __typename alias635: __typename alias636: __typename alias637: __typename alias638: __typename alias639: __typename alias640: __typename alias641: __typename alias642: __typename alias643: __typename alias644: __typename alias645: __typename alias646: __typename alias647: __typename alias648: __typename alias649: __typename alias650: __typename alias651: __typename alias652: __typename alias653: __typename alias654: __typename alias655: __typename alias656: __typename alias657: __typename alias658: __typename alias659: __typename alias660: __typename alias661: __typename alias662: __typename alias663: __typename alias664: __typename alias665: __typename alias666: __typename alias667: __typename alias668: __typename alias669: __typename alias670: __typename alias671: __typename alias672: __typename alias673: __typename alias674: __typename alias675: __typename alias676: __typename alias677: __typename alias678: __typename alias679: __typename alias680: __typename alias681: __typename alias682: __typename alias683: __typename alias684: __typename alias685: __typename alias686: __typename alias687: __typename alias688: __typename alias689: __typename alias690: __typename alias691: __typename alias692: __typename alias693: __typename alias694: __typename alias695: __typename alias696: __typename alias697: __typename alias698: __typename alias699: __typename alias700: __typename alias701: __typename alias702: __typename alias703: __typename alias704: __typename alias705: __typename alias706: __typename alias707: __typename alias708: __typename alias709: __typename alias710: __typename alias711: __typename alias712: __typename alias713: __typename alias714: __typename alias715: __typename alias716: __typename alias717: __typename alias718: __typename alias719: __typename alias720: __typename alias721: __typename alias722: __typename alias723: __typename alias724: __typename alias725: __typename alias726: __typename alias727: __typename alias728: __typename alias729: __typename alias730: __typename alias731: __typename alias732: __typename alias733: __typename alias734: __typename alias735: __typename alias736: __typename alias737: __typename alias738: __typename alias739: __typename alias740: __typename alias741: __typename alias742: __typename alias743: __typename alias744: __typename alias745: __typename alias746: __typename alias747: __typename alias748: __typename alias749: __typename alias750: __typename alias751: __typename alias752: __typename alias753: __typename alias754: __typename alias755: __typename alias756: __typename alias757: __typename alias758: __typename alias759: __typename alias760: __typename alias761: __typename alias762: __typename alias763: __typename alias764: __typename alias765: __typename alias766: __typename alias767: __typename alias768: __typename alias769: __typename alias770: __typename alias771: __typename alias772: __typename alias773: __typename alias774: __typename alias775: __typename alias776: __typename alias777: __typename alias778: __typename alias779: __typename alias780: __typename alias781: __typename alias782: __typename alias783: __typename alias784: __typename alias785: __typename alias786: __typename alias787: __typename alias788: __typename alias789: __typename alias790: __typename alias791: __typename alias792: __typename alias793: __typename alias794: __typename alias795: __typename alias796: __typename alias797: __typename alias798: __typename alias799: __typename alias800: __typename alias801: __typename alias802: __typename alias803: __typename alias804: __typename alias805: __typename alias806: __typename alias807: __typename alias808: __typename alias809: __typename alias810: __typename alias811: __typename alias812: __typename alias813: __typename alias814: __typename alias815: __typename alias816: __typename alias817: __typename alias818: __typename alias819: __typename alias820: __typename alias821: __typename alias822: __typename alias823: __typename alias824: __typename alias825: __typename alias826: __typename alias827: __typename alias828: __typename alias829: __typename alias830: __typename alias831: __typename alias832: __typename alias833: __typename alias834: __typename alias835: __typename alias836: __typename alias837: __typename alias838: __typename alias839: __typename alias840: __typename alias841: __typename alias842: __typename alias843: __typename alias844: __typename alias845: __typename alias846: __typename alias847: __typename alias848: __typename alias849: __typename alias850: __typename alias851: __typename alias852: __typename alias853: __typename alias854: __typename alias855: __typename alias856: __typename alias857: __typename alias858: __typename alias859: __typename alias860: __typename alias861: __typename alias862: __typename alias863: __typename alias864: __typename alias865: __typename alias866: __typename alias867: __typename alias868: __typename alias869: __typename alias870: __typename alias871: __typename alias872: __typename alias873: __typename alias874: __typename alias875: __typename alias876: __typename alias877: __typename alias878: __typename alias879: __typename alias880: __typename alias881: __typename alias882: __typename alias883: __typename alias884: __typename alias885: __typename alias886: __typename alias887: __typename alias888: __typename alias889: __typename alias890: __typename alias891: __typename alias892: __typename alias893: __typename alias894: __typename alias895: __typename alias896: __typename alias897: __typename alias898: __typename alias899: __typename alias900: __typename alias901: __typename alias902: __typename alias903: __typename alias904: __typename alias905: __typename alias906: __typename alias907: __typename alias908: __typename alias909: __typename alias910: __typename alias911: __typename alias912: __typename alias913: __typename alias914: __typename alias915: __typename alias916: __typename alias917: __typename alias918: __typename alias919: __typename alias920: __typename alias921: __typename alias922: __typename alias923: __typename alias924: __typename alias925: __typename alias926: __typename alias927: __typename alias928: __typename alias929: __typename alias930: __typename alias931: __typename alias932: __typename alias933: __typename alias934: __typename alias935: __typename alias936: __typename alias937: __typename alias938: __typename alias939: __typename alias940: __typename alias941: __typename alias942: __typename alias943: __typename alias944: __typename alias945: __typename alias946: __typename alias947: __typename alias948: __typename alias949: __typename alias950: __typename alias951: __typename alias952: __typename alias953: __typename alias954: __typename alias955: __typename alias956: __typename alias957: __typename alias958: __typename alias959: __typename alias960: __typename alias961: __typename alias962: __typename alias963: __typename alias964: __typename alias965: __typename alias966: __typename alias967: __typename alias968: __typename alias969: __typename alias970: __typename alias971: __typename alias972: __typename alias973: __typename alias974: __typename alias975: __typename alias976: __typename alias977: __typename alias978: __typename alias979: __typename alias980: __typename alias981: __typename alias982: __typename alias983: __typename alias984: __typename alias985: __typename alias986: __typename alias987: __typename alias988: __typename alias989: __typename alias990: __typename alias991: __typename alias992: __typename alias993: __typename alias994: __typename alias995: __typename alias996: __typename alias997: __typename alias998: __typename alias999: __typename alias1000: __typename alias1001: __typename alias1002: __typename alias1003: __typename alias1004: __typename alias1005: __typename alias1006: __typename alias1007: __typename alias1008: __typename alias1009: __typename alias1010: __typename alias1011: __typename alias1012: __typename alias1013: __typename alias1014: __typename alias1015: __typename alias1016: __typename alias1017: __typename alias1018: __typename alias1019: __typename alias1020: __typename alias1021: __typename alias1022: __typename alias1023: __typename alias1024: __typename alias1025: __typename alias1026: __typename alias1027: __typename alias1028: __typename alias1029: __typename alias1030: __typename alias1031: __typename alias1032: __typename alias1033: __typename alias1034: __typename alias1035: __typename alias1036: __typename alias1037: __typename alias1038: __typename alias1039: __typename alias1040: __typename alias1041: __typename alias1042: __typename alias1043: __typename alias1044: __typename alias1045: __typename alias1046: __typename alias1047: __typename alias1048: __typename alias1049: __typename alias1050: __typename alias1051: __typename alias1052: __typename alias1053: __typename alias1054: __typename alias1055: __typename alias1056: __typename alias1057: __typename alias1058: __typename alias1059: __typename alias1060: __typename alias1061: __typename alias1062: __typename alias1063: __typename alias1064: __typename alias1065: __typename alias1066: __typename alias1067: __typename alias1068: __typename alias1069: __typename alias1070: __typename alias1071: __typename alias1072: __typename alias1073: __typename alias1074: __typename alias1075: __typename alias1076: __typename alias1077: __typename alias1078: __typename alias1079: __typename alias1080: __typename alias1081: __typename alias1082: __typename alias1083: __typename alias1084: __typename alias1085: __typename alias1086: __typename alias1087: __typename alias1088: __typename alias1089: __typename alias1090: __typename alias1091: __typename alias1092: __typename alias1093: __typename alias1094: __typename alias1095: __typename alias1096: __typename alias1097: __typename alias1098: __typename alias1099: __typename alias1100: __typename alias1101: __typename alias1102: __typename alias1103: __typename alias1104: __typename alias1105: __typename alias1106: __typename alias1107: __typename alias1108: __typename alias1109: __typename alias1110: __typename alias1111: __typename alias1112: __typename alias1113: __typename alias1114: __typename alias1115: __typename alias1116: __typename alias1117: __typename alias1118: __typename alias1119: __typename alias1120: __typename alias1121: __typename alias1122: __typename alias1123: __typename alias1124: __typename alias1125: __typename alias1126: __typename alias1127: __typename alias1128: __typename alias1129: __typename alias1130: __typename alias1131: __typename alias1132: __typename alias1133: __typename alias1134: __typename alias1135: __typename alias1136: __typename alias1137: __typename alias1138: __typename alias1139: __typename alias1140: __typename alias1141: __typename alias1142: __typename alias1143: __typename alias1144: __typename alias1145: __typename alias1146: __typename alias1147: __typename alias1148: __typename alias1149: __typename alias1150: __typename alias1151: __typename alias1152: __typename alias1153: __typename alias1154: __typename alias1155: __typename alias1156: __typename alias1157: __typename alias1158: __typename alias1159: __typename alias1160: __typename alias1161: __typename alias1162: __typename alias1163: __typename alias1164: __typename alias1165: __typename alias1166: __typename alias1167: __typename alias1168: __typename alias1169: __typename alias1170: __typename alias1171: __typename alias1172: __typename alias1173: __typename alias1174: __typename alias1175: __typename alias1176: __typename alias1177: __typename alias1178: __typename alias1179: __typename alias1180: __typename alias1181: __typename alias1182: __typename alias1183: __typename alias1184: __typename alias1185: __typename alias1186: __typename alias1187: __typename alias1188: __typename alias1189: __typename alias1190: __typename alias1191: __typename alias1192: __typename alias1193: __typename alias1194: __typename alias1195: __typename alias1196: __typename alias1197: __typename alias1198: __typename alias1199: __typename alias1200: __typename alias1201: __typename alias1202: __typename alias1203: __typename alias1204: __typename alias1205: __typename alias1206: __typename alias1207: __typename alias1208: __typename alias1209: __typename alias1210: __typename alias1211: __typename alias1212: __typename alias1213: __typename alias1214: __typename alias1215: __typename alias1216: __typename alias1217: __typename alias1218: __typename alias1219: __typename alias1220: __typename alias1221: __typename alias1222: __typename alias1223: __typename alias1224: __typename alias1225: __typename alias1226: __typename alias1227: __typename alias1228: __typename alias1229: __typename alias1230: __typename alias1231: __typename alias1232: __typename alias1233: __typename alias1234: __typename alias1235: __typename alias1236: __typename alias1237: __typename alias1238: __typename alias1239: __typename alias1240: __typename alias1241: __typename alias1242: __typename alias1243: __typename alias1244: __typename alias1245: __typename alias1246: __typename alias1247: __typename alias1248: __typename alias1249: __typename alias1250: __typename alias1251: __typename alias1252: __typename alias1253: __typename alias1254: __typename alias1255: __typename alias1256: __typename alias1257: __typename alias1258: __typename alias1259: __typename alias1260: __typename alias1261: __typename alias1262: __typename alias1263: __typename alias1264: __typename alias1265: __typename alias1266: __typename alias1267: __typename alias1268: __typename alias1269: __typename alias1270: __typename alias1271: __typename alias1272: __typename alias1273: __typename alias1274: __typename alias1275: __typename alias1276: __typename alias1277: __typename alias1278: __typename alias1279: __typename alias1280: __typename alias1281: __typename alias1282: __typename alias1283: __typename alias1284: __typename alias1285: __typename alias1286: __typename alias1287: __typename alias1288: __typename alias1289: __typename alias1290: __typename alias1291: __typename alias1292: __typename alias1293: __typename alias1294: __typename alias1295: __typename alias1296: __typename alias1297: __typename alias1298: __typename alias1299: __typename alias1300: __typename alias1301: __typename alias1302: __typename alias1303: __typename alias1304: __typename alias1305: __typename alias1306: __typename alias1307: __typename alias1308: __typename alias1309: __typename alias1310: __typename alias1311: __typename alias1312: __typename alias1313: __typename alias1314: __typename alias1315: __typename alias1316: __typename alias1317: __typename alias1318: __typename alias1319: __typename alias1320: __typename alias1321: __typename alias1322: __typename alias1323: __typename alias1324: __typename alias1325: __typename alias1326: __typename alias1327: __typename alias1328: __typename alias1329: __typename alias1330: __typename alias1331: __typename alias1332: __typename alias1333: __typename alias1334: __typename alias1335: __typename alias1336: __typename alias1337: __typename alias1338: __typename alias1339: __typename alias1340: __typename alias1341: __typename alias1342: __typename alias1343: __typename alias1344: __typename alias1345: __typename alias1346: __typename alias1347: __typename alias1348: __typename alias1349: __typename alias1350: __typename alias1351: __typename alias1352: __typename alias1353: __typename alias1354: __typename alias1355: __typename alias1356: __typename alias1357: __typename alias1358: __typename alias1359: __typename alias1360: __typename alias1361: __typename alias1362: __typename alias1363: __typename alias1364: __typename alias1365: __typename alias1366: __typename alias1367: __typename alias1368: __typename alias1369: __typename alias1370: __typename alias1371: __typename alias1372: __typename alias1373: __typename alias1374: __typename alias1375: __typename alias1376: __typename alias1377: __typename alias1378: __typename alias1379: __typename alias1380: __typename alias1381: __typename alias1382: __typename alias1383: __typename alias1384: __typename alias1385: __typename alias1386: __typename alias1387: __typename alias1388: __typename alias1389: __typename alias1390: __typename alias1391: __typename alias1392: __typename alias1393: __typename alias1394: __typename alias1395: __typename alias1396: __typename alias1397: __typename alias1398: __typename alias1399: __typename alias1400: __typename alias1401: __typename alias1402: __typename alias1403: __typename alias1404: __typename alias1405: __typename alias1406: __typename alias1407: __typename alias1408: __typename alias1409: __typename alias1410: __typename alias1411: __typename alias1412: __typename alias1413: __typename alias1414: __typename alias1415: __typename alias1416: __typename alias1417: __typename alias1418: __typename alias1419: __typename alias1420: __typename alias1421: __typename alias1422: __typename alias1423: __typename alias1424: __typename alias1425: __typename alias1426: __typename alias1427: __typename alias1428: __typename alias1429: __typename alias1430: __typename alias1431: __typename alias1432: __typename alias1433: __typename alias1434: __typename alias1435: __typename alias1436: __typename alias1437: __typename alias1438: __typename alias1439: __typename alias1440: __typename alias1441: __typename alias1442: __typename alias1443: __typename alias1444: __typename alias1445: __typename alias1446: __typename alias1447: __typename alias1448: __typename alias1449: __typename alias1450: __typename alias1451: __typename alias1452: __typename alias1453: __typename alias1454: __typename alias1455: __typename alias1456: __typename alias1457: __typename alias1458: __typename alias1459: __typename alias1460: __typename alias1461: __typename alias1462: __typename alias1463: __typename alias1464: __typename alias1465: __typename alias1466: __typename alias1467: __typename alias1468: __typename alias1469: __typename alias1470: __typename alias1471: __typename alias1472: __typename alias1473: __typename alias1474: __typename alias1475: __typename alias1476: __typename alias1477: __typename alias1478: __typename alias1479: __typename alias1480: __typename alias1481: __typename alias1482: __typename alias1483: __typename alias1484: __typename alias1485: __typename alias1486: __typename alias1487: __typename alias1488: __typename alias1489: __typename alias1490: __typename alias1491: __typename alias1492: __typename alias1493: __typename alias1494: __typename alias1495: __typename alias1496: __typename alias1497: __typename alias1498: __typename alias1499: __typename alias1500: __typename alias1501: __typename alias1502: __typename alias1503: __typename alias1504: __typename alias1505: __typename alias1506: __typename alias1507: __typename alias1508: __typename alias1509: __typename alias1510: __typename alias1511: __typename alias1512: __typename alias1513: __typename alias1514: __typename alias1515: __typename alias1516: __typename alias1517: __typename alias1518: __typename alias1519: __typename alias1520: __typename alias1521: __typename alias1522: __typename alias1523: __typename alias1524: __typename alias1525: __typename alias1526: __typename alias1527: __typename alias1528: __typename alias1529: __typename alias1530: __typename alias1531: __typename alias1532: __typename alias1533: __typename alias1534: __typename alias1535: __typename alias1536: __typename alias1537: __typename alias1538: __typename alias1539: __typename alias1540: __typename alias1541: __typename alias1542: __typename alias1543: __typename alias1544: __typename alias1545: __typename alias1546: __typename alias1547: __typename alias1548: __typename alias1549: __typename alias1550: __typename alias1551: __typename alias1552: __typename alias1553: __typename alias1554: __typename alias1555: __typename alias1556: __typename alias1557: __typename alias1558: __typename alias1559: __typename alias1560: __typename alias1561: __typename alias1562: __typename alias1563: __typename alias1564: __typename alias1565: __typename alias1566: __typename alias1567: __typename alias1568: __typename alias1569: __typename alias1570: __typename alias1571: __typename alias1572: __typename alias1573: __typename alias1574: __typename alias1575: __typename alias1576: __typename alias1577: __typename alias1578: __typename alias1579: __typename alias1580: __typename alias1581: __typename alias1582: __typename alias1583: __typename alias1584: __typename alias1585: __typename alias1586: __typename alias1587: __typename alias1588: __typename alias1589: __typename alias1590: __typename alias1591: __typename alias1592: __typename alias1593: __typename alias1594: __typename alias1595: __typename alias1596: __typename alias1597: __typename alias1598: __typename alias1599: __typename alias1600: __typename alias1601: __typename alias1602: __typename alias1603: __typename alias1604: __typename alias1605: __typename alias1606: __typename alias1607: __typename alias1608: __typename alias1609: __typename alias1610: __typename alias1611: __typename alias1612: __typename alias1613: __typename alias1614: __typename alias1615: __typename alias1616: __typename alias1617: __typename alias1618: __typename alias1619: __typename alias1620: __typename alias1621: __typename alias1622: __typename alias1623: __typename alias1624: __typename alias1625: __typename alias1626: __typename alias1627: __typename alias1628: __typename alias1629: __typename alias1630: __typename alias1631: __typename alias1632: __typename alias1633: __typename alias1634: __typename alias1635: __typename alias1636: __typename alias1637: __typename alias1638: __typename alias1639: __typename alias1640: __typename alias1641: __typename alias1642: __typename alias1643: __typename alias1644: __typename alias1645: __typename alias1646: __typename alias1647: __typename alias1648: __typename alias1649: __typename alias1650: __typename alias1651: __typename alias1652: __typename alias1653: __typename alias1654: __typename alias1655: __typename alias1656: __typename alias1657: __typename alias1658: __typename alias1659: __typename alias1660: __typename alias1661: __typename alias1662: __typename alias1663: __typename alias1664: __typename alias1665: __typename alias1666: __typename alias1667: __typename alias1668: __typename alias1669: __typename alias1670: __typename alias1671: __typename alias1672: __typename alias1673: __typename alias1674: __typename alias1675: __typename alias1676: __typename alias1677: __typename alias1678: __typename alias1679: __typename alias1680: __typename alias1681: __typename alias1682: __typename alias1683: __typename alias1684: __typename alias1685: __typename alias1686: __typename alias1687: __typename alias1688: __typename alias1689: __typename alias1690: __typename alias1691: __typename alias1692: __typename alias1693: __typename alias1694: __typename alias1695: __typename alias1696: __typename alias1697: __typename alias1698: __typename alias1699: __typename alias1700: __typename alias1701: __typename alias1702: __typename alias1703: __typename alias1704: __typename alias1705: __typename alias1706: __typename alias1707: __typename alias1708: __typename alias1709: __typename alias1710: __typename alias1711: __typename alias1712: __typename alias1713: __typename alias1714: __typename alias1715: __typename alias1716: __typename alias1717: __typename alias1718: __typename alias1719: __typename alias1720: __typename alias1721: __typename alias1722: __typename alias1723: __typename alias1724: __typename alias1725: __typename alias1726: __typename alias1727: __typename alias1728: __typename alias1729: __typename alias1730: __typename alias1731: __typename alias1732: __typename alias1733: __typename alias1734: __typename alias1735: __typename alias1736: __typename alias1737: __typename alias1738: __typename alias1739: __typename alias1740: __typename alias1741: __typename alias1742: __typename alias1743: __typename alias1744: __typename alias1745: __typename alias1746: __typename alias1747: __typename alias1748: __typename alias1749: __typename alias1750: __typename alias1751: __typename alias1752: __typename alias1753: __typename alias1754: __typename alias1755: __typename alias1756: __typename alias1757: __typename alias1758: __typename alias1759: __typename alias1760: __typename alias1761: __typename alias1762: __typename alias1763: __typename alias1764: __typename alias1765: __typename alias1766: __typename alias1767: __typename alias1768: __typename alias1769: __typename alias1770: __typename alias1771: __typename alias1772: __typename alias1773: __typename alias1774: __typename alias1775: __typename alias1776: __typename alias1777: __typename alias1778: __typename alias1779: __typename alias1780: __typename alias1781: __typename alias1782: __typename alias1783: __typename alias1784: __typename alias1785: __typename alias1786: __typename alias1787: __typename alias1788: __typename alias1789: __typename alias1790: __typename alias1791: __typename alias1792: __typename alias1793: __typename alias1794: __typename alias1795: __typename alias1796: __typename alias1797: __typename alias1798: __typename alias1799: __typename alias1800: __typename alias1801: __typename alias1802: __typename alias1803: __typename alias1804: __typename alias1805: __typename alias1806: __typename alias1807: __typename alias1808: __typename alias1809: __typename alias1810: __typename alias1811: __typename alias1812: __typename alias1813: __typename alias1814: __typename alias1815: __typename alias1816: __typename alias1817: __typename alias1818: __typename alias1819: __typename alias1820: __typename alias1821: __typename alias1822: __typename alias1823: __typename alias1824: __typename alias1825: __typename alias1826: __typename alias1827: __typename alias1828: __typename alias1829: __typename alias1830: __typename alias1831: __typename alias1832: __typename alias1833: __typename alias1834: __typename alias1835: __typename alias1836: __typename alias1837: __typename alias1838: __typename alias1839: __typename alias1840: __typename alias1841: __typename alias1842: __typename alias1843: __typename alias1844: __typename alias1845: __typename alias1846: __typename alias1847: __typename alias1848: __typename alias1849: __typename alias1850: __typename alias1851: __typename alias1852: __typename alias1853: __typename alias1854: __typename alias1855: __typename alias1856: __typename alias1857: __typename alias1858: __typename alias1859: __typename alias1860: __typename alias1861: __typename alias1862: __typename alias1863: __typename alias1864: __typename alias1865: __typename alias1866: __typename alias1867: __typename alias1868: __typename alias1869: __typename alias1870: __typename alias1871: __typename alias1872: __typename alias1873: __typename alias1874: __typename alias1875: __typename alias1876: __typename alias1877: __typename alias1878: __typename alias1879: __typename alias1880: __typename alias1881: __typename alias1882: __typename alias1883: __typename alias1884: __typename alias1885: __typename alias1886: __typename alias1887: __typename alias1888: __typename alias1889: __typename alias1890: __typename alias1891: __typename alias1892: __typename alias1893: __typename alias1894: __typename alias1895: __typename alias1896: __typename alias1897: __typename alias1898: __typename alias1899: __typename alias1900: __typename alias1901: __typename alias1902: __typename alias1903: __typename alias1904: __typename alias1905: __typename alias1906: __typename alias1907: __typename alias1908: __typename alias1909: __typename alias1910: __typename alias1911: __typename alias1912: __typename alias1913: __typename alias1914: __typename alias1915: __typename alias1916: __typename alias1917: __typename alias1918: __typename alias1919: __typename alias1920: __typename alias1921: __typename alias1922: __typename alias1923: __typename alias1924: __typename alias1925: __typename alias1926: __typename alias1927: __typename alias1928: __typename alias1929: __typename alias1930: __typename alias1931: __typename alias1932: __typename alias1933: __typename alias1934: __typename alias1935: __typename alias1936: __typename alias1937: __typename alias1938: __typename alias1939: __typename alias1940: __typename alias1941: __typename alias1942: __typename alias1943: __typename alias1944: __typename alias1945: __typename alias1946: __typename alias1947: __typename alias1948: __typename alias1949: __typename alias1950: __typename alias1951: __typename alias1952: __typename alias1953: __typename alias1954: __typename alias1955: __typename alias1956: __typename alias1957: __typename alias1958: __typename alias1959: __typename alias1960: __typename alias1961: __typename alias1962: __typename alias1963: __typename alias1964: __typename alias1965: __typename alias1966: __typename alias1967: __typename alias1968: __typename alias1969: __typename alias1970: __typename alias1971: __typename alias1972: __typename alias1973: __typename alias1974: __typename alias1975: __typename alias1976: __typename alias1977: __typename alias1978: __typename alias1979: __typename alias1980: __typename alias1981: __typename alias1982: __typename alias1983: __typename alias1984: __typename alias1985: __typename alias1986: __typename alias1987: __typename alias1988: __typename alias1989: __typename alias1990: __typename alias1991: __typename alias1992: __typename alias1993: __typename alias1994: __typename alias1995: __typename alias1996: __typename alias1997: __typename alias1998: __typename alias1999: __typename alias2000: __typename alias2001: __typename alias2002: __typename alias2003: __typename alias2004: __typename alias2005: __typename alias2006: __typename alias2007: __typename alias2008: __typename alias2009: __typename alias2010: __typename alias2011: __typename alias2012: __typename alias2013: __typename alias2014: __typename alias2015: __typename alias2016: __typename alias2017: __typename alias2018: __typename alias2019: __typename alias2020: __typename alias2021: __typename alias2022: __typename alias2023: __typename alias2024: __typename alias2025: __typename alias2026: __typename alias2027: __typename alias2028: __typename alias2029: __typename alias2030: __typename alias2031: __typename alias2032: __typename alias2033: __typename alias2034: __typename alias2035: __typename alias2036: __typename alias2037: __typename alias2038: __typename alias2039: __typename alias2040: __typename alias2041: __typename alias2042: __typename alias2043: __typename alias2044: __typename alias2045: __typename alias2046: __typename alias2047: __typename }", + "operation": "queryalias", + "rootNode": { + "type": "Sequence", + "nodes": [ + { + "type": "Introspect", + "document": "{ alias0: __typename alias1: __typename alias2: __typename alias3: __typename alias4: __typename alias5: __typename alias6: __typename alias7: __typename alias8: __typename alias9: __typename alias10: __typename alias11: __typename alias12: __typename alias13: __typename alias14: __typename alias15: __typename alias16: __typename alias17: __typename alias18: __typename alias19: __typename alias20: __typename alias21: __typename alias22: __typename alias23: __typename alias24: __typename alias25: __typename alias26: __typename alias27: __typename alias28: __typename alias29: __typename alias30: __typename alias31: __typename alias32: __typename alias33: __typename alias34: __typename alias35: __typename alias36: __typename alias37: __typename alias38: __typename alias39: __typename alias40: __typename alias41: __typename alias42: __typename alias43: __typename alias44: __typename alias45: __typename alias46: __typename alias47: __typename alias48: __typename alias49: __typename alias50: __typename alias51: __typename alias52: __typename alias53: __typename alias54: __typename alias55: __typename alias56: __typename alias57: __typename alias58: __typename alias59: __typename alias60: __typename alias61: __typename alias62: __typename alias63: __typename alias64: __typename alias65: __typename alias66: __typename alias67: __typename alias68: __typename alias69: __typename alias70: __typename alias71: __typename alias72: __typename alias73: __typename alias74: __typename alias75: __typename alias76: __typename alias77: __typename alias78: __typename alias79: __typename alias80: __typename alias81: __typename alias82: __typename alias83: __typename alias84: __typename alias85: __typename alias86: __typename alias87: __typename alias88: __typename alias89: __typename alias90: __typename alias91: __typename alias92: __typename alias93: __typename alias94: __typename alias95: __typename alias96: __typename alias97: __typename alias98: __typename alias99: __typename alias100: __typename alias101: __typename alias102: __typename alias103: __typename alias104: __typename alias105: __typename alias106: __typename alias107: __typename alias108: __typename alias109: __typename alias110: __typename alias111: __typename alias112: __typename alias113: __typename alias114: __typename alias115: __typename alias116: __typename alias117: __typename alias118: __typename alias119: __typename alias120: __typename alias121: __typename alias122: __typename alias123: __typename alias124: __typename alias125: __typename alias126: __typename alias127: __typename alias128: __typename alias129: __typename alias130: __typename alias131: __typename alias132: __typename alias133: __typename alias134: __typename alias135: __typename alias136: __typename alias137: __typename alias138: __typename alias139: __typename alias140: __typename alias141: __typename alias142: __typename alias143: __typename alias144: __typename alias145: __typename alias146: __typename alias147: __typename alias148: __typename alias149: __typename alias150: __typename alias151: __typename alias152: __typename alias153: __typename alias154: __typename alias155: __typename alias156: __typename alias157: __typename alias158: __typename alias159: __typename alias160: __typename alias161: __typename alias162: __typename alias163: __typename alias164: __typename alias165: __typename alias166: __typename alias167: __typename alias168: __typename alias169: __typename alias170: __typename alias171: __typename alias172: __typename alias173: __typename alias174: __typename alias175: __typename alias176: __typename alias177: __typename alias178: __typename alias179: __typename alias180: __typename alias181: __typename alias182: __typename alias183: __typename alias184: __typename alias185: __typename alias186: __typename alias187: __typename alias188: __typename alias189: __typename alias190: __typename alias191: __typename alias192: __typename alias193: __typename alias194: __typename alias195: __typename alias196: __typename alias197: __typename alias198: __typename alias199: __typename alias200: __typename alias201: __typename alias202: __typename alias203: __typename alias204: __typename alias205: __typename alias206: __typename alias207: __typename alias208: __typename alias209: __typename alias210: __typename alias211: __typename alias212: __typename alias213: __typename alias214: __typename alias215: __typename alias216: __typename alias217: __typename alias218: __typename alias219: __typename alias220: __typename alias221: __typename alias222: __typename alias223: __typename alias224: __typename alias225: __typename alias226: __typename alias227: __typename alias228: __typename alias229: __typename alias230: __typename alias231: __typename alias232: __typename alias233: __typename alias234: __typename alias235: __typename alias236: __typename alias237: __typename alias238: __typename alias239: __typename alias240: __typename alias241: __typename alias242: __typename alias243: __typename alias244: __typename alias245: __typename alias246: __typename alias247: __typename alias248: __typename alias249: __typename alias250: __typename alias251: __typename alias252: __typename alias253: __typename alias254: __typename alias255: __typename alias256: __typename alias257: __typename alias258: __typename alias259: __typename alias260: __typename alias261: __typename alias262: __typename alias263: __typename alias264: __typename alias265: __typename alias266: __typename alias267: __typename alias268: __typename alias269: __typename alias270: __typename alias271: __typename alias272: __typename alias273: __typename alias274: __typename alias275: __typename alias276: __typename alias277: __typename alias278: __typename alias279: __typename alias280: __typename alias281: __typename alias282: __typename alias283: __typename alias284: __typename alias285: __typename alias286: __typename alias287: __typename alias288: __typename alias289: __typename alias290: __typename alias291: __typename alias292: __typename alias293: __typename alias294: __typename alias295: __typename alias296: __typename alias297: __typename alias298: __typename alias299: __typename alias300: __typename alias301: __typename alias302: __typename alias303: __typename alias304: __typename alias305: __typename alias306: __typename alias307: __typename alias308: __typename alias309: __typename alias310: __typename alias311: __typename alias312: __typename alias313: __typename alias314: __typename alias315: __typename alias316: __typename alias317: __typename alias318: __typename alias319: __typename alias320: __typename alias321: __typename alias322: __typename alias323: __typename alias324: __typename alias325: __typename alias326: __typename alias327: __typename alias328: __typename alias329: __typename alias330: __typename alias331: __typename alias332: __typename alias333: __typename alias334: __typename alias335: __typename alias336: __typename alias337: __typename alias338: __typename alias339: __typename alias340: __typename alias341: __typename alias342: __typename alias343: __typename alias344: __typename alias345: __typename alias346: __typename alias347: __typename alias348: __typename alias349: __typename alias350: __typename alias351: __typename alias352: __typename alias353: __typename alias354: __typename alias355: __typename alias356: __typename alias357: __typename alias358: __typename alias359: __typename alias360: __typename alias361: __typename alias362: __typename alias363: __typename alias364: __typename alias365: __typename alias366: __typename alias367: __typename alias368: __typename alias369: __typename alias370: __typename alias371: __typename alias372: __typename alias373: __typename alias374: __typename alias375: __typename alias376: __typename alias377: __typename alias378: __typename alias379: __typename alias380: __typename alias381: __typename alias382: __typename alias383: __typename alias384: __typename alias385: __typename alias386: __typename alias387: __typename alias388: __typename alias389: __typename alias390: __typename alias391: __typename alias392: __typename alias393: __typename alias394: __typename alias395: __typename alias396: __typename alias397: __typename alias398: __typename alias399: __typename alias400: __typename alias401: __typename alias402: __typename alias403: __typename alias404: __typename alias405: __typename alias406: __typename alias407: __typename alias408: __typename alias409: __typename alias410: __typename alias411: __typename alias412: __typename alias413: __typename alias414: __typename alias415: __typename alias416: __typename alias417: __typename alias418: __typename alias419: __typename alias420: __typename alias421: __typename alias422: __typename alias423: __typename alias424: __typename alias425: __typename alias426: __typename alias427: __typename alias428: __typename alias429: __typename alias430: __typename alias431: __typename alias432: __typename alias433: __typename alias434: __typename alias435: __typename alias436: __typename alias437: __typename alias438: __typename alias439: __typename alias440: __typename alias441: __typename alias442: __typename alias443: __typename alias444: __typename alias445: __typename alias446: __typename alias447: __typename alias448: __typename alias449: __typename alias450: __typename alias451: __typename alias452: __typename alias453: __typename alias454: __typename alias455: __typename alias456: __typename alias457: __typename alias458: __typename alias459: __typename alias460: __typename alias461: __typename alias462: __typename alias463: __typename alias464: __typename alias465: __typename alias466: __typename alias467: __typename alias468: __typename alias469: __typename alias470: __typename alias471: __typename alias472: __typename alias473: __typename alias474: __typename alias475: __typename alias476: __typename alias477: __typename alias478: __typename alias479: __typename alias480: __typename alias481: __typename alias482: __typename alias483: __typename alias484: __typename alias485: __typename alias486: __typename alias487: __typename alias488: __typename alias489: __typename alias490: __typename alias491: __typename alias492: __typename alias493: __typename alias494: __typename alias495: __typename alias496: __typename alias497: __typename alias498: __typename alias499: __typename alias500: __typename alias501: __typename alias502: __typename alias503: __typename alias504: __typename alias505: __typename alias506: __typename alias507: __typename alias508: __typename alias509: __typename alias510: __typename alias511: __typename alias512: __typename alias513: __typename alias514: __typename alias515: __typename alias516: __typename alias517: __typename alias518: __typename alias519: __typename alias520: __typename alias521: __typename alias522: __typename alias523: __typename alias524: __typename alias525: __typename alias526: __typename alias527: __typename alias528: __typename alias529: __typename alias530: __typename alias531: __typename alias532: __typename alias533: __typename alias534: __typename alias535: __typename alias536: __typename alias537: __typename alias538: __typename alias539: __typename alias540: __typename alias541: __typename alias542: __typename alias543: __typename alias544: __typename alias545: __typename alias546: __typename alias547: __typename alias548: __typename alias549: __typename alias550: __typename alias551: __typename alias552: __typename alias553: __typename alias554: __typename alias555: __typename alias556: __typename alias557: __typename alias558: __typename alias559: __typename alias560: __typename alias561: __typename alias562: __typename alias563: __typename alias564: __typename alias565: __typename alias566: __typename alias567: __typename alias568: __typename alias569: __typename alias570: __typename alias571: __typename alias572: __typename alias573: __typename alias574: __typename alias575: __typename alias576: __typename alias577: __typename alias578: __typename alias579: __typename alias580: __typename alias581: __typename alias582: __typename alias583: __typename alias584: __typename alias585: __typename alias586: __typename alias587: __typename alias588: __typename alias589: __typename alias590: __typename alias591: __typename alias592: __typename alias593: __typename alias594: __typename alias595: __typename alias596: __typename alias597: __typename alias598: __typename alias599: __typename alias600: __typename alias601: __typename alias602: __typename alias603: __typename alias604: __typename alias605: __typename alias606: __typename alias607: __typename alias608: __typename alias609: __typename alias610: __typename alias611: __typename alias612: __typename alias613: __typename alias614: __typename alias615: __typename alias616: __typename alias617: __typename alias618: __typename alias619: __typename alias620: __typename alias621: __typename alias622: __typename alias623: __typename alias624: __typename alias625: __typename alias626: __typename alias627: __typename alias628: __typename alias629: __typename alias630: __typename alias631: __typename alias632: __typename alias633: __typename alias634: __typename alias635: __typename alias636: __typename alias637: __typename alias638: __typename alias639: __typename alias640: __typename alias641: __typename alias642: __typename alias643: __typename alias644: __typename alias645: __typename alias646: __typename alias647: __typename alias648: __typename alias649: __typename alias650: __typename alias651: __typename alias652: __typename alias653: __typename alias654: __typename alias655: __typename alias656: __typename alias657: __typename alias658: __typename alias659: __typename alias660: __typename alias661: __typename alias662: __typename alias663: __typename alias664: __typename alias665: __typename alias666: __typename alias667: __typename alias668: __typename alias669: __typename alias670: __typename alias671: __typename alias672: __typename alias673: __typename alias674: __typename alias675: __typename alias676: __typename alias677: __typename alias678: __typename alias679: __typename alias680: __typename alias681: __typename alias682: __typename alias683: __typename alias684: __typename alias685: __typename alias686: __typename alias687: __typename alias688: __typename alias689: __typename alias690: __typename alias691: __typename alias692: __typename alias693: __typename alias694: __typename alias695: __typename alias696: __typename alias697: __typename alias698: __typename alias699: __typename alias700: __typename alias701: __typename alias702: __typename alias703: __typename alias704: __typename alias705: __typename alias706: __typename alias707: __typename alias708: __typename alias709: __typename alias710: __typename alias711: __typename alias712: __typename alias713: __typename alias714: __typename alias715: __typename alias716: __typename alias717: __typename alias718: __typename alias719: __typename alias720: __typename alias721: __typename alias722: __typename alias723: __typename alias724: __typename alias725: __typename alias726: __typename alias727: __typename alias728: __typename alias729: __typename alias730: __typename alias731: __typename alias732: __typename alias733: __typename alias734: __typename alias735: __typename alias736: __typename alias737: __typename alias738: __typename alias739: __typename alias740: __typename alias741: __typename alias742: __typename alias743: __typename alias744: __typename alias745: __typename alias746: __typename alias747: __typename alias748: __typename alias749: __typename alias750: __typename alias751: __typename alias752: __typename alias753: __typename alias754: __typename alias755: __typename alias756: __typename alias757: __typename alias758: __typename alias759: __typename alias760: __typename alias761: __typename alias762: __typename alias763: __typename alias764: __typename alias765: __typename alias766: __typename alias767: __typename alias768: __typename alias769: __typename alias770: __typename alias771: __typename alias772: __typename alias773: __typename alias774: __typename alias775: __typename alias776: __typename alias777: __typename alias778: __typename alias779: __typename alias780: __typename alias781: __typename alias782: __typename alias783: __typename alias784: __typename alias785: __typename alias786: __typename alias787: __typename alias788: __typename alias789: __typename alias790: __typename alias791: __typename alias792: __typename alias793: __typename alias794: __typename alias795: __typename alias796: __typename alias797: __typename alias798: __typename alias799: __typename alias800: __typename alias801: __typename alias802: __typename alias803: __typename alias804: __typename alias805: __typename alias806: __typename alias807: __typename alias808: __typename alias809: __typename alias810: __typename alias811: __typename alias812: __typename alias813: __typename alias814: __typename alias815: __typename alias816: __typename alias817: __typename alias818: __typename alias819: __typename alias820: __typename alias821: __typename alias822: __typename alias823: __typename alias824: __typename alias825: __typename alias826: __typename alias827: __typename alias828: __typename alias829: __typename alias830: __typename alias831: __typename alias832: __typename alias833: __typename alias834: __typename alias835: __typename alias836: __typename alias837: __typename alias838: __typename alias839: __typename alias840: __typename alias841: __typename alias842: __typename alias843: __typename alias844: __typename alias845: __typename alias846: __typename alias847: __typename alias848: __typename alias849: __typename alias850: __typename alias851: __typename alias852: __typename alias853: __typename alias854: __typename alias855: __typename alias856: __typename alias857: __typename alias858: __typename alias859: __typename alias860: __typename alias861: __typename alias862: __typename alias863: __typename alias864: __typename alias865: __typename alias866: __typename alias867: __typename alias868: __typename alias869: __typename alias870: __typename alias871: __typename alias872: __typename alias873: __typename alias874: __typename alias875: __typename alias876: __typename alias877: __typename alias878: __typename alias879: __typename alias880: __typename alias881: __typename alias882: __typename alias883: __typename alias884: __typename alias885: __typename alias886: __typename alias887: __typename alias888: __typename alias889: __typename alias890: __typename alias891: __typename alias892: __typename alias893: __typename alias894: __typename alias895: __typename alias896: __typename alias897: __typename alias898: __typename alias899: __typename alias900: __typename alias901: __typename alias902: __typename alias903: __typename alias904: __typename alias905: __typename alias906: __typename alias907: __typename alias908: __typename alias909: __typename alias910: __typename alias911: __typename alias912: __typename alias913: __typename alias914: __typename alias915: __typename alias916: __typename alias917: __typename alias918: __typename alias919: __typename alias920: __typename alias921: __typename alias922: __typename alias923: __typename alias924: __typename alias925: __typename alias926: __typename alias927: __typename alias928: __typename alias929: __typename alias930: __typename alias931: __typename alias932: __typename alias933: __typename alias934: __typename alias935: __typename alias936: __typename alias937: __typename alias938: __typename alias939: __typename alias940: __typename alias941: __typename alias942: __typename alias943: __typename alias944: __typename alias945: __typename alias946: __typename alias947: __typename alias948: __typename alias949: __typename alias950: __typename alias951: __typename alias952: __typename alias953: __typename alias954: __typename alias955: __typename alias956: __typename alias957: __typename alias958: __typename alias959: __typename alias960: __typename alias961: __typename alias962: __typename alias963: __typename alias964: __typename alias965: __typename alias966: __typename alias967: __typename alias968: __typename alias969: __typename alias970: __typename alias971: __typename alias972: __typename alias973: __typename alias974: __typename alias975: __typename alias976: __typename alias977: __typename alias978: __typename alias979: __typename alias980: __typename alias981: __typename alias982: __typename alias983: __typename alias984: __typename alias985: __typename alias986: __typename alias987: __typename alias988: __typename alias989: __typename alias990: __typename alias991: __typename alias992: __typename alias993: __typename alias994: __typename alias995: __typename alias996: __typename alias997: __typename alias998: __typename alias999: __typename alias1000: __typename alias1001: __typename alias1002: __typename alias1003: __typename alias1004: __typename alias1005: __typename alias1006: __typename alias1007: __typename alias1008: __typename alias1009: __typename alias1010: __typename alias1011: __typename alias1012: __typename alias1013: __typename alias1014: __typename alias1015: __typename alias1016: __typename alias1017: __typename alias1018: __typename alias1019: __typename alias1020: __typename alias1021: __typename alias1022: __typename alias1023: __typename alias1024: __typename alias1025: __typename alias1026: __typename alias1027: __typename alias1028: __typename alias1029: __typename alias1030: __typename alias1031: __typename alias1032: __typename alias1033: __typename alias1034: __typename alias1035: __typename alias1036: __typename alias1037: __typename alias1038: __typename alias1039: __typename alias1040: __typename alias1041: __typename alias1042: __typename alias1043: __typename alias1044: __typename alias1045: __typename alias1046: __typename alias1047: __typename alias1048: __typename alias1049: __typename alias1050: __typename alias1051: __typename alias1052: __typename alias1053: __typename alias1054: __typename alias1055: __typename alias1056: __typename alias1057: __typename alias1058: __typename alias1059: __typename alias1060: __typename alias1061: __typename alias1062: __typename alias1063: __typename alias1064: __typename alias1065: __typename alias1066: __typename alias1067: __typename alias1068: __typename alias1069: __typename alias1070: __typename alias1071: __typename alias1072: __typename alias1073: __typename alias1074: __typename alias1075: __typename alias1076: __typename alias1077: __typename alias1078: __typename alias1079: __typename alias1080: __typename alias1081: __typename alias1082: __typename alias1083: __typename alias1084: __typename alias1085: __typename alias1086: __typename alias1087: __typename alias1088: __typename alias1089: __typename alias1090: __typename alias1091: __typename alias1092: __typename alias1093: __typename alias1094: __typename alias1095: __typename alias1096: __typename alias1097: __typename alias1098: __typename alias1099: __typename alias1100: __typename alias1101: __typename alias1102: __typename alias1103: __typename alias1104: __typename alias1105: __typename alias1106: __typename alias1107: __typename alias1108: __typename alias1109: __typename alias1110: __typename alias1111: __typename alias1112: __typename alias1113: __typename alias1114: __typename alias1115: __typename alias1116: __typename alias1117: __typename alias1118: __typename alias1119: __typename alias1120: __typename alias1121: __typename alias1122: __typename alias1123: __typename alias1124: __typename alias1125: __typename alias1126: __typename alias1127: __typename alias1128: __typename alias1129: __typename alias1130: __typename alias1131: __typename alias1132: __typename alias1133: __typename alias1134: __typename alias1135: __typename alias1136: __typename alias1137: __typename alias1138: __typename alias1139: __typename alias1140: __typename alias1141: __typename alias1142: __typename alias1143: __typename alias1144: __typename alias1145: __typename alias1146: __typename alias1147: __typename alias1148: __typename alias1149: __typename alias1150: __typename alias1151: __typename alias1152: __typename alias1153: __typename alias1154: __typename alias1155: __typename alias1156: __typename alias1157: __typename alias1158: __typename alias1159: __typename alias1160: __typename alias1161: __typename alias1162: __typename alias1163: __typename alias1164: __typename alias1165: __typename alias1166: __typename alias1167: __typename alias1168: __typename alias1169: __typename alias1170: __typename alias1171: __typename alias1172: __typename alias1173: __typename alias1174: __typename alias1175: __typename alias1176: __typename alias1177: __typename alias1178: __typename alias1179: __typename alias1180: __typename alias1181: __typename alias1182: __typename alias1183: __typename alias1184: __typename alias1185: __typename alias1186: __typename alias1187: __typename alias1188: __typename alias1189: __typename alias1190: __typename alias1191: __typename alias1192: __typename alias1193: __typename alias1194: __typename alias1195: __typename alias1196: __typename alias1197: __typename alias1198: __typename alias1199: __typename alias1200: __typename alias1201: __typename alias1202: __typename alias1203: __typename alias1204: __typename alias1205: __typename alias1206: __typename alias1207: __typename alias1208: __typename alias1209: __typename alias1210: __typename alias1211: __typename alias1212: __typename alias1213: __typename alias1214: __typename alias1215: __typename alias1216: __typename alias1217: __typename alias1218: __typename alias1219: __typename alias1220: __typename alias1221: __typename alias1222: __typename alias1223: __typename alias1224: __typename alias1225: __typename alias1226: __typename alias1227: __typename alias1228: __typename alias1229: __typename alias1230: __typename alias1231: __typename alias1232: __typename alias1233: __typename alias1234: __typename alias1235: __typename alias1236: __typename alias1237: __typename alias1238: __typename alias1239: __typename alias1240: __typename alias1241: __typename alias1242: __typename alias1243: __typename alias1244: __typename alias1245: __typename alias1246: __typename alias1247: __typename alias1248: __typename alias1249: __typename alias1250: __typename alias1251: __typename alias1252: __typename alias1253: __typename alias1254: __typename alias1255: __typename alias1256: __typename alias1257: __typename alias1258: __typename alias1259: __typename alias1260: __typename alias1261: __typename alias1262: __typename alias1263: __typename alias1264: __typename alias1265: __typename alias1266: __typename alias1267: __typename alias1268: __typename alias1269: __typename alias1270: __typename alias1271: __typename alias1272: __typename alias1273: __typename alias1274: __typename alias1275: __typename alias1276: __typename alias1277: __typename alias1278: __typename alias1279: __typename alias1280: __typename alias1281: __typename alias1282: __typename alias1283: __typename alias1284: __typename alias1285: __typename alias1286: __typename alias1287: __typename alias1288: __typename alias1289: __typename alias1290: __typename alias1291: __typename alias1292: __typename alias1293: __typename alias1294: __typename alias1295: __typename alias1296: __typename alias1297: __typename alias1298: __typename alias1299: __typename alias1300: __typename alias1301: __typename alias1302: __typename alias1303: __typename alias1304: __typename alias1305: __typename alias1306: __typename alias1307: __typename alias1308: __typename alias1309: __typename alias1310: __typename alias1311: __typename alias1312: __typename alias1313: __typename alias1314: __typename alias1315: __typename alias1316: __typename alias1317: __typename alias1318: __typename alias1319: __typename alias1320: __typename alias1321: __typename alias1322: __typename alias1323: __typename alias1324: __typename alias1325: __typename alias1326: __typename alias1327: __typename alias1328: __typename alias1329: __typename alias1330: __typename alias1331: __typename alias1332: __typename alias1333: __typename alias1334: __typename alias1335: __typename alias1336: __typename alias1337: __typename alias1338: __typename alias1339: __typename alias1340: __typename alias1341: __typename alias1342: __typename alias1343: __typename alias1344: __typename alias1345: __typename alias1346: __typename alias1347: __typename alias1348: __typename alias1349: __typename alias1350: __typename alias1351: __typename alias1352: __typename alias1353: __typename alias1354: __typename alias1355: __typename alias1356: __typename alias1357: __typename alias1358: __typename alias1359: __typename alias1360: __typename alias1361: __typename alias1362: __typename alias1363: __typename alias1364: __typename alias1365: __typename alias1366: __typename alias1367: __typename alias1368: __typename alias1369: __typename alias1370: __typename alias1371: __typename alias1372: __typename alias1373: __typename alias1374: __typename alias1375: __typename alias1376: __typename alias1377: __typename alias1378: __typename alias1379: __typename alias1380: __typename alias1381: __typename alias1382: __typename alias1383: __typename alias1384: __typename alias1385: __typename alias1386: __typename alias1387: __typename alias1388: __typename alias1389: __typename alias1390: __typename alias1391: __typename alias1392: __typename alias1393: __typename alias1394: __typename alias1395: __typename alias1396: __typename alias1397: __typename alias1398: __typename alias1399: __typename alias1400: __typename alias1401: __typename alias1402: __typename alias1403: __typename alias1404: __typename alias1405: __typename alias1406: __typename alias1407: __typename alias1408: __typename alias1409: __typename alias1410: __typename alias1411: __typename alias1412: __typename alias1413: __typename alias1414: __typename alias1415: __typename alias1416: __typename alias1417: __typename alias1418: __typename alias1419: __typename alias1420: __typename alias1421: __typename alias1422: __typename alias1423: __typename alias1424: __typename alias1425: __typename alias1426: __typename alias1427: __typename alias1428: __typename alias1429: __typename alias1430: __typename alias1431: __typename alias1432: __typename alias1433: __typename alias1434: __typename alias1435: __typename alias1436: __typename alias1437: __typename alias1438: __typename alias1439: __typename alias1440: __typename alias1441: __typename alias1442: __typename alias1443: __typename alias1444: __typename alias1445: __typename alias1446: __typename alias1447: __typename alias1448: __typename alias1449: __typename alias1450: __typename alias1451: __typename alias1452: __typename alias1453: __typename alias1454: __typename alias1455: __typename alias1456: __typename alias1457: __typename alias1458: __typename alias1459: __typename alias1460: __typename alias1461: __typename alias1462: __typename alias1463: __typename alias1464: __typename alias1465: __typename alias1466: __typename alias1467: __typename alias1468: __typename alias1469: __typename alias1470: __typename alias1471: __typename alias1472: __typename alias1473: __typename alias1474: __typename alias1475: __typename alias1476: __typename alias1477: __typename alias1478: __typename alias1479: __typename alias1480: __typename alias1481: __typename alias1482: __typename alias1483: __typename alias1484: __typename alias1485: __typename alias1486: __typename alias1487: __typename alias1488: __typename alias1489: __typename alias1490: __typename alias1491: __typename alias1492: __typename alias1493: __typename alias1494: __typename alias1495: __typename alias1496: __typename alias1497: __typename alias1498: __typename alias1499: __typename alias1500: __typename alias1501: __typename alias1502: __typename alias1503: __typename alias1504: __typename alias1505: __typename alias1506: __typename alias1507: __typename alias1508: __typename alias1509: __typename alias1510: __typename alias1511: __typename alias1512: __typename alias1513: __typename alias1514: __typename alias1515: __typename alias1516: __typename alias1517: __typename alias1518: __typename alias1519: __typename alias1520: __typename alias1521: __typename alias1522: __typename alias1523: __typename alias1524: __typename alias1525: __typename alias1526: __typename alias1527: __typename alias1528: __typename alias1529: __typename alias1530: __typename alias1531: __typename alias1532: __typename alias1533: __typename alias1534: __typename alias1535: __typename alias1536: __typename alias1537: __typename alias1538: __typename alias1539: __typename alias1540: __typename alias1541: __typename alias1542: __typename alias1543: __typename alias1544: __typename alias1545: __typename alias1546: __typename alias1547: __typename alias1548: __typename alias1549: __typename alias1550: __typename alias1551: __typename alias1552: __typename alias1553: __typename alias1554: __typename alias1555: __typename alias1556: __typename alias1557: __typename alias1558: __typename alias1559: __typename alias1560: __typename alias1561: __typename alias1562: __typename alias1563: __typename alias1564: __typename alias1565: __typename alias1566: __typename alias1567: __typename alias1568: __typename alias1569: __typename alias1570: __typename alias1571: __typename alias1572: __typename alias1573: __typename alias1574: __typename alias1575: __typename alias1576: __typename alias1577: __typename alias1578: __typename alias1579: __typename alias1580: __typename alias1581: __typename alias1582: __typename alias1583: __typename alias1584: __typename alias1585: __typename alias1586: __typename alias1587: __typename alias1588: __typename alias1589: __typename alias1590: __typename alias1591: __typename alias1592: __typename alias1593: __typename alias1594: __typename alias1595: __typename alias1596: __typename alias1597: __typename alias1598: __typename alias1599: __typename alias1600: __typename alias1601: __typename alias1602: __typename alias1603: __typename alias1604: __typename alias1605: __typename alias1606: __typename alias1607: __typename alias1608: __typename alias1609: __typename alias1610: __typename alias1611: __typename alias1612: __typename alias1613: __typename alias1614: __typename alias1615: __typename alias1616: __typename alias1617: __typename alias1618: __typename alias1619: __typename alias1620: __typename alias1621: __typename alias1622: __typename alias1623: __typename alias1624: __typename alias1625: __typename alias1626: __typename alias1627: __typename alias1628: __typename alias1629: __typename alias1630: __typename alias1631: __typename alias1632: __typename alias1633: __typename alias1634: __typename alias1635: __typename alias1636: __typename alias1637: __typename alias1638: __typename alias1639: __typename alias1640: __typename alias1641: __typename alias1642: __typename alias1643: __typename alias1644: __typename alias1645: __typename alias1646: __typename alias1647: __typename alias1648: __typename alias1649: __typename alias1650: __typename alias1651: __typename alias1652: __typename alias1653: __typename alias1654: __typename alias1655: __typename alias1656: __typename alias1657: __typename alias1658: __typename alias1659: __typename alias1660: __typename alias1661: __typename alias1662: __typename alias1663: __typename alias1664: __typename alias1665: __typename alias1666: __typename alias1667: __typename alias1668: __typename alias1669: __typename alias1670: __typename alias1671: __typename alias1672: __typename alias1673: __typename alias1674: __typename alias1675: __typename alias1676: __typename alias1677: __typename alias1678: __typename alias1679: __typename alias1680: __typename alias1681: __typename alias1682: __typename alias1683: __typename alias1684: __typename alias1685: __typename alias1686: __typename alias1687: __typename alias1688: __typename alias1689: __typename alias1690: __typename alias1691: __typename alias1692: __typename alias1693: __typename alias1694: __typename alias1695: __typename alias1696: __typename alias1697: __typename alias1698: __typename alias1699: __typename alias1700: __typename alias1701: __typename alias1702: __typename alias1703: __typename alias1704: __typename alias1705: __typename alias1706: __typename alias1707: __typename alias1708: __typename alias1709: __typename alias1710: __typename alias1711: __typename alias1712: __typename alias1713: __typename alias1714: __typename alias1715: __typename alias1716: __typename alias1717: __typename alias1718: __typename alias1719: __typename alias1720: __typename alias1721: __typename alias1722: __typename alias1723: __typename alias1724: __typename alias1725: __typename alias1726: __typename alias1727: __typename alias1728: __typename alias1729: __typename alias1730: __typename alias1731: __typename alias1732: __typename alias1733: __typename alias1734: __typename alias1735: __typename alias1736: __typename alias1737: __typename alias1738: __typename alias1739: __typename alias1740: __typename alias1741: __typename alias1742: __typename alias1743: __typename alias1744: __typename alias1745: __typename alias1746: __typename alias1747: __typename alias1748: __typename alias1749: __typename alias1750: __typename alias1751: __typename alias1752: __typename alias1753: __typename alias1754: __typename alias1755: __typename alias1756: __typename alias1757: __typename alias1758: __typename alias1759: __typename alias1760: __typename alias1761: __typename alias1762: __typename alias1763: __typename alias1764: __typename alias1765: __typename alias1766: __typename alias1767: __typename alias1768: __typename alias1769: __typename alias1770: __typename alias1771: __typename alias1772: __typename alias1773: __typename alias1774: __typename alias1775: __typename alias1776: __typename alias1777: __typename alias1778: __typename alias1779: __typename alias1780: __typename alias1781: __typename alias1782: __typename alias1783: __typename alias1784: __typename alias1785: __typename alias1786: __typename alias1787: __typename alias1788: __typename alias1789: __typename alias1790: __typename alias1791: __typename alias1792: __typename alias1793: __typename alias1794: __typename alias1795: __typename alias1796: __typename alias1797: __typename alias1798: __typename alias1799: __typename alias1800: __typename alias1801: __typename alias1802: __typename alias1803: __typename alias1804: __typename alias1805: __typename alias1806: __typename alias1807: __typename alias1808: __typename alias1809: __typename alias1810: __typename alias1811: __typename alias1812: __typename alias1813: __typename alias1814: __typename alias1815: __typename alias1816: __typename alias1817: __typename alias1818: __typename alias1819: __typename alias1820: __typename alias1821: __typename alias1822: __typename alias1823: __typename alias1824: __typename alias1825: __typename alias1826: __typename alias1827: __typename alias1828: __typename alias1829: __typename alias1830: __typename alias1831: __typename alias1832: __typename alias1833: __typename alias1834: __typename alias1835: __typename alias1836: __typename alias1837: __typename alias1838: __typename alias1839: __typename alias1840: __typename alias1841: __typename alias1842: __typename alias1843: __typename alias1844: __typename alias1845: __typename alias1846: __typename alias1847: __typename alias1848: __typename alias1849: __typename alias1850: __typename alias1851: __typename alias1852: __typename alias1853: __typename alias1854: __typename alias1855: __typename alias1856: __typename alias1857: __typename alias1858: __typename alias1859: __typename alias1860: __typename alias1861: __typename alias1862: __typename alias1863: __typename alias1864: __typename alias1865: __typename alias1866: __typename alias1867: __typename alias1868: __typename alias1869: __typename alias1870: __typename alias1871: __typename alias1872: __typename alias1873: __typename alias1874: __typename alias1875: __typename alias1876: __typename alias1877: __typename alias1878: __typename alias1879: __typename alias1880: __typename alias1881: __typename alias1882: __typename alias1883: __typename alias1884: __typename alias1885: __typename alias1886: __typename alias1887: __typename alias1888: __typename alias1889: __typename alias1890: __typename alias1891: __typename alias1892: __typename alias1893: __typename alias1894: __typename alias1895: __typename alias1896: __typename alias1897: __typename alias1898: __typename alias1899: __typename alias1900: __typename alias1901: __typename alias1902: __typename alias1903: __typename alias1904: __typename alias1905: __typename alias1906: __typename alias1907: __typename alias1908: __typename alias1909: __typename alias1910: __typename alias1911: __typename alias1912: __typename alias1913: __typename alias1914: __typename alias1915: __typename alias1916: __typename alias1917: __typename alias1918: __typename alias1919: __typename alias1920: __typename alias1921: __typename alias1922: __typename alias1923: __typename alias1924: __typename alias1925: __typename alias1926: __typename alias1927: __typename alias1928: __typename alias1929: __typename alias1930: __typename alias1931: __typename alias1932: __typename alias1933: __typename alias1934: __typename alias1935: __typename alias1936: __typename alias1937: __typename alias1938: __typename alias1939: __typename alias1940: __typename alias1941: __typename alias1942: __typename alias1943: __typename alias1944: __typename alias1945: __typename alias1946: __typename alias1947: __typename alias1948: __typename alias1949: __typename alias1950: __typename alias1951: __typename alias1952: __typename alias1953: __typename alias1954: __typename alias1955: __typename alias1956: __typename alias1957: __typename alias1958: __typename alias1959: __typename alias1960: __typename alias1961: __typename alias1962: __typename alias1963: __typename alias1964: __typename alias1965: __typename alias1966: __typename alias1967: __typename alias1968: __typename alias1969: __typename alias1970: __typename alias1971: __typename alias1972: __typename alias1973: __typename alias1974: __typename alias1975: __typename alias1976: __typename alias1977: __typename alias1978: __typename alias1979: __typename alias1980: __typename alias1981: __typename alias1982: __typename alias1983: __typename alias1984: __typename alias1985: __typename alias1986: __typename alias1987: __typename alias1988: __typename alias1989: __typename alias1990: __typename alias1991: __typename alias1992: __typename alias1993: __typename alias1994: __typename alias1995: __typename alias1996: __typename alias1997: __typename alias1998: __typename alias1999: __typename alias2000: __typename alias2001: __typename alias2002: __typename alias2003: __typename alias2004: __typename alias2005: __typename alias2006: __typename alias2007: __typename alias2008: __typename alias2009: __typename alias2010: __typename alias2011: __typename alias2012: __typename alias2013: __typename alias2014: __typename alias2015: __typename alias2016: __typename alias2017: __typename alias2018: __typename alias2019: __typename alias2020: __typename alias2021: __typename alias2022: __typename alias2023: __typename alias2024: __typename alias2025: __typename alias2026: __typename alias2027: __typename alias2028: __typename alias2029: __typename alias2030: __typename alias2031: __typename alias2032: __typename alias2033: __typename alias2034: __typename alias2035: __typename alias2036: __typename alias2037: __typename alias2038: __typename alias2039: __typename alias2040: __typename alias2041: __typename alias2042: __typename alias2043: __typename alias2044: __typename alias2045: __typename alias2046: __typename alias2047: __typename }" + }, + { + "type": "Compose", + "selectionSetIds": [ + 0 + ] + } + ] + } +} +``` + +## QueryPlan Hash + +```text +01246D7DB5ECDD14497D332C955C9446F5E6929D +``` + +## Fusion Graph + +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -4150,6 +4157,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -4216,6 +4225,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -4239,6 +4250,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -4282,4 +4295,5 @@ input AddUserInput { "The `Date` scalar represents an ISO-8601 compliant date type." scalar Date ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_01.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_01.md similarity index 93% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_01.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_01.md index d8bb6b5a652..cdcc3204d64 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_01.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_01.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_01 + +## UserRequest + +```graphql query GetUser { users { name @@ -11,10 +14,11 @@ query GetUser { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query GetUser { users { name reviews { body author { name } } } }", "operation": "GetUser", @@ -64,4 +68,5 @@ QueryPlan "__fusion_exports__1": "User_id" } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_02_Aliases.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_02_Aliases.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_02_Aliases.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_02_Aliases.md index 0668e69924a..f9d3b1075c6 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_02_Aliases.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_02_Aliases.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_02_Aliases + +## UserRequest + +```graphql query GetUser { a: users { name @@ -20,10 +23,11 @@ query GetUser { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query GetUser { a: users { name reviews { body author { name } } } b: users { name reviews { body author { name } } } }", "operation": "GetUser", @@ -97,4 +101,5 @@ QueryPlan "__fusion_exports__2": "User_id" } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_03_Argument_Literals.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_03_Argument_Literals.md similarity index 83% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_03_Argument_Literals.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_03_Argument_Literals.md index fcc690f4a94..da84493e7dc 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_03_Argument_Literals.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_03_Argument_Literals.md @@ -1,14 +1,18 @@ -UserRequest ---------------- +# Query_Plan_03_Argument_Literals + +## UserRequest + +```graphql query GetUser { userById(id: 1) { id } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query GetUser { userById(id: 1) { id } }", "operation": "GetUser", @@ -30,4 +34,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_04_Argument_Variables.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_04_Argument_Variables.md similarity index 87% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_04_Argument_Variables.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_04_Argument_Variables.md index 58386d14502..42249bf2843 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_04_Argument_Variables.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_04_Argument_Variables.md @@ -1,14 +1,18 @@ -UserRequest ---------------- +# Query_Plan_04_Argument_Variables + +## UserRequest + +```graphql query TopProducts($first: Int!) { topProducts(first: $first) { id } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query TopProducts($first: Int!) { topProducts(first: $first) { id } }", "operation": "TopProducts", @@ -35,4 +39,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_05_TypeName_Field.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_05_TypeName_Field.md similarity index 94% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_05_TypeName_Field.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_05_TypeName_Field.md index 5b56dd2bfda..2316aa6741d 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_05_TypeName_Field.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_05_TypeName_Field.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_05_TypeName_Field + +## UserRequest + +```graphql query TopProducts { __typename topProducts(first: 2) { @@ -12,10 +15,11 @@ query TopProducts { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query TopProducts { __typename topProducts(first: 2) { __typename reviews { __typename author { __typename } } } }", "operation": "TopProducts", @@ -74,4 +78,5 @@ QueryPlan "__fusion_exports__1": "Product_id" } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_06_Introspection.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_06_Introspection.md similarity index 87% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_06_Introspection.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_06_Introspection.md index 096fe2b6bac..72d55d8875b 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_06_Introspection.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_06_Introspection.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_06_Introspection + +## UserRequest + +```graphql query Introspect { __schema { types { @@ -15,10 +18,11 @@ query Introspect { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query Introspect { __schema { types { name kind fields { name type { name kind } } } } }", "operation": "Introspect", @@ -38,4 +42,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_07_Introspection_And_Fetch.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_07_Introspection_And_Fetch.md similarity index 92% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_07_Introspection_And_Fetch.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_07_Introspection_And_Fetch.md index 628f25abf99..635a2da2f13 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_07_Introspection_And_Fetch.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_07_Introspection_And_Fetch.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_07_Introspection_And_Fetch + +## UserRequest + +```graphql query TopProducts($first: Int!) { topProducts(first: $first) { id @@ -18,10 +21,11 @@ query TopProducts($first: Int!) { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query TopProducts($first: Int!) { topProducts(first: $first) { id } __schema { types { name kind fields { name type { name kind } } } } }", "operation": "TopProducts", @@ -57,4 +61,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_08_Single_Mutation.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_08_Single_Mutation.md similarity index 89% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_08_Single_Mutation.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_08_Single_Mutation.md index 2f9e5943a51..18316e782f1 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_08_Single_Mutation.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_08_Single_Mutation.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_08_Single_Mutation + +## UserRequest + +```graphql mutation AddReview { addReview(input: { body: "foo", authorId: 1, upc: 1 }) { review { @@ -10,10 +13,11 @@ mutation AddReview { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "mutation AddReview { addReview(input: { body: \u0022foo\u0022, authorId: 1, upc: 1 }) { review { body author { name } } } }", "operation": "AddReview", @@ -35,4 +39,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_09_Two_Mutation_Same_SubGraph.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_09_Two_Mutation_Same_SubGraph.md similarity index 91% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_09_Two_Mutation_Same_SubGraph.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_09_Two_Mutation_Same_SubGraph.md index 9055d4dd9b4..9756cbf9c16 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_09_Two_Mutation_Same_SubGraph.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_09_Two_Mutation_Same_SubGraph.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_09_Two_Mutation_Same_SubGraph + +## UserRequest + +```graphql mutation AddReviews { a: addReview(input: { body: "foo", authorId: 1, upc: 1 }) { review { @@ -18,10 +21,11 @@ mutation AddReviews { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "mutation AddReviews { a: addReview(input: { body: \u0022foo\u0022, authorId: 1, upc: 1 }) { review { body author { name } } } b: addReview(input: { body: \u0022foo\u0022, authorId: 1, upc: 1 }) { review { body author { name } } } }", "operation": "AddReviews", @@ -43,4 +47,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_10_Two_Mutation_Same_SubGraph.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_10_Two_Mutation_Same_SubGraph.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_10_Two_Mutation_Same_SubGraph.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_10_Two_Mutation_Same_SubGraph.md index 02b406159fd..ebd1405b446 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_10_Two_Mutation_Same_SubGraph.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_10_Two_Mutation_Same_SubGraph.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_10_Two_Mutation_Same_SubGraph + +## UserRequest + +```graphql mutation AddReviews { a: addReview(input: { body: "foo", authorId: 1, upc: 1 }) { review { @@ -19,10 +22,11 @@ mutation AddReviews { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "mutation AddReviews { a: addReview(input: { body: \u0022foo\u0022, authorId: 1, upc: 1 }) { review { body author { birthdate } } } b: addReview(input: { body: \u0022foo\u0022, authorId: 1, upc: 1 }) { review { body author { id birthdate } } } }", "operation": "AddReviews", @@ -96,4 +100,5 @@ QueryPlan "__fusion_exports__2": "User_id" } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_11_Two_Mutation_Two_SubGraph.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_11_Two_Mutation_Two_SubGraph.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_11_Two_Mutation_Two_SubGraph.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_11_Two_Mutation_Two_SubGraph.md index 68796e7d402..f8135f35d7c 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_11_Two_Mutation_Two_SubGraph.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_11_Two_Mutation_Two_SubGraph.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_11_Two_Mutation_Two_SubGraph + +## UserRequest + +```graphql mutation AddReviewAndUser { addReview(input: { body: "foo", authorId: 1, upc: 1 }) { review { @@ -19,10 +22,11 @@ mutation AddReviewAndUser { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "mutation AddReviewAndUser { addReview(input: { body: \u0022foo\u0022, authorId: 1, upc: 1 }) { review { body author { id birthdate } } } addUser(input: { name: \u0022foo\u0022, username: \u0022foo\u0022, birthdate: \u0022abc\u0022 }) { user { name reviews { body } } } }", "operation": "AddReviewAndUser", @@ -104,4 +108,5 @@ QueryPlan "__fusion_exports__2": "User_id" } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_12_Subscription_1.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_12_Subscription_1.md similarity index 86% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_12_Subscription_1.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_12_Subscription_1.md index 62b16d0e2a9..cd4937ae801 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_12_Subscription_1.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_12_Subscription_1.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_12_Subscription_1 + +## UserRequest + +```graphql subscription OnNewReview { onNewReview { body @@ -8,10 +11,11 @@ subscription OnNewReview { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "subscription OnNewReview { onNewReview { body author { name } } }", "operation": "OnNewReview", @@ -35,4 +39,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_13_Subscription_2.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_13_Subscription_2.md similarity index 93% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_13_Subscription_2.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_13_Subscription_2.md index 5ab90e2501a..8ceb122fbfc 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_13_Subscription_2.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_13_Subscription_2.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_13_Subscription_2 + +## UserRequest + +```graphql subscription OnNewReview { onNewReview { body @@ -9,10 +12,11 @@ subscription OnNewReview { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "subscription OnNewReview { onNewReview { body author { name birthdate } } }", "operation": "OnNewReview", @@ -64,4 +68,5 @@ QueryPlan "__fusion_exports__1": "User_id" } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_14_Node_Single_Fragment.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_14_Node_Single_Fragment.md similarity index 93% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_14_Node_Single_Fragment.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_14_Node_Single_Fragment.md index 24a113dd03a..b8ae59f58ed 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_14_Node_Single_Fragment.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_14_Node_Single_Fragment.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_14_Node_Single_Fragment + +## UserRequest + +```graphql query FetchNode($id: ID!) { node(id: $id) { ... on User { @@ -7,10 +10,11 @@ query FetchNode($id: ID!) { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query FetchNode($id: ID!) { node(id: $id) { ... on User { id } } }", "operation": "FetchNode", @@ -61,4 +65,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_15_Node_Single_Fragment_Multiple_Subgraphs.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_15_Node_Single_Fragment_Multiple_Subgraphs.md similarity index 94% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_15_Node_Single_Fragment_Multiple_Subgraphs.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_15_Node_Single_Fragment_Multiple_Subgraphs.md index 94badca7c67..e5f3f8c7448 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_15_Node_Single_Fragment_Multiple_Subgraphs.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_15_Node_Single_Fragment_Multiple_Subgraphs.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_15_Node_Single_Fragment_Multiple_Subgraphs + +## UserRequest + +```graphql query FetchNode($id: ID!) { node(id: $id) { ... on User { @@ -10,10 +13,11 @@ query FetchNode($id: ID!) { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query FetchNode($id: ID!) { node(id: $id) { ... on User { birthdate reviews { body } } } }", "operation": "FetchNode", @@ -87,4 +91,5 @@ QueryPlan "__fusion_exports__1": "User_id" } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_16_Two_Node_Fields_Aliased.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_16_Two_Node_Fields_Aliased.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_16_Two_Node_Fields_Aliased.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_16_Two_Node_Fields_Aliased.md index 72fb4312223..1856a7d7671 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_16_Two_Node_Fields_Aliased.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_16_Two_Node_Fields_Aliased.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_16_Two_Node_Fields_Aliased + +## UserRequest + +```graphql query FetchNode($a: ID!, $b: ID!) { a: node(id: $a) { ... on User { @@ -12,10 +15,11 @@ query FetchNode($a: ID!, $b: ID!) { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query FetchNode($a: ID!, $b: ID!) { a: node(id: $a) { ... on User { id } } b: node(id: $b) { ... on User { id } } }", "operation": "FetchNode", @@ -106,4 +110,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_17_Multi_Completion.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_17_Multi_Completion.md similarity index 91% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_17_Multi_Completion.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_17_Multi_Completion.md index 7f82461544d..3b39e20f221 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_17_Multi_Completion.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_17_Multi_Completion.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_17_Multi_Completion + +## UserRequest + +```graphql query GetUser { users { birthdate @@ -13,10 +16,11 @@ query GetUser { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query GetUser { users { birthdate } reviews { body } __schema { types { name } } }", "operation": "GetUser", @@ -53,4 +57,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_18_Node_Single_Fragment_Multiple_Subgraphs.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_18_Node_Single_Fragment_Multiple_Subgraphs.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_18_Node_Single_Fragment_Multiple_Subgraphs.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_18_Node_Single_Fragment_Multiple_Subgraphs.md index b00ed7620cd..736614e4937 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_18_Node_Single_Fragment_Multiple_Subgraphs.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_18_Node_Single_Fragment_Multiple_Subgraphs.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_18_Node_Single_Fragment_Multiple_Subgraphs + +## UserRequest + +```graphql query FetchNode($id: ID!) { node(id: $id) { ... on User { @@ -16,10 +19,11 @@ query FetchNode($id: ID!) { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query FetchNode($id: ID!) { node(id: $id) { ... on User { birthdate reviews { body } } ... on Review { body author { birthdate } } } }", "operation": "FetchNode", @@ -114,4 +118,5 @@ QueryPlan "__fusion_exports__2": "User_id" } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_19_Requires.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_19_Requires.md similarity index 97% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_19_Requires.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_19_Requires.md index 61b913b5497..7c1f8076405 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_19_Requires.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_19_Requires.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_19_Requires + +## UserRequest + +```graphql query Requires { reviews { body @@ -16,10 +19,11 @@ query Requires { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query Requires { reviews { body author { name birthdate } product { name deliveryEstimate(zip: \u002212345\u0022) { min max } } } }", "operation": "Requires", @@ -128,4 +132,5 @@ QueryPlan "__fusion_exports__4": "Product_id" } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_20_DeepQuery.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_20_DeepQuery.md similarity index 97% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_20_DeepQuery.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_20_DeepQuery.md index 2c4d8579317..6138d67d8da 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_20_DeepQuery.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_20_DeepQuery.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_20_DeepQuery + +## UserRequest + +```graphql query GetUser { users { name @@ -19,10 +22,11 @@ query GetUser { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query GetUser { users { name reviews { body author { name birthdate reviews { body author { name birthdate } } } } } }", "operation": "GetUser", @@ -122,4 +126,5 @@ QueryPlan "__fusion_exports__3": "User_id" } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_21_Field_Requirement_Not_In_Context.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_21_Field_Requirement_Not_In_Context.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_21_Field_Requirement_Not_In_Context.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_21_Field_Requirement_Not_In_Context.md index ee5d97c300e..382bb9fe13b 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_21_Field_Requirement_Not_In_Context.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_21_Field_Requirement_Not_In_Context.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_21_Field_Requirement_Not_In_Context + +## UserRequest + +```graphql query Requires { reviews { body @@ -15,10 +18,11 @@ query Requires { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query Requires { reviews { body author { name birthdate } product { deliveryEstimate(zip: \u002212345\u0022) { min max } } } }", "operation": "Requires", @@ -127,4 +131,5 @@ QueryPlan "__fusion_exports__4": "Product_id" } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_22_Interfaces.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_22_Interfaces.md similarity index 87% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_22_Interfaces.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_22_Interfaces.md index 56b2d54c6c4..59f13a70bc5 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_22_Interfaces.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_22_Interfaces.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_22_Interfaces + +## UserRequest + +```graphql query Appointments { appointments { nodes { @@ -9,10 +12,11 @@ query Appointments { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query Appointments { appointments { nodes { patient { id } } } }", "operation": "Appointments", @@ -34,4 +38,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_23_Interfaces_Merge.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_23_Interfaces_Merge.md similarity index 93% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_23_Interfaces_Merge.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_23_Interfaces_Merge.md index bdcc80d0761..b633d868ef8 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_23_Interfaces_Merge.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_23_Interfaces_Merge.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_23_Interfaces_Merge + +## UserRequest + +```graphql query Appointments { appointments { nodes { @@ -12,10 +15,11 @@ query Appointments { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query Appointments { appointments { nodes { patient { id ... on Patient1 { name } } } } }", "operation": "Appointments", @@ -65,4 +69,5 @@ QueryPlan "__fusion_exports__1": "Patient1_id" } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_24_Field_Requirement_And_Fields_In_Context.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_24_Field_Requirement_And_Fields_In_Context.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_24_Field_Requirement_And_Fields_In_Context.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_24_Field_Requirement_And_Fields_In_Context.md index 2c395d3edd6..c7e15609167 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_24_Field_Requirement_And_Fields_In_Context.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_24_Field_Requirement_And_Fields_In_Context.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_24_Field_Requirement_And_Fields_In_Context + +## UserRequest + +```graphql query Requires { reviews { body @@ -17,10 +20,11 @@ query Requires { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query Requires { reviews { body author { name birthdate } product { id name deliveryEstimate(zip: \u002212345\u0022) { min max } } } }", "operation": "Requires", @@ -129,4 +133,5 @@ QueryPlan "__fusion_exports__4": "Product_id" } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_25_Variables_Are_Passed_Through.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_25_Variables_Are_Passed_Through.md similarity index 93% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_25_Variables_Are_Passed_Through.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_25_Variables_Are_Passed_Through.md index 3f160f9ef35..9cd3f87af42 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_25_Variables_Are_Passed_Through.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_25_Variables_Are_Passed_Through.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_25_Variables_Are_Passed_Through + +## UserRequest + +```graphql query Appointments($first: Int!) { patientById(patientId: 1) { name @@ -10,10 +13,11 @@ query Appointments($first: Int!) { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query Appointments($first: Int!) { patientById(patientId: 1) { name appointments(first: $first) { nodes { id } } } }", "operation": "Appointments", @@ -68,4 +72,5 @@ QueryPlan "__fusion_exports__1": "Patient1_id" } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_26_Ensure_No_Circular_Dependency_When_Requiring_Data.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_26_Ensure_No_Circular_Dependency_When_Requiring_Data.md similarity index 95% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_26_Ensure_No_Circular_Dependency_When_Requiring_Data.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_26_Ensure_No_Circular_Dependency_When_Requiring_Data.md index e5bc60c12be..e37e95a8aab 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_26_Ensure_No_Circular_Dependency_When_Requiring_Data.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_26_Ensure_No_Circular_Dependency_When_Requiring_Data.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_26_Ensure_No_Circular_Dependency_When_Requiring_Data + +## UserRequest + +```graphql query TopProducts { topProducts(first: 5) { weight @@ -12,10 +15,11 @@ query TopProducts { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query TopProducts { topProducts(first: 5) { weight deliveryEstimate(zip: \u002212345\u0022) { min max } reviews { body } } }", "operation": "TopProducts", @@ -98,4 +102,5 @@ QueryPlan "__fusion_exports__3": "Product_id" } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_27_Multiple_Require_Steps_From_Same_Subgraph.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_27_Multiple_Require_Steps_From_Same_Subgraph.md similarity index 95% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_27_Multiple_Require_Steps_From_Same_Subgraph.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_27_Multiple_Require_Steps_From_Same_Subgraph.md index 98769d7a26b..b067bab7cff 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_27_Multiple_Require_Steps_From_Same_Subgraph.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_27_Multiple_Require_Steps_From_Same_Subgraph.md @@ -1,5 +1,8 @@ -UserRequest ---------------- +# Query_Plan_27_Multiple_Require_Steps_From_Same_Subgraph + +## UserRequest + +```graphql query Query { authorById(id: "1") { id @@ -15,10 +18,11 @@ query Query { } } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query Query { authorById(id: \u00221\u0022) { id name bio books { id author { books { id } } } } }", "operation": "Query", @@ -118,4 +122,5 @@ QueryPlan "__fusion_exports__3": "Author_id" } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_29_Simple_Root_List_Data.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_28_Simple_Root_Data.md similarity index 88% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_29_Simple_Root_List_Data.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_28_Simple_Root_Data.md index 1746330758a..d1dddf05f58 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_29_Simple_Root_List_Data.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_28_Simple_Root_Data.md @@ -1,15 +1,19 @@ -UserRequest ---------------- +# Query_Plan_28_Simple_Root_Data + +## UserRequest + +```graphql query Query { data { a b } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query Query { data { a b } }", "operation": "Query", @@ -42,4 +46,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_28_Simple_Root_Data.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_29_Simple_Root_List_Data.md similarity index 87% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_28_Simple_Root_Data.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_29_Simple_Root_List_Data.md index 1746330758a..9ba9142d3e7 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_28_Simple_Root_Data.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_29_Simple_Root_List_Data.md @@ -1,15 +1,19 @@ -UserRequest ---------------- +# Query_Plan_29_Simple_Root_List_Data + +## UserRequest + +```graphql query Query { data { a b } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query Query { data { a b } }", "operation": "Query", @@ -42,4 +46,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_30_Entity_Data.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_30_Entity_Data.md similarity index 89% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_30_Entity_Data.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_30_Entity_Data.md index 45a2a411d4f..47a1de12fe9 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_30_Entity_Data.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_30_Entity_Data.md @@ -1,15 +1,19 @@ -UserRequest ---------------- +# Query_Plan_30_Entity_Data + +## UserRequest + +```graphql query Query { entity(id: 123) { a b } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query Query { entity(id: 123) { a b } }", "operation": "Query", @@ -42,4 +46,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_31_Argument_No_Value_Specified_With_Selection_Set.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_31_Argument_No_Value_Specified_With_Selection_Set.md similarity index 79% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_31_Argument_No_Value_Specified_With_Selection_Set.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_31_Argument_No_Value_Specified_With_Selection_Set.md index 7c52d79f80f..d21b18e6299 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_31_Argument_No_Value_Specified_With_Selection_Set.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_31_Argument_No_Value_Specified_With_Selection_Set.md @@ -1,14 +1,18 @@ -UserRequest ---------------- +# Query_Plan_31_Argument_No_Value_Specified_With_Selection_Set + +## UserRequest + +```graphql query Test { fieldWithEnumArg { test } } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query Test { fieldWithEnumArg { test } }", "operation": "Test", @@ -30,4 +34,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_32_Argument_No_Value_Specified.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_32_Argument_No_Value_Specified.md similarity index 80% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_32_Argument_No_Value_Specified.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_32_Argument_No_Value_Specified.md index a0f58df65d2..50a5b68047c 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_32_Argument_No_Value_Specified.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_32_Argument_No_Value_Specified.md @@ -1,12 +1,16 @@ -UserRequest ---------------- +# Query_Plan_32_Argument_No_Value_Specified + +## UserRequest + +```graphql query Test { fieldWithEnumArg } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query Test { fieldWithEnumArg }", "operation": "Test", @@ -28,4 +32,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_33_Argument_Default_Value_Explicitly_Specified.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_33_Argument_Default_Value_Explicitly_Specified.md similarity index 79% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_33_Argument_Default_Value_Explicitly_Specified.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_33_Argument_Default_Value_Explicitly_Specified.md index f7f7268523d..652ef16eab0 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_33_Argument_Default_Value_Explicitly_Specified.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_33_Argument_Default_Value_Explicitly_Specified.md @@ -1,12 +1,16 @@ -UserRequest ---------------- +# Query_Plan_33_Argument_Default_Value_Explicitly_Specified + +## UserRequest + +```graphql query Test { fieldWithEnumArg(arg: VALUE2) } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query Test { fieldWithEnumArg(arg: VALUE2) }", "operation": "Test", @@ -28,4 +32,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_34_Argument_Not_Default_Value_Specified.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_34_Argument_Not_Default_Value_Specified.md similarity index 80% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_34_Argument_Not_Default_Value_Specified.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_34_Argument_Not_Default_Value_Specified.md index 894d16ca8f0..6b1cc8615c1 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_34_Argument_Not_Default_Value_Specified.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_34_Argument_Not_Default_Value_Specified.md @@ -1,12 +1,16 @@ -UserRequest ---------------- +# Query_Plan_34_Argument_Not_Default_Value_Specified + +## UserRequest + +```graphql query Test { fieldWithEnumArg(arg: VALUE1) } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query Test { fieldWithEnumArg(arg: VALUE1) }", "operation": "Test", @@ -28,4 +32,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_35_Argument_Value_Variable_Specified.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_35_Argument_Value_Variable_Specified.md similarity index 85% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_35_Argument_Value_Variable_Specified.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_35_Argument_Value_Variable_Specified.md index da47f564762..020b1045c0a 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_35_Argument_Value_Variable_Specified.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/RequestPlannerTests.Query_Plan_35_Argument_Value_Variable_Specified.md @@ -1,12 +1,16 @@ -UserRequest ---------------- +# Query_Plan_35_Argument_Value_Variable_Specified + +## UserRequest + +```graphql query Test($variable: TestEnum) { fieldWithEnumArg(arg: $variable) } ---------------- +``` -QueryPlan ---------------- +## QueryPlan + +```json { "document": "query Test($variable: TestEnum) { fieldWithEnumArg(arg: $variable) }", "operation": "Test", @@ -33,4 +37,5 @@ QueryPlan ] } } ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_Inline_Fragment.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_Inline_Fragment.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_Inline_Fragment.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_Inline_Fragment.md index 59aec45425f..b51cb13e14e 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_Inline_Fragment.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_Inline_Fragment.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Error_Union_With_Inline_Fragment + +## User Request + +```graphql mutation Upload($input: UploadProductPictureInput!) { uploadProductPicture(input: $input) { boolean @@ -11,10 +14,24 @@ mutation Upload($input: UploadProductPictureInput!) { } } } ---------------- +``` + +## Result + +```json +{ + "data": { + "uploadProductPicture": { + "boolean": true, + "errors": null + } + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "mutation Upload($input: UploadProductPictureInput!) { uploadProductPicture(input: $input) { boolean errors { __typename ... on ProductNotFoundError { productId } } } }", "operation": "Upload", @@ -41,27 +58,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 62AB3FC1A9F040C10377EAF01865D8D8CB406CB4 ---------------- +``` -Result ---------------- -{ - "data": { - "uploadProductPicture": { - "boolean": true, - "errors": null - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -74,6 +81,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -198,6 +207,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -232,6 +243,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -294,4 +307,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_Inline_Fragment_Errors_Not_Null.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_Inline_Fragment_Errors_Not_Null.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_Inline_Fragment_Errors_Not_Null.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_Inline_Fragment_Errors_Not_Null.md index 2d01d809ef2..4903ded3668 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_Inline_Fragment_Errors_Not_Null.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_Inline_Fragment_Errors_Not_Null.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Error_Union_With_Inline_Fragment_Errors_Not_Null + +## User Request + +```graphql mutation Upload($input: UploadProductPictureInput!) { uploadProductPicture(input: $input) { boolean @@ -11,10 +14,29 @@ mutation Upload($input: UploadProductPictureInput!) { } } } ---------------- +``` + +## Result + +```json +{ + "data": { + "uploadProductPicture": { + "boolean": null, + "errors": [ + { + "__typename": "ProductNotFoundError", + "productId": 0 + } + ] + } + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "mutation Upload($input: UploadProductPictureInput!) { uploadProductPicture(input: $input) { boolean errors { __typename ... on ProductNotFoundError { productId } } } }", "operation": "Upload", @@ -41,32 +63,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 62AB3FC1A9F040C10377EAF01865D8D8CB406CB4 ---------------- +``` -Result ---------------- -{ - "data": { - "uploadProductPicture": { - "boolean": null, - "errors": [ - { - "__typename": "ProductNotFoundError", - "productId": 0 - } - ] - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -79,6 +86,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -203,6 +212,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -237,6 +248,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -299,4 +312,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_TypeName.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_TypeName.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_TypeName.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_TypeName.md index f849dd58f91..7e3d9e348ae 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_TypeName.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_TypeName.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Error_Union_With_TypeName + +## User Request + +```graphql mutation Upload($input: UploadProductPictureInput!) { uploadProductPicture(input: $input) { boolean @@ -8,10 +11,24 @@ mutation Upload($input: UploadProductPictureInput!) { } } } ---------------- +``` + +## Result + +```json +{ + "data": { + "uploadProductPicture": { + "boolean": true, + "errors": null + } + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "mutation Upload($input: UploadProductPictureInput!) { uploadProductPicture(input: $input) { boolean errors { __typename } } }", "operation": "Upload", @@ -38,27 +55,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 56E8F115508796D7CB6FCA52CE2AFFCF458ED8E0 ---------------- +``` -Result ---------------- -{ - "data": { - "uploadProductPicture": { - "boolean": true, - "errors": null - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -71,6 +78,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -195,6 +204,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -229,6 +240,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -291,4 +304,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` + diff --git a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_TypeName_Errors_Not_Null.snap b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_TypeName_Errors_Not_Null.md similarity index 96% rename from src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_TypeName_Errors_Not_Null.snap rename to src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_TypeName_Errors_Not_Null.md index d29ce8651fc..92b2cd31cdd 100644 --- a/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_TypeName_Errors_Not_Null.snap +++ b/src/HotChocolate/Fusion/test/Core.Tests/__snapshots__/UnionTests.Error_Union_With_TypeName_Errors_Not_Null.md @@ -1,5 +1,8 @@ -User Request ---------------- +# Error_Union_With_TypeName_Errors_Not_Null + +## User Request + +```graphql mutation Upload($input: UploadProductPictureInput!) { uploadProductPicture(input: $input) { boolean @@ -8,10 +11,28 @@ mutation Upload($input: UploadProductPictureInput!) { } } } ---------------- +``` + +## Result + +```json +{ + "data": { + "uploadProductPicture": { + "boolean": null, + "errors": [ + { + "__typename": "ProductNotFoundError" + } + ] + } + } +} +``` + +## QueryPlan -QueryPlan ---------------- +```json { "document": "mutation Upload($input: UploadProductPictureInput!) { uploadProductPicture(input: $input) { boolean errors { __typename } } }", "operation": "Upload", @@ -38,31 +59,17 @@ QueryPlan ] } } ---------------- +``` -QueryPlan Hash ---------------- +## QueryPlan Hash + +```text 56E8F115508796D7CB6FCA52CE2AFFCF458ED8E0 ---------------- +``` -Result ---------------- -{ - "data": { - "uploadProductPicture": { - "boolean": null, - "errors": [ - { - "__typename": "ProductNotFoundError" - } - ] - } - } -} ---------------- +## Fusion Graph -Fusion Graph ---------------- +```graphql schema @fusion(version: 1) @transport(subgraph: "Reviews2", location: "http:\/\/localhost:5000\/graphql", kind: "HTTP") @@ -75,6 +82,8 @@ schema } type Query { + errorField: String + @resolver(subgraph: "Accounts", select: "{ errorField }") productById(id: ID!): Product @variable(subgraph: "Reviews2", name: "id", argument: "id") @resolver(subgraph: "Reviews2", select: "{ productById(id: $id) }", arguments: [ { name: "id", type: "ID!" } ]) @@ -199,6 +208,8 @@ type Review implements Node @source(subgraph: "Reviews2") body: String! @source(subgraph: "Reviews2") + errorField: String + @source(subgraph: "Reviews2") id: ID! @source(subgraph: "Reviews2") product: Product! @@ -233,6 +244,8 @@ type User implements Node @resolver(subgraph: "Reviews2", select: "{ nodes(ids: $User_id) { ... on User { ... User } } }", arguments: [ { name: "User_id", type: "[ID!]!" } ], kind: "BATCH") { birthdate: Date! @source(subgraph: "Accounts") + errorField: String + @source(subgraph: "Accounts") id: ID! @source(subgraph: "Reviews2") @source(subgraph: "Accounts") @@ -295,4 +308,5 @@ scalar Date "The `Upload` scalar type represents a file upload." scalar Upload ---------------- +``` +