It("does not fail with usage when provided a hostname", func() { runCommand("-n", "my-host", "example.com") Expect(ui.FailedWithUsage).To(BeFalse()) }) It("deletes routes when the user confirms", func() { runCommand("-n", "my-host", "example.com") Expect(ui.Prompts).To(ContainSubstrings([]string{"Really delete the route my-host"})) Expect(ui.Outputs).To(ContainSubstrings( []string{"Deleting route", "my-host.example.com"}, []string{"OK"}, )) Expect(routeRepo.DeleteCallCount()).To(Equal(1)) Expect(routeRepo.DeleteArgsForCall(0)).To(Equal("route-guid")) }) It("does not prompt the user to confirm when they pass the '-f' flag", func() { ui.Inputs = []string{} runCommand("-f", "-n", "my-host", "example.com") Expect(ui.Prompts).To(BeEmpty()) Expect(ui.Outputs).To(ContainSubstrings( []string{"Deleting", "my-host.example.com"}, []string{"OK"}, )) Expect(routeRepo.DeleteCallCount()).To(Equal(1)) Expect(routeRepo.DeleteArgsForCall(0)).To(Equal("route-guid"))
route2 := models.RouteSummary{} route2.Guid = "the-second-route-guid" route2.Host = "my-app-is-bad.com" appRepo.ReadReturns(models.Application{ Routes: []models.RouteSummary{route1, route2}, }, nil) }) Context("when the -r flag is provided", func() { Context("when deleting routes succeeds", func() { It("deletes the app's routes", func() { runCommand("-f", "-r", "app-to-delete") Expect(routeRepo.DeleteCallCount()).To(Equal(2)) Expect(routeRepo.DeleteArgsForCall(0)).To(Equal("the-first-route-guid")) Expect(routeRepo.DeleteArgsForCall(1)).To(Equal("the-second-route-guid")) }) }) Context("when deleting routes fails", func() { BeforeEach(func() { routeRepo.DeleteReturns(errors.New("an-error")) }) It("fails with the api error message", func() { runCommand("-f", "-r", "app-to-delete") Expect(ui.Outputs).To(ContainSubstrings( []string{"Deleting", "app-to-delete"},