Skip to content

Commit 19a0132

Browse files
update test cases ;Signed-off-by: Venkata Bhaskaram Varanasi <[email protected]>
1 parent 127f506 commit 19a0132

File tree

2 files changed

+78
-1
lines changed

2 files changed

+78
-1
lines changed

main.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ func main() {
125125
secretName := flag.String("secret-name", "k8s-athenz-syncer", "secret name that contains private key")
126126
header := flag.String("auth-header", "", "Authentication header field")
127127
nTokenExpireTime := flag.String("ntoken-expiry", "1h0m0s", "Custom nToken expiration duration")
128-
excludeNamespaces := flag.String("exclude-namespaces", "", "Namespaces to exclude from processing")
128+
excludeNamespaces := flag.String("exclude-namespaces", "", "Namespaces to exclude from processing ex: 'kube-system,kube-public,acceptance-test'")
129129

130130
klog.InitFlags(nil)
131131
flag.Set("logtostderr", "false")
@@ -196,6 +196,7 @@ func main() {
196196
excludeNSList := strings.Split(*excludeNamespaces, ",")
197197
exclusionList := []string{}
198198
for _, item := range excludeNSList {
199+
item := strings.TrimSpace(item)
199200
if item != "" {
200201
exclusionList = append(exclusionList, item)
201202
}

pkg/controller/controller_test.go

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"context"
2020
"crypto/tls"
2121
"encoding/json"
22+
"fmt"
2223
"net"
2324
"net/http"
2425
"net/http/httptest"
@@ -30,10 +31,12 @@ import (
3031
athenz_domain "github.com/AthenZ/k8s-athenz-syncer/pkg/apis/athenz/v1"
3132
"github.com/AthenZ/k8s-athenz-syncer/pkg/client/clientset/versioned/fake"
3233
"github.com/AthenZ/k8s-athenz-syncer/pkg/cron"
34+
"github.com/AthenZ/k8s-athenz-syncer/pkg/log"
3335
"github.com/AthenZ/k8s-athenz-syncer/pkg/util"
3436
"github.com/ardielle/ardielle-go/rdl"
3537
"github.com/google/go-cmp/cmp"
3638
k8sfake "k8s.io/client-go/kubernetes/fake"
39+
"k8s.io/client-go/util/workqueue"
3740
)
3841

3942
const (
@@ -204,3 +207,76 @@ func testingHTTPClient(handler http.Handler) (*http.Client, func()) {
204207

205208
return cli, s.Close
206209
}
210+
func TestNsinformerhandler(t *testing.T) {
211+
log.InitLogger("/tmp/log/test.log", "info")
212+
213+
tests := []struct {
214+
name string
215+
keyFunc func(obj interface{}) (string, error)
216+
excludedNS []string
217+
expectedResult string
218+
expectedQueueLen int
219+
shouldAddToQueue bool
220+
}{
221+
{
222+
name: "Error from key function",
223+
keyFunc: func(obj interface{}) (string, error) {
224+
return "", fmt.Errorf("mock key function error")
225+
},
226+
excludedNS: []string{},
227+
expectedResult: "",
228+
expectedQueueLen: 0,
229+
shouldAddToQueue: false,
230+
},
231+
{
232+
name: "Excluded namespace",
233+
keyFunc: func(obj interface{}) (string, error) {
234+
return "test-excluded", nil
235+
},
236+
excludedNS: []string{"test-excluded"},
237+
expectedResult: "test-excluded",
238+
expectedQueueLen: 0,
239+
shouldAddToQueue: false,
240+
},
241+
{
242+
name: "Non-excluded namespace gets added to queue",
243+
keyFunc: func(obj interface{}) (string, error) {
244+
return "test-namespace", nil
245+
},
246+
excludedNS: []string{},
247+
expectedResult: "test-namespace",
248+
expectedQueueLen: 1,
249+
shouldAddToQueue: true,
250+
},
251+
}
252+
253+
for _, tt := range tests {
254+
t.Run(tt.name, func(t *testing.T) {
255+
c := newController()
256+
c.util = util.NewUtil("admin.domain", []string{"kube-system"}, tt.excludedNS)
257+
mockQueue := workqueue.NewRateLimitingQueue(workqueue.DefaultControllerRateLimiter())
258+
c.queue = mockQueue
259+
260+
result := c.nsinformerhandler(tt.keyFunc, &athenz_domain.AthenzDomain{})
261+
262+
if result != tt.expectedResult {
263+
t.Errorf("Expected result '%s', got: '%s'", tt.expectedResult, result)
264+
}
265+
266+
// Sleep to allow item to be queued
267+
time.Sleep(2 * time.Second)
268+
269+
if mockQueue.Len() != tt.expectedQueueLen {
270+
t.Errorf("Expected queue length to be %d, got %d", tt.expectedQueueLen, mockQueue.Len())
271+
}
272+
273+
if tt.shouldAddToQueue && mockQueue.Len() > 0 {
274+
expectedDomain := c.util.NamespaceToDomain(tt.expectedResult)
275+
item, _ := mockQueue.Get()
276+
if item != expectedDomain {
277+
t.Errorf("Expected %s in queue, got %s", expectedDomain, item)
278+
}
279+
}
280+
})
281+
}
282+
}

0 commit comments

Comments
 (0)