JustBeforeEach(func() { var err error response, err = client.Do(request) Expect(err).NotTo(HaveOccurred()) }) Context("to a known provider", func() { BeforeEach(func() { request.URL.Path = "/auth/b" request.URL.RawQuery = url.Values{ "redirect": {"/some-path"}, }.Encode() fakeProviderB.AuthCodeURLReturns(redirectTarget.URL()) }) It("redirects to the auth code URL", func() { Expect(response.StatusCode).To(Equal(http.StatusOK)) Expect(ioutil.ReadAll(response.Body)).To(Equal([]byte("sup"))) }) It("generates the auth code with a base64-encoded redirect URI as the state", func() { Expect(fakeProviderB.AuthCodeURLCallCount()).To(Equal(1)) state, _ := fakeProviderB.AuthCodeURLArgsForCall(0) decoded, err := base64.RawURLEncoding.DecodeString(state) Expect(err).ToNot(HaveOccurred())