It("fails the authentication", func() { Expect(authErr).To(MatchError("Invalid credentials")) }) }) }) Context("when authentication is successful", func() { BeforeEach(func() { metadata.UserReturns("diego:some-guid/0") password = []byte("receptor-user:receptor-password") }) It("gets information about the desired lrp referenced in the username", func() { Expect(receptorClient.GetDesiredLRPCallCount()).To(Equal(1)) Expect(receptorClient.GetDesiredLRPArgsForCall(0)).To(Equal("some-guid")) }) It("gets information about the the actual lrp from the username", func() { Expect(receptorClient.ActualLRPByProcessGuidAndIndexCallCount()).To(Equal(1)) guid, index := receptorClient.ActualLRPByProcessGuidAndIndexArgsForCall(0) Expect(guid).To(Equal("some-guid")) Expect(index).To(Equal(0)) }) It("saves container information in the critical options of the permissions", func() { expectedConfig := `{ "address": "1.2.3.4:3333", "host_fingerprint": "host-fingerprint", "private_key": "pem-encoded-key",
instanceTwo := appInfo.ActualInstances[2] Expect(instanceTwo.Index).To(Equal(2)) Expect(instanceTwo.Ports).To(BeEmpty()) Expect(instanceTwo.State).To(Equal("UNCLAIMED")) Expect(instanceTwo.PlacementError).To(Equal("not enough resources. eek.")) Expect(instanceTwo.HasMetrics).To(BeFalse()) instanceThree := appInfo.ActualInstances[3] Expect(instanceThree.Index).To(Equal(3)) Expect(instanceThree.Ports).To(BeEmpty()) Expect(instanceThree.State).To(Equal("CRASHED")) Expect(instanceThree.CrashCount).To(Equal(7)) Expect(instanceThree.HasMetrics).To(BeFalse()) Expect(fakeReceptorClient.GetDesiredLRPCallCount()).To(Equal(1)) Expect(fakeReceptorClient.GetDesiredLRPArgsForCall(0)).To(Equal("peekaboo-app")) Expect(fakeReceptorClient.ActualLRPsByProcessGuidCallCount()).To(Equal(1)) Expect(fakeReceptorClient.ActualLRPsByProcessGuidArgsForCall(0)).To(Equal("peekaboo-app")) Expect(fakeNoaaConsumer.GetContainerMetricsCallCount()).To(Equal(1)) appGuid, token := fakeNoaaConsumer.GetContainerMetricsArgsForCall(0) Expect(appGuid).To(Equal("peekaboo-app")) Expect(token).To(BeEmpty()) }) Describe("Monitors", func() { It("returns AppInfo Monitor for a port monitor", func() { getDesiredLRPResponse.Monitor = models.WrapAction(&models.RunAction{ Path: "/tmp/healthcheck", Args: []string{
It("fails to authenticate", func() { Expect(err).To(Equal(authenticators.InvalidDomainErr)) }) }) }) Context("when a client has valid username and password", func() { It("fetches the app from CC using the bearer token", func() { Expect(err).NotTo(HaveOccurred()) Expect(fakeCC.ReceivedRequests()).To(HaveLen(1)) }) It("gets information about the desired lrp referenced in the username", func() { Expect(receptorClient.GetDesiredLRPCallCount()).To(Equal(1)) Expect(receptorClient.GetDesiredLRPArgsForCall(0)).To(Equal("app-guid-app-version")) }) It("gets information about the the actual lrp from the username", func() { Expect(receptorClient.ActualLRPByProcessGuidAndIndexCallCount()).To(Equal(1)) guid, index := receptorClient.ActualLRPByProcessGuidAndIndexArgsForCall(0) Expect(guid).To(Equal("app-guid-app-version")) Expect(index).To(Equal(1)) }) It("saves container information in the critical options of the permissions", func() { expectedConfig := `{ "address": "1.2.3.4:3333", "host_fingerprint": "host-fingerprint", "private_key": "pem-encoded-key",