}) It("fails when not logged in", func() { runCommand("just", "enough", "args") Expect(testcmd.CommandDidPassRequirements).To(BeFalse()) }) }) Context("when logged in", func() { BeforeEach(func() { requirementsFactory.LoginSuccess = true }) It("creates a service auth token, obviously", func() { runCommand("a label", "a provider", "a value") Expect(ui.Outputs).To(ContainSubstrings( []string{"Creating service auth token as", "my-user"}, []string{"OK"}, )) authToken := models.ServiceAuthTokenFields{} authToken.Label = "a label" authToken.Provider = "a provider" authToken.Token = "a value" Expect(authTokenRepo.CreatedServiceAuthTokenFields).To(Equal(authToken)) }) }) })
It("fails with usage when not provided exactly three args", func() { requirementsFactory.LoginSuccess = true runCommand("some-token-label", "a-provider") Expect(ui.FailedWithUsage).To(BeTrue()) }) It("fails when not logged in", func() { runCommand("label", "provider", "token") Expect(testcmd.CommandDidPassRequirements).To(BeFalse()) }) }) Context("when logged in and the service auth token exists", func() { BeforeEach(func() { requirementsFactory.LoginSuccess = true foundAuthToken := models.ServiceAuthTokenFields{} foundAuthToken.Guid = "found-auth-token-guid" foundAuthToken.Label = "found label" foundAuthToken.Provider = "found provider" authTokenRepo.FindByLabelAndProviderServiceAuthTokenFields = foundAuthToken }) It("updates the service auth token with the provided args", func() { runCommand("a label", "a provider", "a value") expectedAuthToken := models.ServiceAuthTokenFields{} expectedAuthToken.Guid = "found-auth-token-guid" expectedAuthToken.Label = "found label" expectedAuthToken.Provider = "found provider" expectedAuthToken.Token = "a value"