diff --git a/lib/oauth2/client.rb b/lib/oauth2/client.rb index bffd9cca1179a3a2ad1d1c7dc7a2ae1270299ed3..104d2b9c0a11f6dee254b22a660c95254d15b81e 100644 --- a/lib/oauth2/client.rb +++ b/lib/oauth2/client.rb @@ -3,6 +3,8 @@ require 'faraday' require 'logger' +Faraday::Utils.default_space_encoding = '%20' + module OAuth2 ConnectionError = Class.new(Faraday::ConnectionFailed) TimeoutError = Class.new(Faraday::TimeoutError) diff --git a/spec/oauth2/client_spec.rb b/spec/oauth2/client_spec.rb index 57539b1b0f48adb3e013ab52718d64a42f63f18a..a889f8e2ca49df7cab068dd4aaf1633cb1fc2297 100644 --- a/spec/oauth2/client_spec.rb +++ b/spec/oauth2/client_spec.rb @@ -318,6 +318,20 @@ RSpec.describe OAuth2::Client do end end + describe '#authorize_url' do + subject { instance.authorize_url(params) } + + context 'when space included' do + let(:params) do + { scope: 'email profile' } + end + + it 'encoded as %20' do + expect(subject).to include 'email%20profile' + end + end + end + describe '#request' do it 'works with a null response body' do expect(subject.request(:get, 'empty_get').body).to eq('')