Expect(runCommand("whatever", "shuttup")).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() { passed := runCommand("-n", "my-host", "my-app", "my-domain.com") Expect(passed).To(BeTrue()) Expect(routeRepo.BindCallCount()).To(Equal(1)) boundRouteGUID, boundAppGUID := routeRepo.BindArgsForCall(0) Expect(boundRouteGUID).To(Equal("my-route-guid")) Expect(boundAppGUID).To(Equal("my-app-guid")) Expect(requirementsFactory.ApplicationName).To(Equal("my-app")) Expect(requirementsFactory.DomainName).To(Equal("my-domain.com"))
It("fails with usage when not provided two args", func() { requirementsFactory.LoginSuccess = true requirementsFactory.TargetedOrgSuccess = true runCommand("my-space") Expect(ui.FailedWithUsage).To(BeTrue()) }) }) Context("when logged in, targeted a space and given a domain that exists", func() { BeforeEach(func() { requirementsFactory.LoginSuccess = true requirementsFactory.TargetedOrgSuccess = true requirementsFactory.Domain = models.DomainFields{ Guid: "domain-guid", Name: "example.com", } requirementsFactory.Space = models.Space{SpaceFields: models.SpaceFields{ Guid: "my-space-guid", Name: "my-space", }} }) It("creates routes, obviously", func() { runCommand("-n", "host", "my-space", "example.com") Expect(ui.Outputs).To(ContainSubstrings( []string{"Creating route", "host.example.com", "my-org", "my-space", "my-user"}, []string{"OK"}, ))