Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ module ServiceCollectionExtensions =
member services.AddGraphQL<'Root, 'Handler when 'Handler :> GraphQLRequestHandler<'Root> and 'Handler : not struct>
(
rootFactory : HttpContext -> 'Root,
[<Optional; DefaultParameterValue (GraphQLOptionsDefaults.WebSocketEndpoint)>] webSocketEndpointPath : string,
webSocketEndpointPath : string,
[<Optional>] additionalConverters : JsonConverter seq
) =
let getExecutorService (sp : IServiceProvider) = sp.GetRequiredService<Executor<'Root>>()
Expand All @@ -277,7 +277,7 @@ module ServiceCollectionExtensions =
member services.AddGraphQL<'Root>
(
rootFactory : HttpContext -> 'Root,
[<Optional; DefaultParameterValue (GraphQLOptionsDefaults.WebSocketEndpoint)>] webSocketEndpointPath : string,
webSocketEndpointPath : string,
[<Optional>] additionalConverters : JsonConverter seq
) =
Comment on lines 277 to 282
let getExecutorService (sp : IServiceProvider) = sp.GetRequiredService<Executor<'Root>>()
Expand All @@ -301,7 +301,7 @@ module ServiceCollectionExtensions =
[<Optional>] additionalConverters : JsonConverter seq
) =
let getExecutorService (sp : IServiceProvider) = sp.GetRequiredService<Executor<'Root>>()
services.AddGraphQL<'Root, 'Handler> (getExecutorService, rootFactory, additionalConverters, configure = null)
services.AddGraphQL<'Root, 'Handler> (getExecutorService, rootFactory, additionalConverters, configure = configure)

/// <summary>
/// Adds GraphQL options and services to the service collection. It gets the executor from the service provider.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
<ItemGroup>
<None Include="ApplicationInsights.config" />
<Compile Include="Schema.fs" />
<Compile Include="ServiceCollectionExtensionsCompilationTests.fs" />
<Compile Include="Startup.fs" />
<Compile Include="Program.fs" />
</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
/// Compilation-only tests that verify all public AddGraphQL overloads resolve correctly.
/// These functions are never called at runtime.
module FSharp.Data.GraphQL.IntegrationTests.Server.ServiceCollectionExtensionsCompilationTests

open System
open Microsoft.AspNetCore.Http
open Microsoft.Extensions.DependencyInjection

open FSharp.Data.GraphQL.Server.AspNetCore
open FSharp.Data.GraphQL.Samples.StarWarsApi

let private rootFactory (ctx : HttpContext) : Root = Root(ctx)

let private probe_ExecutorInstance_Handler_NoOptionals () =
let services = ServiceCollection() :> IServiceCollection
services.AddGraphQL<Root, DefaultGraphQLRequestHandler<Root>>(Schema.executor, rootFactory) |> ignore
Comment on lines +14 to +16

let private probe_ExecutorInstance_Handler_WithWsPath () =
let services = ServiceCollection() :> IServiceCollection
services.AddGraphQL<Root, DefaultGraphQLRequestHandler<Root>>(Schema.executor, rootFactory, "/ws") |> ignore

let private probe_ExecutorInstance_Handler_WithConfigure () =
let services = ServiceCollection() :> IServiceCollection
let configure = Func<GraphQLOptions<Root>, GraphQLOptions<Root>>(id)
services.AddGraphQL<Root, DefaultGraphQLRequestHandler<Root>>(Schema.executor, rootFactory, configure) |> ignore

let private probe_ExecutorInstance_NoHandler_NoOptionals () =
let services = ServiceCollection() :> IServiceCollection
services.AddGraphQL<Root>(Schema.executor, rootFactory) |> ignore

let private probe_ExecutorInstance_NoHandler_WithWsPath () =
let services = ServiceCollection() :> IServiceCollection
services.AddGraphQL<Root>(Schema.executor, rootFactory, "/ws") |> ignore

let private probe_ExecutorInstance_NoHandler_WithConfigure () =
let services = ServiceCollection() :> IServiceCollection
let configure = Func<GraphQLOptions<Root>, GraphQLOptions<Root>>(id)
services.AddGraphQL<Root>(Schema.executor, rootFactory, configure) |> ignore

let private probe_FromDI_Handler_WithWsPath () =
let services = ServiceCollection() :> IServiceCollection
services.AddGraphQL<Root, DefaultGraphQLRequestHandler<Root>>(rootFactory, "/ws") |> ignore

let private probe_FromDI_Handler_NoOptionals () =
let services = ServiceCollection() :> IServiceCollection
services.AddGraphQL<Root, DefaultGraphQLRequestHandler<Root>>(rootFactory) |> ignore

let private probe_FromDI_Handler_WithConfigure () =
let services = ServiceCollection() :> IServiceCollection
let configure = Func<GraphQLOptions<Root>, GraphQLOptions<Root>>(id)
services.AddGraphQL<Root, DefaultGraphQLRequestHandler<Root>>(rootFactory, configure) |> ignore

let private probe_FromDI_NoHandler_WithWsPath () =
let services = ServiceCollection() :> IServiceCollection
services.AddGraphQL<Root>(rootFactory, "/ws") |> ignore

let private probe_FromDI_NoHandler_NoOptionals () =
let services = ServiceCollection() :> IServiceCollection
services.AddGraphQL<Root>(rootFactory) |> ignore

let private probe_FromDI_NoHandler_WithConfigure () =
let services = ServiceCollection() :> IServiceCollection
let configure = Func<GraphQLOptions<Root>, GraphQLOptions<Root>>(id)
services.AddGraphQL<Root>(rootFactory, configure) |> ignore
Loading