From 49753ebf4c5c6a4864950d4a65d68d2e468476b5 Mon Sep 17 00:00:00 2001 From: Nikolay Edigaryev Date: Fri, 24 Mar 2023 21:22:58 +0400 Subject: [PATCH] Tests: use separate controller listening ports to prevent conflicts (#58) --- internal/command/dev/dev.go | 1 + internal/controller/controller.go | 9 ++++++--- internal/tests/integration_test.go | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/internal/command/dev/dev.go b/internal/command/dev/dev.go index cf5a84c..f3cdc5e 100644 --- a/internal/command/dev/dev.go +++ b/internal/command/dev/dev.go @@ -78,6 +78,7 @@ func CreateDevControllerAndWorker(devDataDirPath string) (*controller.Controller devController, err := controller.New( controller.WithDataDir(dataDir), + controller.WithListenAddr(":0"), controller.WithInsecureAuthDisabled(), controller.WithLogger(logger), ) diff --git a/internal/controller/controller.go b/internal/controller/controller.go index 386028f..e4f312b 100644 --- a/internal/controller/controller.go +++ b/internal/controller/controller.go @@ -161,8 +161,11 @@ func (controller *Controller) Run(ctx context.Context) error { } func (controller *Controller) Address() string { - if strings.HasPrefix(controller.listenAddr, ":") { - return fmt.Sprintf("http://localhost%s", controller.listenAddr) + hostPort := strings.ReplaceAll(controller.listener.Addr().String(), "[::]", "127.0.0.1") + + if controller.tlsConfig != nil { + return fmt.Sprintf("https://%s", hostPort) } - return controller.listenAddr + + return fmt.Sprintf("http://%s", hostPort) } diff --git a/internal/tests/integration_test.go b/internal/tests/integration_test.go index e0dd0b7..9b701a0 100644 --- a/internal/tests/integration_test.go +++ b/internal/tests/integration_test.go @@ -175,7 +175,7 @@ func StartIntegrationTestEnvironment(t *testing.T) *client.Client { time.Sleep(5 * time.Second) - devClient, err := client.New() + devClient, err := client.New(client.WithAddress(devController.Address())) if err != nil { t.Fatal(err) }