diff --git a/.gitignore b/.gitignore index 44d148d..9c9adfa 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,11 @@ Thumbs.db ######## *.log /misc-dev/ + +cover.html +cover.out +tmp/ + +cover.out +cover.html +tmp/ diff --git a/internal/communication/roundtripper_test.go b/internal/communication/roundtripper_test.go index d28cf53..6736af8 100644 --- a/internal/communication/roundtripper_test.go +++ b/internal/communication/roundtripper_test.go @@ -51,6 +51,9 @@ func TestRoundTripperRoundTrip(t *testing.T) { t.Fatalf(`Unexpected error: %v`, err) } + request.Header.Set("Content-Type", "application/json") + request.Header.Set("x-nginx-loadbalancer-kubernetes", "nlk") + response, err := roundTripper.RoundTrip(request) if err != nil { t.Fatalf(`Unexpected error: %v`, err) diff --git a/internal/core/event_test.go b/internal/core/event_test.go new file mode 100644 index 0000000..b3b8926 --- /dev/null +++ b/internal/core/event_test.go @@ -0,0 +1,31 @@ +package core + +import ( + v1 "k8s.io/api/core/v1" + "testing" +) + +func TestNewEvent(t *testing.T) { + expectedType := Created + expectedService := &v1.Service{} + expectedPreviousService := &v1.Service{} + expectedNodeIps := []string{"127.0.0.1"} + + event := NewEvent(expectedType, expectedService, expectedPreviousService, expectedNodeIps) + + if event.Type != expectedType { + t.Errorf("expected Created, got %v", event.Type) + } + + if event.Service != expectedService { + t.Errorf("expected service, got %#v", event.Service) + } + + if event.PreviousService != expectedPreviousService { + t.Errorf("expected previous service, got %#v", event.PreviousService) + } + + if event.NodeIps[0] != expectedNodeIps[0] { + t.Errorf("expected node ips, got %#v", event.NodeIps) + } +} diff --git a/internal/core/upstream_server_test.go b/internal/core/upstream_server_test.go new file mode 100644 index 0000000..7b0eed5 --- /dev/null +++ b/internal/core/upstream_server_test.go @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2023 F5 Inc. All rights reserved. + * Use of this source code is governed by the Apache License that can be found in the LICENSE file. + */ + +package core + +import "testing" + +func TestNewUpstreamServer(t *testing.T) { + host := "localhost" + us := NewUpstreamServer(host) + if us.Host != host { + t.Errorf("NewUpstreamServer(%s) = %s; want %s", host, us.Host, host) + } +} diff --git a/internal/probation/server_test.go b/internal/probation/server_test.go index 5888def..b51d15e 100644 --- a/internal/probation/server_test.go +++ b/internal/probation/server_test.go @@ -7,6 +7,8 @@ package probation import ( "github.com/nginxinc/kubernetes-nginx-ingress/test/mocks" + "github.com/sirupsen/logrus" + "net/http" "testing" ) @@ -51,3 +53,21 @@ func TestHealthServer_HandleFailCheck(t *testing.T) { t.Errorf("Expected 'Service Not Available', got %v", body) } } + +func TestHealthServer_Start(t *testing.T) { + server := NewHealthServer() + server.Start() + + response, err := http.Get("http://localhost:51031/livez") + if err != nil { + t.Error(err) + } + + if response.StatusCode != http.StatusOK { + t.Errorf("Expected status code %v, got %v", http.StatusAccepted, response.StatusCode) + } + + logrus.Infof("recevied a response from the probe server: %v", response) + + server.Stop() +}