Expect(ui.Outputs).To(ContainSubstrings( []string{"Select an org"}, []string{"1. some-org"}, []string{"2. my-new-org"}, []string{"Select a space"}, []string{"1. my-space"}, []string{"2. some-space"}, )) Expect(Config.OrganizationFields().GUID).To(Equal("my-new-org-guid")) Expect(Config.SpaceFields().GUID).To(Equal("my-space-guid")) Expect(Config.AccessToken()).To(Equal("my_access_token")) Expect(Config.RefreshToken()).To(Equal("my_refresh_token")) Expect(Config.APIEndpoint()).To(Equal("api.example.com")) Expect(Config.APIVersion()).To(Equal("some-version")) Expect(Config.AuthenticationEndpoint()).To(Equal("auth/endpoint")) Expect(Config.SSHOAuthClient()).To(Equal("some-client")) Expect(Config.MinCLIVersion()).To(Equal("1.0.0")) Expect(Config.MinRecommendedCLIVersion()).To(Equal("1.0.0")) Expect(Config.LoggregatorEndpoint()).To(Equal("loggregator/endpoint")) Expect(Config.DopplerEndpoint()).To(Equal("doppler/endpoint")) Expect(Config.RoutingAPIEndpoint()).To(Equal("routing/endpoint")) Expect(endpointRepo.GetCCInfoCallCount()).To(Equal(1)) Expect(endpointRepo.GetCCInfoArgsForCall(0)).To(Equal("api.example.com")) Expect(orgRepo.FindByNameArgsForCall(0)).To(Equal("my-new-org")) Expect(spaceRepo.FindByNameArgsForCall(0)).To(Equal("my-space"))
It("gets the UAA endpoint and saves it to the config file", func() { requirementsFactory.APIEndpointSuccess = true testcmd.RunCLICommand("auth", []string{"*****@*****.**", "password"}, requirementsFactory, updateCommandDependency, false) Expect(authRepo.GetLoginPromptsAndSaveUAAServerURLCallCount()).To(Equal(1)) }) Describe("when authentication fails", func() { BeforeEach(func() { authRepo.AuthenticateReturns(errors.New("Error authenticating.")) testcmd.RunCLICommand("auth", []string{"username", "password"}, requirementsFactory, updateCommandDependency, false) }) It("does not prompt the user when provided username and password", func() { Expect(ui.Outputs).To(ContainSubstrings( []string{config.APIEndpoint()}, []string{"Authenticating..."}, []string{"FAILED"}, []string{"Error authenticating"}, )) }) It("clears the user's session", func() { Expect(config.AccessToken()).To(BeEmpty()) Expect(config.RefreshToken()).To(BeEmpty()) Expect(config.SpaceFields()).To(Equal(models.SpaceFields{})) Expect(config.OrganizationFields()).To(Equal(models.OrganizationFields{})) }) }) }) })
callApi([]string{}) Expect(ui.Outputs()).To(ContainSubstrings([]string{"https://api.run.pivotal.io", "2.0"})) Expect(config.IsSSLDisabled()).To(BeTrue()) }) Context("when the --unset flag is passed", func() { It("unsets the APIEndpoint", func() { callApi([]string{"--unset"}) Expect(ui.Outputs()).To(ContainSubstrings( []string{"Unsetting api endpoint..."}, []string{"OK"}, []string{"No api endpoint set."}, )) Expect(config.APIEndpoint()).To(Equal("")) }) }) }) Context("when the endpoint is not set in the config", func() { It("prompts the user to set an endpoint", func() { callApi([]string{}) Expect(ui.Outputs()).To(ContainSubstrings( []string{"No api endpoint set", fmt.Sprintf("Use '%s api' to set an endpoint", cf.Name)}, )) }) }) })
persistor.SaveStub = func(configuration.DataInterface) error { close(beginSaveCh) <-performSaveCh close(finishSaveCh) return nil } go func() { config.SetAPIEndpoint("foo") }() <-beginSaveCh go func() { config.APIEndpoint() close(finishReadCh) }() Consistently(finishSaveCh).ShouldNot(BeClosed()) Consistently(finishReadCh).ShouldNot(BeClosed()) performSaveCh <- struct{}{} Eventually(finishReadCh).Should(BeClosed()) }) It("has acccessor methods for all config fields", func() { config.SetAPIEndpoint("http://api.the-endpoint") Expect(config.APIEndpoint()).To(Equal("http://api.the-endpoint"))