}) runCommand := func(args ...string) { testcmd.RunCommand(NewRestart(ui, config, starter, stopper), args, requirementsFactory) } Describe("requirements", func() { It("fails with usage when an app name is not given", func() { requirementsFactory.LoginSuccess = true runCommand() Expect(ui.FailedWithUsage).To(BeTrue()) }) It("fails when not logged in", func() { requirementsFactory.Application = app requirementsFactory.TargetedSpaceSuccess = true runCommand() Expect(testcmd.CommandDidPassRequirements).To(BeFalse()) }) It("fails when a space is not targeted", func() { requirementsFactory.Application = app requirementsFactory.LoginSuccess = true runCommand() Expect(testcmd.CommandDidPassRequirements).To(BeFalse()) }) }) Context("when logged in, targeting a space, and an app name is provided", func() { BeforeEach(func() { requirementsFactory.Application = app
runCommand := func() { cmd := NewListApps(ui, configRepo, appSummaryRepo) testcmd.RunCommand(cmd, []string{}, requirementsFactory) } Describe("requirements", func() { It("requires the user to be logged in", func() { requirementsFactory.LoginSuccess = false runCommand() Expect(testcmd.CommandDidPassRequirements).To(BeFalse()) }) It("requires the user to have a space targeted", func() { requirementsFactory.TargetedSpaceSuccess = false runCommand() Expect(testcmd.CommandDidPassRequirements).To(BeFalse()) }) }) Context("when the user is logged in and a space is targeted", func() { It("lists apps in a table", func() { app1Routes := []models.RouteSummary{ models.RouteSummary{ Host: "app1", Domain: models.DomainFields{ Name: "cfapps.io", }, },