instance4 := models.AppInstanceFields{} instance4.State = models.InstanceStarting defaultInstanceResponses = [][]models.AppInstanceFields{ []models.AppInstanceFields{instance1, instance2}, []models.AppInstanceFields{instance1, instance2}, []models.AppInstanceFields{instance3, instance4}, } logsForTail = []*events.LogMessage{} logRepo = new(testapi.FakeLogsNoaaRepository) logRepo.TailNoaaLogsForStub = func(appGuid string, onConnect func(), onMessage func(*events.LogMessage)) error { onConnect() for _, log := range logsForTail { onMessage(log) } return nil } }) callStart := func(args []string, config core_config.Reader, requirementsFactory *testreq.FakeReqFactory, displayApp ApplicationDisplayer, appRepo applications.ApplicationRepository, appInstancesRepo app_instances.AppInstancesRepository, logRepo api.LogsNoaaRepository) (ui *testterm.FakeUI) { ui = new(testterm.FakeUI) cmd := NewStart(ui, config, displayApp, appRepo, appInstancesRepo, logRepo) cmd.StagingTimeout = 100 * time.Millisecond cmd.StartupTimeout = 200 * time.Millisecond cmd.PingerThrottle = 50 * time.Millisecond testcmd.RunCommand(cmd, args, requirementsFactory) return
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) } return nil } }) It("shows the recent logs when the --recent flag is provided", func() { runCommand("--recent", "my-app") Expect(requirementsFactory.ApplicationName).To(Equal("my-app")) Expect(app.Guid).To(Equal(noaaRepo.RecentLogsForArgsForCall(0))) Expect(ui.Outputs).To(ContainSubstrings( []string{"Connected, dumping recent logs for app", "my-app", "my-org", "my-space", "my-user"}, []string{"Log Line 1"}, []string{"Log Line 2"}, ))