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())