Skip to content

Commit 107e8d4

Browse files
committed
Add unit tests; remove logger
1 parent 2fac0eb commit 107e8d4

File tree

3 files changed

+48
-12
lines changed

3 files changed

+48
-12
lines changed

internal/mode/static/handler.go

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package static
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67
"sync"
78
"time"
@@ -183,9 +184,9 @@ func (h *eventHandlerImpl) HandleEventBatch(ctx context.Context, logger logr.Log
183184
h.setLatestConfiguration(&cfg)
184185

185186
if h.cfg.plus {
186-
err = h.updateUpstreamServers(logger, cfg)
187+
err = h.updateUpstreamServers(cfg)
187188
} else {
188-
err = h.updateNginxConf(ctx, logger, cfg)
189+
err = h.updateNginxConf(ctx, cfg)
189190
}
190191
case state.ClusterStateChange:
191192
h.version++
@@ -198,7 +199,7 @@ func (h *eventHandlerImpl) HandleEventBatch(ctx context.Context, logger logr.Log
198199

199200
h.setLatestConfiguration(&cfg)
200201

201-
err = h.updateNginxConf(ctx, logger, cfg)
202+
err = h.updateNginxConf(ctx, cfg)
202203
}
203204

204205
var nginxReloadRes status.NginxReloadResult
@@ -305,7 +306,6 @@ func (h *eventHandlerImpl) parseAndCaptureEvent(ctx context.Context, logger logr
305306
// updateNginxConf updates nginx conf files and reloads nginx.
306307
func (h *eventHandlerImpl) updateNginxConf(
307308
ctx context.Context,
308-
logger logr.Logger,
309309
conf dataplane.Configuration,
310310
) error {
311311
files := h.cfg.generator.Generate(conf)
@@ -318,7 +318,7 @@ func (h *eventHandlerImpl) updateNginxConf(
318318
}
319319

320320
// If using NGINX Plus, update upstream servers using the API.
321-
if err := h.updateUpstreamServers(logger, conf); err != nil {
321+
if err := h.updateUpstreamServers(conf); err != nil {
322322
return fmt.Errorf("failed to update upstream servers: %w", err)
323323
}
324324

@@ -327,7 +327,7 @@ func (h *eventHandlerImpl) updateNginxConf(
327327

328328
// updateUpstreamServers determines which servers have changed and uses the NGINX Plus API to update them.
329329
// Only applicable when using NGINX Plus.
330-
func (h *eventHandlerImpl) updateUpstreamServers(logger logr.Logger, conf dataplane.Configuration) error {
330+
func (h *eventHandlerImpl) updateUpstreamServers(conf dataplane.Configuration) error {
331331
if !h.cfg.plus {
332332
return nil
333333
}
@@ -375,19 +375,22 @@ func (h *eventHandlerImpl) updateUpstreamServers(logger logr.Logger, conf datapl
375375
}
376376
}
377377

378+
var updateErr error
378379
for _, upstream := range upstreams {
379380
if err := h.cfg.nginxRuntimeMgr.UpdateHTTPServers(upstream.name, upstream.servers); err != nil {
380-
logger.Error(err, "couldn't update upstream via the API", "upstreamName", upstream.name)
381+
updateErr = errors.Join(updateErr, fmt.Errorf(
382+
"couldn't update upstream %q via the API: %w", upstream.name, err))
381383
}
382384
}
383385

384386
for _, upstream := range streamUpstreams {
385387
if err := h.cfg.nginxRuntimeMgr.UpdateStreamServers(upstream.name, upstream.servers); err != nil {
386-
logger.Error(err, "couldn't update stream upstream via the API", "upstreamName", upstream.name)
388+
updateErr = errors.Join(updateErr, fmt.Errorf(
389+
"couldn't update stream upstream %q via the API: %w", upstream.name, err))
387390
}
388391
}
389392

390-
return nil
393+
return updateErr
391394
}
392395

393396
// serversEqual accepts lists of either UpstreamServer/Peer or StreamUpstreamServer/StreamPeer and determines

internal/mode/static/handler_test.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -505,19 +505,29 @@ var _ = Describe("eventHandler", func() {
505505
})
506506

507507
It("should update servers using the NGINX Plus API", func() {
508-
Expect(handler.updateUpstreamServers(ctlrZap.New(), conf)).To(Succeed())
508+
Expect(handler.updateUpstreamServers(conf)).To(Succeed())
509509
Expect(fakeNginxRuntimeMgr.UpdateHTTPServersCallCount()).To(Equal(1))
510510
})
511511

512512
It("should return error when GET API returns an error", func() {
513513
fakeNginxRuntimeMgr.GetUpstreamsReturns(nil, nil, errors.New("error"))
514-
Expect(handler.updateUpstreamServers(ctlrZap.New(), conf)).ToNot(Succeed())
514+
Expect(handler.updateUpstreamServers(conf)).ToNot(Succeed())
515+
})
516+
517+
It("should return error when UpdateHTTPServers API returns an error", func() {
518+
fakeNginxRuntimeMgr.UpdateHTTPServersReturns(errors.New("error"))
519+
Expect(handler.updateUpstreamServers(conf)).ToNot(Succeed())
520+
})
521+
522+
It("should return error when UpdateStreamServers API returns an error", func() {
523+
fakeNginxRuntimeMgr.UpdateStreamServersReturns(errors.New("error"))
524+
Expect(handler.updateUpstreamServers(conf)).ToNot(Succeed())
515525
})
516526
})
517527

518528
When("not running NGINX Plus", func() {
519529
It("should not do anything", func() {
520-
Expect(handler.updateUpstreamServers(ctlrZap.New(), conf)).To(Succeed())
530+
Expect(handler.updateUpstreamServers(conf)).To(Succeed())
521531

522532
Expect(fakeNginxRuntimeMgr.UpdateHTTPServersCallCount()).To(Equal(0))
523533
})

internal/mode/static/nginx/runtime/manager_test.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,17 @@ var _ = Describe("NGINX Runtime Manager", func() {
224224
Expect(streamUpstreams).To(BeNil())
225225
})
226226

227+
It("returns an error when GetUpstreams returns nil", func() {
228+
ngxPlusClient.GetUpstreamsReturns(nil, nil)
229+
230+
upstreams, streamUpstreams, err := manager.GetUpstreams()
231+
232+
Expect(err).To(HaveOccurred())
233+
Expect(err).To(MatchError("GET upstreams returned nil value"))
234+
Expect(upstreams).To(BeNil())
235+
Expect(streamUpstreams).To(BeNil())
236+
})
237+
227238
It("returns an error when GetStreamUpstreams fails", func() {
228239
ngxPlusClient.GetUpstreamsReturns(&ngxclient.Upstreams{}, nil)
229240
ngxPlusClient.GetStreamUpstreamsReturns(nil, errors.New("failed to get upstreams"))
@@ -235,6 +246,18 @@ var _ = Describe("NGINX Runtime Manager", func() {
235246
Expect(upstreams).To(BeNil())
236247
Expect(streamUpstreams).To(BeNil())
237248
})
249+
250+
It("returns an error when GetStreamUpstreams returns nil", func() {
251+
ngxPlusClient.GetUpstreamsReturns(&ngxclient.Upstreams{}, nil)
252+
ngxPlusClient.GetStreamUpstreamsReturns(nil, nil)
253+
254+
upstreams, streamUpstreams, err := manager.GetUpstreams()
255+
256+
Expect(err).To(HaveOccurred())
257+
Expect(err).To(MatchError("GET stream upstreams returned nil value"))
258+
Expect(upstreams).To(BeNil())
259+
Expect(streamUpstreams).To(BeNil())
260+
})
238261
})
239262

240263
When("not running NGINX plus", func() {

0 commit comments

Comments
 (0)