It("checks for routing.router_groups.read scope", func() { var err error request, err = http.NewRequest("GET", routing_api.ListRouterGroups, nil) Expect(err).NotTo(HaveOccurred()) routerGroupHandler.ListRouterGroups(responseRecorder, request) _, permission := fakeClient.DecodeTokenArgsForCall(0) Expect(permission).To(ConsistOf(handlers.RouterGroupsReadScope)) }) Context("when authorization token is invalid", func() { var ( currentCount int64 ) BeforeEach(func() { currentCount = metrics.GetTokenErrors() fakeClient.DecodeTokenReturns(errors.New("kaboom")) }) It("returns Unauthorized error", func() { var err error request, err = http.NewRequest("GET", routing_api.ListRouterGroups, nil) Expect(err).NotTo(HaveOccurred()) routerGroupHandler.ListRouterGroups(responseRecorder, request) Expect(responseRecorder.Code).To(Equal(http.StatusUnauthorized)) Expect(metrics.GetTokenErrors()).To(Equal(currentCount + 1)) }) }) }) })
It("checks for routing.routes.read scope", func() { request = handlers.NewTestRequest("") routesHandler.List(responseRecorder, request) _, permission := fakeClient.DecodeTokenArgsForCall(0) Expect(permission).To(ConsistOf(handlers.RoutingRoutesReadScope)) }) Context("when the UAA token is not valid", func() { var ( currentCount int64 ) BeforeEach(func() { currentCount = metrics.GetTokenErrors() fakeClient.DecodeTokenReturns(errors.New("Not valid")) }) It("returns an Unauthorized status code", func() { request = handlers.NewTestRequest("") routesHandler.List(responseRecorder, request) Expect(responseRecorder.Code).To(Equal(http.StatusUnauthorized)) Expect(metrics.GetTokenErrors()).To(Equal(currentCount + 1)) }) }) Context("when the database is empty", func() { var ( routes []models.Route )