request = handlers.NewTestRequest(route)
					routesHandler.Upsert(responseRecorder, request)

					Expect(responseRecorder.Code).To(Equal(http.StatusCreated))
				})

				It("accepts a list of routes in the body", func() {
					route = append(route, route[0])
					route[1].IP = "5.4.3.2"

					request = handlers.NewTestRequest(route)
					routesHandler.Upsert(responseRecorder, request)

					Expect(responseRecorder.Code).To(Equal(http.StatusCreated))
					Expect(database.SaveRouteCallCount()).To(Equal(2))
					Expect(database.SaveRouteArgsForCall(0)).To(Equal(route[0]))
					Expect(database.SaveRouteArgsForCall(1)).To(Equal(route[1]))
				})

				It("accepts route_service_url parameters", func() {
					route[0].RouteServiceUrl = "https://my-rs.com"
					request = handlers.NewTestRequest(route)
					routesHandler.Upsert(responseRecorder, request)

					Expect(responseRecorder.Code).To(Equal(http.StatusCreated))
					Expect(database.SaveRouteCallCount()).To(Equal(1))
					Expect(database.SaveRouteArgsForCall(0)).To(Equal(route[0]))
				})

				It("logs the route declaration", func() {
					request = handlers.NewTestRequest(route)
Beispiel #2
0
			process = ifrit.Invoke(routeRegister)
		})

		Context("registration", func() {

			Context("with no errors", func() {
				BeforeEach(func() {
					database.SaveRouteStub = func(route models.Route) error {
						return nil
					}

				})

				It("registers the route for a routing api on init", func() {
					Eventually(database.SaveRouteCallCount).Should(Equal(1))
					Eventually(func() models.Route { return database.SaveRouteArgsForCall(0) }).Should(Equal(route))
				})

				It("registers on an interval", func() {
					timeChan <- time.Now()

					Eventually(database.SaveRouteCallCount).Should(Equal(2))
					Eventually(func() models.Route { return database.SaveRouteArgsForCall(1) }).Should(Equal(route))
					Eventually(logger.Logs).Should(HaveLen(0))
				})
			})

			Context("when there are errors", func() {
				BeforeEach(func() {
					database.SaveRouteStub = func(route models.Route) error {
						return errors.New("beep boop, self destruct mode engaged")