Describe("Passing requirements", func() { BeforeEach(func() { requirementsFactory.NewUsageRequirementReturns(requirements.Passing{}) requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) requirementsFactory.NewTargetedSpaceRequirementReturns(requirements.Passing{}) }) Context("refreshing the auth token", func() { It("makes a call for the app token", func() { runCommand("source-app", "target-app") Expect(authRepo.RefreshAuthTokenCallCount()).To(Equal(1)) }) Context("when refreshing the auth token fails", func() { BeforeEach(func() { authRepo.RefreshAuthTokenReturns("", errors.New("I accidentally the UAA")) }) It("it displays an error", func() { runCommand("source-app", "target-app") Expect(ui.Outputs()).To(ContainSubstrings( []string{"FAILED"}, []string{"accidentally the UAA"}, )) }) }) Describe("when retrieving the app token succeeds", func() { var ( sourceApp, targetApp models.Application )
actor.FilterBrokersReturns([]models.ServiceBroker{ serviceBroker1, serviceBroker2, }, nil, ) }) It("refreshes the auth token", func() { runCommand() Expect(authRepo.RefreshAuthTokenCallCount()).To(Equal(1)) }) Context("when refreshing the auth token fails", func() { It("fails and returns the error", func() { authRepo.RefreshAuthTokenReturns("", errors.New("Refreshing went wrong")) runCommand() Expect(ui.Outputs()).To(ContainSubstrings( []string{"Refreshing went wrong"}, []string{"FAILED"}, )) }) }) Context("When no flags are provided", func() { It("tells the user it is obtaining the service access", func() { runCommand() Expect(ui.Outputs()).To(ContainSubstrings( []string{"Getting service access as", "my-user"}, ))
serviceName = "service" servicePlanName = "service-plan" publicServicePlanName = "public-service-plan" privateServicePlanName = "private-service-plan" orgName = "my-org" }) It("Refreshes the auth token", func() { runCommand([]string{serviceName}) Expect(tokenRefresher.RefreshAuthTokenCallCount()).To(Equal(1)) }) Context("when refreshing the auth token fails", func() { It("fails and returns the error", func() { tokenRefresher.RefreshAuthTokenReturns("", errors.New("Refreshing went wrong")) runCommand([]string{serviceName}) Expect(ui.Outputs()).To(ContainSubstrings( []string{"Refreshing went wrong"}, []string{"FAILED"}, )) }) }) Context("when the named service exists", func() { It("returns OK when ran successfully", func() { Expect(runCommand([]string{serviceName})).To(BeTrue()) Expect(ui.Outputs()).To(ContainSubstrings( []string{"OK"}, ))
pingCli(rpcService.Port()) }) It("refreshes the token", func() { client, err = rpc.Dial("tcp", "127.0.0.1:"+rpcService.Port()) Expect(err).ToNot(HaveOccurred()) var result string err = client.Call("CliRpcCmd.AccessToken", "", &result) Expect(err).ToNot(HaveOccurred()) Expect(authRepo.RefreshAuthTokenCallCount()).To(Equal(1)) }) It("returns the access token", func() { authRepo.RefreshAuthTokenReturns("fake-access-token", nil) client, err = rpc.Dial("tcp", "127.0.0.1:"+rpcService.Port()) Expect(err).ToNot(HaveOccurred()) var result string err = client.Call("CliRpcCmd.AccessToken", "", &result) Expect(err).ToNot(HaveOccurred()) Expect(result).To(Equal("fake-access-token")) }) It("returns the error from refreshing the access token", func() { authRepo.RefreshAuthTokenReturns("", errors.New("refresh error")) client, err = rpc.Dial("tcp", "127.0.0.1:"+rpcService.Port()) Expect(err).ToNot(HaveOccurred())
} Describe("requirements", func() { It("fails when the user is not logged in", func() { requirementsFactory.NewLoginRequirementReturns(requirements.Failing{Message: "not logged in"}) Expect(runCommand()).ToNot(HavePassedRequirements()) }) }) Describe("when logged in", func() { BeforeEach(func() { requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) }) It("fails if oauth refresh fails", func() { authRepo.RefreshAuthTokenReturns("", errors.New("Could not refresh")) runCommand() Expect(ui.Outputs()).To(ContainSubstrings( []string{"FAILED"}, []string{"Could not refresh"}, )) }) It("returns to the user the oauth token after a refresh", func() { authRepo.RefreshAuthTokenReturns("1234567890", nil) runCommand() Expect(ui.Outputs()).To(ContainSubstrings( []string{"1234567890"}, ))
BeforeEach(func() { endpointRepo.GetCCInfoReturns( ccInfo, "updated-endpoint", nil, ) }) It("tries to refresh the auth token", func() { Expect(runCLIerr).NotTo(HaveOccurred()) Expect(authRepo.RefreshAuthTokenCallCount()).To(Equal(1)) }) Context("when refreshing the token fails with an error", func() { BeforeEach(func() { authRepo.RefreshAuthTokenReturns("", errors.New("auth-error")) }) It("fails with error", func() { Expect(runCLIerr).To(HaveOccurred()) Expect(runCLIerr.Error()).To(Equal("Error refreshing oauth token: auth-error")) }) }) Context("when refreshing the token succeeds", func() { BeforeEach(func() { authRepo.RefreshAuthTokenReturns("auth-token", nil) }) It("tries to get the ssh-code", func() { Expect(runCLIerr).NotTo(HaveOccurred())