strategy := strategy.NewEndpointStrategy(config.ApiVersion()) repo = NewCloudControllerDomainRepository(config, gateway, strategy) }) AfterEach(func() { ts.Close() }) var setupTestServer = func(reqs ...testnet.TestRequest) { ts, handler = testnet.NewServer(reqs) config.SetApiEndpoint(ts.URL) } Describe("listing domains", func() { BeforeEach(func() { config.SetApiVersion("2.2.0") setupTestServer(firstPageDomainsRequest, secondPageDomainsRequest) }) It("uses the organization-scoped domains endpoint", func() { receivedDomains := []models.DomainFields{} apiErr := repo.ListDomainsForOrg("my-org-guid", func(d models.DomainFields) bool { receivedDomains = append(receivedDomains, d) return true }) Expect(apiErr).NotTo(HaveOccurred()) Expect(len(receivedDomains)).To(Equal(3)) Expect(receivedDomains[0].Guid).To(Equal("domain1-guid")) Expect(receivedDomains[1].Guid).To(Equal("domain2-guid")) Expect(handler).To(testnet.HaveAllRequestsCalled())
Expect(output).To(ContainSubstrings([]string{"Not logged in", "Use", "log in"})) }) }) Context("when an api endpoint is set and the user logged in", func() { var config configuration.ReadWriter BeforeEach(func() { accessToken := configuration.TokenInfo{ UserGuid: "my-user-guid", Username: "******", Email: "my-user-email", } config = testconfig.NewRepositoryWithAccessToken(accessToken) config.SetApiEndpoint("https://test.example.org") config.SetApiVersion("☃☃☃") }) Describe("tells the user what is set in the config", func() { var output []string JustBeforeEach(func() { output = io_helpers.CaptureOutput(func() { ui := NewUI(os.Stdin) ui.ShowConfiguration(config) }) }) It("tells the user which api endpoint is set", func() { Expect(output).To(ContainSubstrings([]string{"API endpoint:", "https://test.example.org"})) })