Context("when executing in namespace fails", func() { BeforeEach(func() { ns.ExecuteReturns(errors.New("peppers")) }) It("returns the error", func() { inserter.HandleResolvedNeighbors(ready, ns, "some-vxlan-name", resolved) Eventually(ready).Should(Receive(MatchError("namespace execute failed: peppers"))) }) }) Context("when setting a neighbor entry fails", func() { BeforeEach(func() { netlinker.SetNeighStub = func(n *netlink.Neigh) error { if netlinker.SetNeighCallCount() == 1 { return errors.New("go huskies") } return nil } resolved <- watcher.Neighbor{} }) It("logs the error and continues in the loop", func() { inserter.HandleResolvedNeighbors(ready, ns, "some-vxlan-name", resolved) Eventually(ready).Should(BeClosed()) Eventually(logger).Should(gbytes.Say("add-neighbor-failed.*set L3.*huskies")) Expect(netlinker.SetNeighCallCount()).To(Equal(3)) }) })