JustBeforeEach(func() { err = auth.Authenticate(map[string]string{ "username": "******", "password": "******", }) }) Describe("when login succeeds", func() { BeforeEach(func() { setupTestServer(successfulLoginRequest) }) It("stores the access and refresh tokens in the config", func() { Expect(handler).To(HaveAllRequestsCalled()) Expect(err).NotTo(HaveOccurred()) Expect(config.AuthenticationEndpoint()).To(Equal(testServer.URL)) Expect(config.AccessToken()).To(Equal("BEARER my_access_token")) Expect(config.RefreshToken()).To(Equal("my_refresh_token")) }) }) Describe("when login fails", func() { BeforeEach(func() { setupTestServer(unsuccessfulLoginRequest) }) It("returns an error", func() { Expect(handler).To(HaveAllRequestsCalled()) Expect(err).NotTo(BeNil()) Expect(err.Error()).To(Equal("Credentials were rejected, please try again.")) Expect(config.AccessToken()).To(BeEmpty())
org.Name = "my-org" org.Guid = "my-org-guid" space.Name = "my-space" space.Guid = "my-space-guid" config.SetOrganizationFields(org) config.SetSpaceFields(space) testServerFn = validApiInfoEndpoint }) It("stores the data from the /info api in the config", func() { repo.UpdateEndpoint(testServer.URL) Expect(config.AccessToken()).To(Equal("")) Expect(config.AuthenticationEndpoint()).To(Equal("https://login.example.com")) Expect(config.LoggregatorEndpoint()).To(Equal("wss://loggregator.foo.example.org:4443")) Expect(config.ApiEndpoint()).To(Equal(testServer.URL)) Expect(config.ApiVersion()).To(Equal("42.0.0")) Expect(config.HasOrganization()).To(BeFalse()) Expect(config.HasSpace()).To(BeFalse()) }) Context("when the api endpoint does not change", func() { BeforeEach(func() { config.SetApiEndpoint(testServer.URL) config.SetAccessToken("some access token") config.SetRefreshToken("some refresh token") }) It("does not clear the session if the api endpoint does not change", func() {