Expect(domainRepo.CreateSharedDomainCallCount()).To(Equal(1)) domainName, routerGroupGUID := domainRepo.CreateSharedDomainArgsForCall(0) Expect(domainName).To(Equal("domain-name")) Expect(routerGroupGUID).To(Equal("router-group-guid")) }) It("prints success message", func() { cmd.Execute(flagContext) Expect(ui.Outputs).To(ContainSubstrings( []string{"OK"}, )) }) Context("when listing router groups returns an error", func() { BeforeEach(func() { routingAPIRepo.ListRouterGroupsReturns(errors.New("router-group-error")) }) It("fails with error message", func() { Expect(func() { cmd.Execute(flagContext) }).To(Panic()) Expect(ui.Outputs).To(ContainSubstrings( []string{"FAILED"}, []string{"router-group-error"}, )) }) }) Context("when router group is not found", func() { BeforeEach(func() { routerGroups = models.RouterGroups{} })
}) Context("when there are no router groups", func() { It("tells the user when no router groups were found", func() { Expect(err).NotTo(HaveOccurred()) Expect(ui.Outputs()).To(ContainSubstrings( []string{"Getting router groups"}, []string{"No router groups found"}, )) }) }) Context("when there is an error listing router groups", func() { BeforeEach(func() { routingAPIRepo.ListRouterGroupsReturns(errors.New("BOOM")) }) It("returns an error to the user", func() { Expect(ui.Outputs()).To(ContainSubstrings( []string{"Getting router groups"}, )) Expect(err).To(HaveOccurred()) errStr := err.Error() Expect(errStr).To(ContainSubstring("BOOM")) Expect(errStr).To(ContainSubstring("Failed fetching router groups")) }) }) }) })