testcmd.RunCliCommandWithoutDependency("start", args, requirementsFactory) return } startAppWithInstancesAndErrors := func(displayApp ApplicationDisplayer, app models.Application, requirementsFactory *testreq.FakeReqFactory) (*testterm.FakeUI, *testApplication.FakeApplicationRepository, *testAppInstanaces.FakeAppInstancesRepository) { appRepo = &testApplication.FakeApplicationRepository{ UpdateAppResult: app, } appRepo.ReadReturns.App = app appRepo.GetAppReturns(app, nil) appInstancesRepo = &testAppInstanaces.FakeAppInstancesRepository{} appInstancesRepo.GetInstancesStub = getInstance logsForTail = []*events.LogMessage{ testlogs.NewNoaaLogMessage("Log Line 1", app.Guid, LogMessageTypeStaging, time.Now()), testlogs.NewNoaaLogMessage("Log Line 2", app.Guid, LogMessageTypeStaging, time.Now()), } args := []string{"my-app"} requirementsFactory.Application = app callStart(args) return ui, appRepo, appInstancesRepo } It("fails requirements when not logged in", func() { requirementsFactory.LoginSuccess = false Expect(callStart([]string{"some-app-name"})).To(BeFalse()) })
Context("when logged in", func() { var ( app models.Application ) BeforeEach(func() { requirementsFactory.LoginSuccess = true requirementsFactory.TargetedSpaceSuccess = true app = models.Application{} app.Name = "my-app" app.Guid = "my-app-guid" currentTime := time.Now() recentLogs := []*events.LogMessage{ testlogs.NewNoaaLogMessage("Log Line 1", app.Guid, "DEA", currentTime), testlogs.NewNoaaLogMessage("Log Line 2", app.Guid, "DEA", currentTime), } appLogs := []*events.LogMessage{ testlogs.NewLogMessage("Log Line 1", app.Guid, "DEA", time.Now()), } requirementsFactory.Application = app noaaRepo.RecentLogsForReturns(recentLogs, nil) noaaRepo.TailNoaaLogsForStub = func(appGuid string, onConnect func(), onMessage func(*events.LogMessage)) error { onConnect() for _, log := range appLogs { onMessage(log) }