Context("when there are routes in different spaces", func() { BeforeEach(func() { routeRepo.ListAllRoutesStub = func(cb func(models.Route) bool) error { space1 := models.SpaceFields{Name: "space-1"} space2 := models.SpaceFields{Name: "space-2"} domain := models.DomainFields{Name: "example.com"} domain2 := models.DomainFields{Name: "cookieclicker.co"} app1 := models.ApplicationFields{Name: "dora"} app2 := models.ApplicationFields{Name: "bora"} route := models.Route{} route.Host = "hostname-1" route.Domain = domain route.Apps = []models.ApplicationFields{app1} route.Space = space1 route.ServiceInstance = models.ServiceInstanceFields{ Name: "test-service", GUID: "service-guid", } route2 := models.Route{} route2.Host = "hostname-2" route2.Path = "/foo" route2.Domain = domain2 route2.Apps = []models.ApplicationFields{app1, app2} route2.Space = space2 cb(route)
Context("when not logged in", func() { BeforeEach(func() { requirementsFactory.LoginSuccess = false }) It("does not pass requirements", func() { Expect(runCommand("-n", "my-host", "example.com")).To(BeFalse()) }) }) Context("when logged in successfully", func() { BeforeEach(func() { requirementsFactory.LoginSuccess = true route := models.Route{Guid: "route-guid"} route.Domain = models.DomainFields{ Guid: "domain-guid", Name: "example.com", } routeRepo.FindReturns(route, nil) }) It("fails with usage when given zero args", func() { runCommand() Expect(ui.Outputs).To(ContainSubstrings( []string{"Incorrect Usage", "Requires an argument"}, )) }) It("does not fail with usage when provided with a domain", func() { runCommand("example.com") Expect(ui.FailedWithUsage).To(BeFalse()) })
requirementsFactory.TargetedSpaceSuccess = true Expect(runCommand("blahblah")).To(BeFalse()) Expect(ui.Outputs).To(ContainSubstrings( []string{"Incorrect Usage", "No argument required"}, )) }) }) Context("when there are routes", func() { BeforeEach(func() { routeRepo.ListRoutesStub = func(cb func(models.Route) bool) error { app1 := models.ApplicationFields{Name: "dora"} route := models.Route{} route.Host = "hostname-1" route.Domain = models.DomainFields{Name: "example.com"} route.Apps = []models.ApplicationFields{app1} cb(route) domain2 := models.DomainFields{Name: "cookieclicker.co"} app2 := models.ApplicationFields{Name: "bora"} route2 := models.Route{} route2.Host = "hostname-2" route2.Path = "/foo" route2.Domain = domain2 route2.Apps = []models.ApplicationFields{app1, app2} cb(route2)
_, passed := callDeleteOrphanedRoutes("y", []string{}, requirementsFactory, routeRepo) Expect(passed).To(BeTrue()) }) It("passes when confirmation is provided", func() { var ui *testterm.FakeUI domain := models.DomainFields{Name: "example.com"} domain2 := models.DomainFields{Name: "cookieclicker.co"} app1 := models.ApplicationFields{Name: "dora"} routeRepo.ListRoutesStub = func(cb func(models.Route) bool) error { route := models.Route{} route.GUID = "route1-guid" route.Host = "hostname-1" route.Domain = domain route.Apps = []models.ApplicationFields{app1} route2 := models.Route{} route2.GUID = "route2-guid" route2.Host = "hostname-2" route2.Domain = domain2 cb(route) cb(route2) return nil } ui, _ = callDeleteOrphanedRoutes("y", []string{}, requirementsFactory, routeRepo)
Describe("when pushing a new app", func() { BeforeEach(func() { appRepo.ReadReturns.Error = errors.NewModelNotFoundError("App", "the-app") zipper.ZipReturns(nil) zipper.GetZipSizeReturns(9001, nil) actor.GatherFilesReturns(nil, nil) actor.UploadAppReturns(nil) }) Context("when the default route for the app already exists", func() { BeforeEach(func() { route := models.Route{} route.Guid = "my-route-guid" route.Host = "my-new-app" route.Domain = domainRepo.ListDomainsForOrgDomains[0] routeRepo.FindByHostAndDomainReturns.Route = route }) It("binds to existing routes", func() { callPush("my-new-app") Expect(routeRepo.CreatedHost).To(BeEmpty()) Expect(routeRepo.CreatedDomainGuid).To(BeEmpty()) Expect(routeRepo.FindByHostAndDomainCalledWith.Host).To(Equal("my-new-app")) Expect(routeRepo.BoundAppGuid).To(Equal("my-new-app-guid")) Expect(routeRepo.BoundRouteGuid).To(Equal("my-route-guid")) Expect(ui.Outputs).To(ContainSubstrings( []string{"Using", "my-new-app.foo.cf-app.com"},