Expect(ui.Outputs).To(ContainSubstrings( []string{"To upgrade your CLI"}, []string{"5.0.0"}, )) }) 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(repo.GetLoginPromptsWasCalled).To(BeTrue()) }) Describe("when authentication fails", func() { BeforeEach(func() { repo.AuthError = true 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())
ui.Inputs = []string{"api.example.com", "the-username", "the-account-number", "the-pin"} testcmd.RunCliCommand("login", Flags, nil, updateCommandDependency, false) Expect(ui.PasswordPrompts).ToNot(ContainSubstrings([]string{"Your Password"})) Expect(authRepo.AuthenticateArgs.Credentials).To(Equal([]map[string]string{ { "account_number": "the-account-number", "username": "******", "password": "******", }, })) }) It("tries 3 times for the password-type prompts", func() { authRepo.AuthError = true ui.Inputs = []string{"api.example.com", "the-username", "the-account-number", "the-password-1", "the-password-2", "the-password-3"} testcmd.RunCliCommand("login", Flags, nil, updateCommandDependency, false) Expect(authRepo.AuthenticateArgs.Credentials).To(Equal([]map[string]string{ { "username": "******", "account_number": "the-account-number", "password": "******", }, { "username": "******", "account_number": "the-account-number", "password": "******",