Context("when the user does not provide two args", func() { It("fails with usage", func() { runCommand() Expect(ui.FailedWithUsage).To(BeTrue()) }) }) Context("when the user provides an app and a domain", func() { BeforeEach(func() { requirementsFactory.Application = models.Application{ApplicationFields: models.ApplicationFields{ Guid: "my-app-guid", Name: "my-app", }} requirementsFactory.Domain = models.DomainFields{ Guid: "my-domain-guid", Name: "example.com", } routeRepo.FindByHostAndDomainReturns.Route = models.Route{ Domain: requirementsFactory.Domain, Guid: "my-route-guid", Host: "foo", } runCommand("-n", "my-host", "my-app", "my-domain.com") }) It("passes requirements", func() { Expect(testcmd.CommandDidPassRequirements).To(BeTrue()) }) It("reads the app and domain from its requirements", func() {
Expect(testcmd.CommandDidPassRequirements).To(BeFalse()) }) }) Context("when the user is logged in", func() { BeforeEach(func() { domain := models.DomainFields{Guid: "my-domain-guid", Name: "example.com"} route := models.Route{Guid: "my-route-guid", Host: "foo", Domain: domain} app := models.Application{} app.Guid = "my-app-guid" app.Name = "my-app" requirementsFactory.LoginSuccess = true requirementsFactory.Application = app requirementsFactory.Domain = domain routeCreator.ReservedRoute = route }) It("maps a route, obviously", func() { runCommand("-n", "my-host", "my-app", "my-domain.com") Expect(ui.Outputs).To(ContainSubstrings( []string{"Adding route", "foo.example.com", "my-app", "my-org", "my-space", "my-user"}, []string{"OK"}, )) Expect(routeRepo.BoundRouteGuid).To(Equal("my-route-guid")) Expect(routeRepo.BoundAppGuid).To(Equal("my-app-guid")) Expect(testcmd.CommandDidPassRequirements).To(BeTrue()) Expect(requirementsFactory.ApplicationName).To(Equal("my-app"))