From b36adc6d75b7456447a80bfae0a2935db33a1b82 Mon Sep 17 00:00:00 2001 From: Mile Druzijanic Date: Fri, 16 Feb 2024 20:35:48 +0100 Subject: [PATCH] adding required tests update --- .../mode/static/nginx/runtime/manager_test.go | 68 +++++++++++ .../nginx/runtime/runtime_manager_test.go | 107 ------------------ 2 files changed, 68 insertions(+), 107 deletions(-) delete mode 100644 internal/mode/static/nginx/runtime/runtime_manager_test.go diff --git a/internal/mode/static/nginx/runtime/manager_test.go b/internal/mode/static/nginx/runtime/manager_test.go index d6ff923c02..4220c07b29 100644 --- a/internal/mode/static/nginx/runtime/manager_test.go +++ b/internal/mode/static/nginx/runtime/manager_test.go @@ -4,10 +4,12 @@ import ( "context" "errors" "io/fs" + "net/http" "testing" "time" "github.com/go-logr/logr" + "github.com/nginxinc/nginx-plus-go-client/client" ngxclient "github.com/nginxinc/nginx-plus-go-client/client" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" @@ -21,6 +23,72 @@ var _ = Describe("NGINX Runtime Manager", func() { mgr = NewManagerImpl(&ngxclient.NginxClient{}, nil, logr.New(GinkgoLogr.GetSink())) Expect(mgr.IsPlus()).To(BeTrue()) }) + + Describe("ManagerImpl", Ordered, func() { + var ( + mockedManager Manager + serverMocks []ngxclient.UpstreamServer + serversMock ngxclient.UpstreamServer + + clientMock *ngxclient.NginxClient + ) + + var ( + MaxConnsMock = 150 + MaxFailsMock = 20 + WeightMock = 10 + BackupMock = false + DownMock = false + ) + + BeforeAll(func() { + + serversMock = ngxclient.UpstreamServer{ + ID: 1, + Server: "unknown", + MaxConns: &MaxConnsMock, + MaxFails: &MaxFailsMock, + FailTimeout: "test", + SlowStart: "test", + Route: "test", + Backup: &BackupMock, + Down: &DownMock, + Drain: false, + Weight: &WeightMock, + Service: "", + } + + serverMocks = []ngxclient.UpstreamServer{ + serversMock, + } + + httpClient := &http.Client{ + Transport: http.DefaultTransport, + CheckRedirect: http.DefaultClient.CheckRedirect, + Jar: http.DefaultClient.Jar, + Timeout: time.Second * 4, + } + + clientMock, _ = ngxclient.NewNginxClient("test", client.WithHTTPClient(httpClient)) + logrMock := logr.New(GinkgoLogr.GetSink()) + mockedManager = NewManagerImpl(clientMock, nil, logrMock) + + }) + + It("UpdateHTTPServers fails upon unknown HTTP server upstream", func() { + err := mockedManager.UpdateHTTPServers("unknown", serverMocks) + Expect(err).ToNot(BeNil()) + }) + + Context("GetUpstreams returns empty map of upstreams", func() { + It("returns no upstreams from NGINX Plus API", func() { + + upstreams, err := mockedManager.GetUpstreams() + Expect(err).To(HaveOccurred()) + Expect(upstreams).To(BeEmpty()) + }) + }) + }) }) func TestEnsureNginxRunning(t *testing.T) { diff --git a/internal/mode/static/nginx/runtime/runtime_manager_test.go b/internal/mode/static/nginx/runtime/runtime_manager_test.go deleted file mode 100644 index 86129ef74d..0000000000 --- a/internal/mode/static/nginx/runtime/runtime_manager_test.go +++ /dev/null @@ -1,107 +0,0 @@ -package runtime_test - -import ( - "net/http" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" - - "github.com/go-logr/logr" - "github.com/nginxinc/nginx-gateway-fabric/internal/mode/static/nginx/runtime" - "github.com/nginxinc/nginx-gateway-fabric/internal/mode/static/nginx/runtime/runtimefakes" - "github.com/nginxinc/nginx-plus-go-client/client" - ngxclient "github.com/nginxinc/nginx-plus-go-client/client" -) - -var _ = Describe("ManagerImpl UpdateHTTPServers", func() { - - var ( - MaxConnsMock = 15 - MaxFailsMock = 2 - WeightMock = 1 - BackupMock = false - DownMock = false - ) - - BeforeEach(func() { - serversMock := ngxclient.UpstreamServer{ - ID: 1, - Server: "10.0.0.1:8080", - MaxConns: &MaxConnsMock, - MaxFails: &MaxFailsMock, - FailTimeout: "test", - SlowStart: "test", - Route: "test", - Backup: &BackupMock, - Down: &DownMock, - Drain: false, - Weight: &WeightMock, - Service: "server", - } - - serverMocks := []ngxclient.UpstreamServer{ - serversMock, - } - - nginxStatusSock := "http://10.0.0.1:8080" - httpClient := &http.Client{} - clientMock, _ := ngxclient.NewNginxClient(nginxStatusSock, client.WithHTTPClient(httpClient)) - logrMock := logr.New(GinkgoLogr.GetSink()) - - mockedManager := runtime.NewManagerImpl(clientMock, nil, logrMock) - err := mockedManager.UpdateHTTPServers("10.0.0.1:8080", serverMocks) - Expect(err).To(BeNil()) - - }) -}) - -var _ = Describe("ManagerImpl GetUpstreams", func() { - var ( - mockNginxClient *ngxclient.NginxClient - manager *runtimefakes.FakeManager - ) - - var ( - MaxConnsMock = 15 - MaxFailsMock = 2 - WeightMock = 1 - BackupMock = false - DownMock = false - ) - - BeforeEach(func() { - nginxStatusSock := "http://10.0.0.1:8080" - httpClient := &http.Client{} - mockNginxClient, _ = ngxclient.NewNginxClient(nginxStatusSock, client.WithHTTPClient(httpClient)) - mockNginxClient.AddHTTPServer("10.0.0.1:8080", ngxclient.UpstreamServer{ - ID: 1, - Server: "10.0.0.1:8080", - MaxConns: &MaxConnsMock, - MaxFails: &MaxFailsMock, - FailTimeout: "test", - SlowStart: "test", - Route: "test", - Backup: &BackupMock, - Down: &DownMock, - Drain: false, - Weight: &WeightMock, - Service: "server", - }) - manager = &runtimefakes.FakeManager{} - }) - - Describe("GetUpstreams", func() { - Context("when NGINX Plus is not enabled", func() { - BeforeEach(func() { - manager.IsPlusReturns(false) - }) - - It("returns no upstreams from NGINX Plus API", func() { - - _, err := manager.GetUpstreams() - Expect(err).ToNot(HaveOccurred()) - }) - - }) - }) -})