It("warns the user when the app is already running", func() { app := models.Application{} app.Name = "my-app" app.Guid = "my-app-guid" app.State = "started" appRepo := &testApplication.FakeApplicationRepository{} appRepo.ReadReturns(app, nil) requirementsFactory.Application = app args := []string{"my-app"} callStart(args) Expect(ui.Outputs).To(ContainSubstrings([]string{"my-app", "is already started"})) Expect(appRepo.UpdateCallCount()).To(BeZero()) }) It("tells the user when connecting to the log server fails", func() { appRepo = &testApplication.FakeApplicationRepository{} appRepo.ReadReturns(defaultAppForStart, nil) appInstancesRepo = &testAppInstanaces.FakeAppInstancesRepository{} logRepo.TailLogsForReturns(errors.New("Ooops")) requirementsFactory.Application = defaultAppForStart callStart([]string{"my-app"}) Expect(ui.Outputs).To(ContainSubstrings( []string{"error tailing logs"},
Context("Updating enable_ssh when not already set to false", func() { Context("Update successfully", func() { BeforeEach(func() { app = models.Application{} app.Name = "my-app" app.Guid = "my-app-guid" app.EnableSsh = false appRepo.UpdateReturns(app, nil) }) It("updates the app's enable_ssh", func() { runCommand("my-app") Ω(appRepo.UpdateCallCount()).To(Equal(1)) appGUID, params := appRepo.UpdateArgsForCall(0) Expect(appGUID).To(Equal("my-app-guid")) Ω(*params.EnableSsh).To(BeFalse()) Ω(ui.Outputs).To(ContainSubstrings([]string{"Disabling ssh support for 'my-app'"})) Ω(ui.Outputs).To(ContainSubstrings([]string{"OK"})) }) }) Context("Update fails", func() { It("notifies user of any api error", func() { appRepo.UpdateReturns(models.Application{}, errors.New("Error updating app.")) runCommand("my-app") Ω(appRepo.UpdateCallCount()).To(Equal(1)) Ω(ui.Outputs).To(ContainSubstrings(