Expect(ui.Outputs).To(ContainSubstrings( []string{"Deleting user", "user-name", "admin-user"}, []string{"OK"}, )) Expect(userRepo.FindByUsernameArgsForCall(0)).To(Equal("user-name")) Expect(userRepo.DeleteArgsForCall(0)).To(Equal("user-guid")) }) It("does not delete the user when no confirmation is given", func() { ui.Inputs = []string{"nope"} runCommand("user") Expect(ui.Prompts).To(ContainSubstrings([]string{"Really delete"})) Expect(userRepo.FindByUsernameCallCount()).To(BeZero()) Expect(userRepo.DeleteCallCount()).To(BeZero()) }) It("deletes without confirmation when the -f flag is given", func() { ui.Inputs = []string{} runCommand("-f", "user-name") Expect(ui.Outputs).To(ContainSubstrings( []string{"Deleting user", "user-name"}, []string{"OK"}, )) Expect(userRepo.FindByUsernameArgsForCall(0)).To(Equal("user-name")) Expect(userRepo.DeleteArgsForCall(0)).To(Equal("user-guid")) })
) BeforeEach(func() { ui = new(testterm.FakeUI) userRepo = &fakeapi.FakeUserRepository{} }) Describe("Execute", func() { Context("when wantGuid is true", func() { BeforeEach(func() { userRequirement = requirements.NewUserRequirement("the-username", ui, userRepo, true) }) It("tries to find the user in CC", func() { userRequirement.Execute() Expect(userRepo.FindByUsernameCallCount()).To(Equal(1)) Expect(userRepo.FindByUsernameArgsForCall(0)).To(Equal("the-username")) }) Context("when the call to find the user succeeds", func() { var user models.UserFields BeforeEach(func() { user = models.UserFields{Username: "******", Guid: "the-guid"} userRepo.FindByUsernameReturns(user, nil) }) It("stores the user that was found", func() { userRequirement.Execute() Expect(userRequirement.GetUser()).To(Equal(user)) })