}) Describe("ssh", func() { var ( currentApp models.Application ) BeforeEach(func() { requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) requirementsFactory.NewTargetedSpaceRequirementReturns(requirements.Passing{}) currentApp = models.Application{} currentApp.Name = "my-app" currentApp.State = "started" currentApp.GUID = "my-app-guid" currentApp.EnableSSH = true currentApp.Diego = true applicationReq := new(requirementsfakes.FakeApplicationRequirement) applicationReq.GetApplicationReturns(currentApp) requirementsFactory.NewApplicationRequirementReturns(applicationReq) }) Describe("Error getting required info to run ssh", func() { var ( testServer *httptest.Server handler *testnet.TestHandler ) AfterEach(func() { testServer.Close() })
appRepo.ReadReturns(app, nil) req.Execute() }) It("returns the application", func() { Expect(req.GetApplication().GUID).To(Equal("fake-app-guid")) }) }) }) Describe("Execute", func() { Context("when the returned application is a Diego application", func() { BeforeEach(func() { app := models.Application{} app.Diego = true appRepo.ReadReturns(app, nil) }) It("fails with error", func() { err := req.Execute() Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("The app is running on the Diego backend, which does not support this command.")) }) }) Context("when the returned application is not a Diego application", func() { BeforeEach(func() { app := models.Application{} app.Diego = false appRepo.ReadReturns(app, nil)
BeforeEach(func() { opts = &options.SSHOptions{ AppName: "app-1", } }) JustBeforeEach(func() { connectErr = secureShell.Connect(opts) }) Context("when the app model and endpoint info are successfully acquired", func() { BeforeEach(func() { token = "" currentApp.State = "STARTED" currentApp.Diego = true }) Context("when the app is not in the 'STARTED' state", func() { BeforeEach(func() { currentApp.State = "STOPPED" currentApp.Diego = true }) It("returns an error", func() { Expect(connectErr).To(MatchError(MatchRegexp("Application.*not in the STARTED state"))) }) }) Context("when the app is not a Diego app", func() { BeforeEach(func() {