func testDisplayingAppSummaryWithErrorCode(errorCode string) { reqApp := models.Application{} reqApp.Name = "my-app" reqApp.Guid = "my-app-guid" domain3 := models.DomainFields{} domain3.Name = "example.com" domain4 := models.DomainFields{} domain4.Name = "example.com" route1 := models.RouteSummary{} route1.Host = "my-app" route1.Domain = domain3 route2 := models.RouteSummary{} route2.Host = "foo" route2.Domain = domain4 routes := []models.RouteSummary{ route1, route2, } app := models.ApplicationFields{} app.State = "stopped" app.InstanceCount = 2 app.RunningInstances = 0 app.Memory = 256 appSummary := models.AppSummary{} appSummary.ApplicationFields = app appSummary.RouteSummaries = routes appSummaryRepo := &testapi.FakeAppSummaryRepo{GetSummarySummary: appSummary, GetSummaryErrorCode: errorCode} appInstancesRepo := &testapi.FakeAppInstancesRepo{} reqFactory := &testreq.FakeReqFactory{LoginSuccess: true, TargetedSpaceSuccess: true, Application: reqApp} ui := callApp([]string{"my-app"}, reqFactory, appSummaryRepo, appInstancesRepo) Expect(appSummaryRepo.GetSummaryAppGuid).To(Equal("my-app-guid")) Expect(appInstancesRepo.GetInstancesAppGuid).To(Equal("my-app-guid")) testassert.SliceContains(ui.Outputs, testassert.Lines{ {"Showing health and status", "my-app", "my-org", "my-space", "my-user"}, {"state", "stopped"}, {"instances", "0/2"}, {"usage", "256M x 2 instances"}, {"urls", "my-app.example.com, foo.example.com"}, {"no running instances"}, }) }
testapi "testhelpers/api" testassert "testhelpers/assert" testcmd "testhelpers/commands" testconfig "testhelpers/configuration" testreq "testhelpers/requirements" testterm "testhelpers/terminal" ) var _ = Describe("list-apps command", func() { It("TestApps", func() { domain := models.DomainFields{} domain.Name = "cfapps.io" domain2 := models.DomainFields{} domain2.Name = "example.com" route1 := models.RouteSummary{} route1.Host = "app1" route1.Domain = domain route2 := models.RouteSummary{} route2.Host = "app1" route2.Domain = domain2 app1Routes := []models.RouteSummary{route1, route2} domain3 := models.DomainFields{} domain3.Name = "cfapps.io" route3 := models.RouteSummary{} route3.Host = "app2" route3.Domain = domain3
Expect(appBitsRepo.UploadedAppGuid).To(Equal(existingApp.Guid)) }) It("does not stop the app when it is already stopped", func() { stoppedApp := maker.NewApp(maker.Overrides{"state": "stopped", "name": "stopped-app"}) appRepo.ReadApp = stoppedApp appRepo.UpdateAppResult = stoppedApp callPush("stopped-app") Expect(stopper.AppToStop.Guid).To(Equal("")) }) It("updates the app if it already exists", func() { existingRoute := models.RouteSummary{} existingRoute.Host = "existing-app" existingApp := models.Application{} existingApp.Name = "existing-app" existingApp.Guid = "existing-app-guid" existingApp.Routes = []models.RouteSummary{existingRoute} appRepo.ReadApp = existingApp stack := models.Stack{} stack.Name = "differentStack" stack.Guid = "differentStack-guid" stackRepo.FindByNameStack = stack callPush(
Expect(stopper.AppToStop.Guid).To(Equal(existingApp.Guid)) Expect(appBitsRepo.UploadedAppGuid).To(Equal(existingApp.Guid)) }) It("does not stop the app when it is already stopped", func() { existingApp.State = "stopped" appRepo.ReadReturns.App = existingApp appRepo.UpdateAppResult = existingApp callPush("existing-app") Expect(stopper.AppToStop.Guid).To(Equal("")) }) It("updates the app", func() { existingRoute := models.RouteSummary{} existingRoute.Host = "existing-app" existingApp.Routes = []models.RouteSummary{existingRoute} appRepo.ReadReturns.App = existingApp appRepo.UpdateAppResult = existingApp stackRepo.FindByNameStack = models.Stack{ Name: "differentStack", Guid: "differentStack-guid", } callPush( "-c", "different start command", "-i", "10", "-m", "1G",
var ( defaultAppForStart = models.Application{} defaultInstanceReponses = [][]models.AppInstanceFields{} defaultInstanceErrorCodes = []string{"", ""} defaultStartTimeout = 50 * time.Millisecond ) BeforeEach(func() { defaultAppForStart.Name = "my-app" defaultAppForStart.Guid = "my-app-guid" defaultAppForStart.InstanceCount = 2 domain := models.DomainFields{} domain.Name = "example.com" route := models.RouteSummary{} route.Host = "my-app" route.Domain = domain defaultAppForStart.Routes = []models.RouteSummary{route} instance1 := models.AppInstanceFields{} instance1.State = models.InstanceStarting instance2 := models.AppInstanceFields{} instance2.State = models.InstanceStarting instance3 := models.AppInstanceFields{} instance3.State = models.InstanceRunning instance4 := models.AppInstanceFields{}
It("does not prompt when the -f flag is provided", func() { runCommand("-f", "app-to-delete") Expect(appRepo.ReadArgs.Name).To(Equal("app-to-delete")) Expect(appRepo.DeletedAppGuid).To(Equal("app-to-delete-guid")) Expect(ui.Prompts).To(BeEmpty()) testassert.SliceContains(ui.Outputs, testassert.Lines{ {"Deleting", "app-to-delete"}, {"OK"}, }) }) Describe("mapped routes", func() { BeforeEach(func() { route1 := models.RouteSummary{} route1.Guid = "the-first-route-guid" route1.Host = "my-app-is-good.com" route2 := models.RouteSummary{} route2.Guid = "the-second-route-guid" route2.Host = "my-app-is-bad.com" appRepo.ReadReturns.App = models.Application{ Routes: []models.RouteSummary{route1, route2}, } }) Context("when the -r flag is provided", func() { Context("when deleting routes succeeds", func() { It("deletes the app's routes", func() {
It("requires an app name", func() { appSummaryRepo := &testapi.FakeAppSummaryRepo{} appInstancesRepo := &testapi.FakeAppInstancesRepo{} reqFactory := &testreq.FakeReqFactory{LoginSuccess: true, TargetedSpaceSuccess: true, Application: models.Application{}} ui := callApp([]string{}, reqFactory, appSummaryRepo, appInstancesRepo) Expect(ui.FailedWithUsage).To(BeTrue()) Expect(testcmd.CommandDidPassRequirements).To(BeFalse()) }) It("displays a summary of the app", func() { reqApp := models.Application{} reqApp.Name = "my-app" reqApp.Guid = "my-app-guid" route1 := models.RouteSummary{} route1.Host = "my-app" domain := models.DomainFields{} domain.Name = "example.com" route1.Domain = domain route2 := models.RouteSummary{} route2.Host = "foo" domain2 := models.DomainFields{} domain2.Name = "example.com" route2.Domain = domain2 appSummary := models.AppSummary{} appSummary.State = "started" appSummary.InstanceCount = 2