It("skips confirmation", func() { runCommand("-f", "foo.com") Expect(domainRepo.DeleteDomainGuid).To(Equal("foo-guid")) Expect(ui.Prompts).To(BeEmpty()) Expect(ui.Outputs).To(ContainSubstrings( []string{"Deleting domain", "foo.com"}, []string{"OK"}, )) }) }) }) Context("when a domain with the given name doesn't exist", func() { BeforeEach(func() { domainRepo.FindByNameInOrgApiResponse = errors.NewModelNotFoundError("Domain", "foo.com") }) It("fails", func() { runCommand("foo.com") Expect(domainRepo.DeleteDomainGuid).To(Equal("")) Expect(ui.Outputs).To(ContainSubstrings( []string{"OK"}, []string{"foo.com", "not found"}, )) }) }) Context("when there is an error finding the domain", func() {
It("prints out route does not exist", func() { runCommand("non-existent-route", "example.com") Expect(ui.Outputs).To(ContainSubstrings( []string{"Checking for route..."}, []string{"OK"}, []string{"Route non-existent-route.example.com does not exist"}, )) }) }) Context("when finding the domain returns an error", func() { BeforeEach(func() { requirementsFactory.LoginSuccess = true requirementsFactory.TargetedOrgSuccess = true domainRepo.FindByNameInOrgApiResponse = errors.New("Domain not found") }) It("prints out route does not exist", func() { runCommand("some-silly-route", "some-non-real-domain") Expect(ui.Outputs).To(ContainSubstrings( []string{"Checking for route..."}, []string{"FAILED"}, []string{"Domain not found"}, )) }) }) Context("when checking if the route exists returns an error", func() { BeforeEach(func() { requirementsFactory.LoginSuccess = true
requirementsFactory.LoginSuccess = true requirementsFactory.TargetedOrgSuccess = true domainRepo.FindByNameInOrgDomain = models.DomainFields{ Name: "foo.com", Guid: "foo-guid", Shared: true, } }) Describe("and the command is invoked interactively", func() { BeforeEach(func() { ui.Inputs = []string{"y"} }) It("when the domain is not found it tells the user", func() { domainRepo.FindByNameInOrgApiResponse = errors.NewModelNotFoundError("Domain", "foo.com") RunCommand("foo.com") Expect(ui.Outputs).To(ContainSubstrings( []string{"Deleting domain", "foo.com"}, []string{"OK"}, []string{"foo.com", "not found"}, )) }) It("fails when the api returns an error", func() { domainRepo.FindByNameInOrgApiResponse = errors.New("couldn't find the droids you're lookin for") RunCommand("foo.com") Expect(ui.Outputs).To(ContainSubstrings( []string{"Deleting domain", "foo.com"},