diff --git a/spec_builder_helper_test.go b/spec_builder_helper_test.go index f5750fc..11be95e 100644 --- a/spec_builder_helper_test.go +++ b/spec_builder_helper_test.go @@ -299,6 +299,9 @@ func TestEngine_Good_TransportConfigCarriesEngineMetadata(t *testing.T) { } cfg := e.TransportConfig() + if !cfg.SwaggerEnabled { + t.Fatal("expected Swagger to be enabled") + } if cfg.SwaggerPath != "/docs" { t.Fatalf("expected swagger path /docs, got %q", cfg.SwaggerPath) } @@ -325,6 +328,23 @@ func TestEngine_Good_TransportConfigCarriesEngineMetadata(t *testing.T) { } } +func TestEngine_Good_TransportConfigReportsDisabledSwaggerWithoutUI(t *testing.T) { + gin.SetMode(gin.TestMode) + + e, err := api.New(api.WithSwaggerPath("/docs")) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + cfg := e.TransportConfig() + if cfg.SwaggerEnabled { + t.Fatal("expected Swagger to remain disabled when only the path is configured") + } + if cfg.SwaggerPath != "/docs" { + t.Fatalf("expected swagger path /docs, got %q", cfg.SwaggerPath) + } +} + func TestEngine_Good_OpenAPISpecBuilderExportsDefaultSwaggerPath(t *testing.T) { gin.SetMode(gin.TestMode) diff --git a/transport.go b/transport.go index eef0ccf..1da11ad 100644 --- a/transport.go +++ b/transport.go @@ -13,9 +13,10 @@ import "strings" // // cfg := api.TransportConfig{SwaggerPath: "/swagger", WSPath: "/ws"} type TransportConfig struct { + SwaggerEnabled bool SwaggerPath string GraphQLPath string - GraphQLEnabled bool + GraphQLEnabled bool GraphQLPlayground bool WSPath string SSEPath string @@ -37,6 +38,7 @@ func (e *Engine) TransportConfig() TransportConfig { } cfg := TransportConfig{ + SwaggerEnabled: e.swaggerEnabled, GraphQLEnabled: e.graphql != nil, GraphQLPlayground: e.graphql != nil && e.graphql.playground, PprofEnabled: e.pprofEnabled,