Context("when arguments are provided", func() { var cmd commandregistry.Command var flagContext flags.FlagContext BeforeEach(func() { cmd = &buildpack.ListBuildpacks{} cmd.SetDependency(deps, false) flagContext = flags.NewFlagContext(cmd.MetaData().Flags) }) It("should fail with usage", func() { flagContext.Parse("blahblah") reqs := cmd.Requirements(requirementsFactory, flagContext) err := testcmd.RunRequirements(reqs) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("Incorrect Usage")) Expect(err.Error()).To(ContainSubstring("No argument required")) }) }) It("fails requirements when login fails", func() { Expect(runCommand()).To(BeFalse()) }) Context("when logged in", func() { BeforeEach(func() { requirementsFactory.LoginSuccess = true })
Describe("requirements", func() { var cmd commandregistry.Command var flagContext flags.FlagContext BeforeEach(func() { cmd = &application.ListApps{} cmd.SetDependency(deps, false) flagContext = flags.NewFlagContext(cmd.MetaData().Flags) }) It("requires the user to be logged in", func() { requirementsFactory.LoginSuccess = false reqs := cmd.Requirements(requirementsFactory, flagContext) Expect(testcmd.RunRequirements(reqs)).To(HaveOccurred()) }) It("requires the user to have a space targeted", func() { requirementsFactory.TargetedSpaceSuccess = false reqs := cmd.Requirements(requirementsFactory, flagContext) Expect(testcmd.RunRequirements(reqs)).To(HaveOccurred()) }) It("should fail with usage when provided any arguments", func() { requirementsFactory.LoginSuccess = true requirementsFactory.TargetedSpaceSuccess = true flagContext.Parse("blahblah")