spec/omniauth/strategies/github_spec.rb in omniauth-github-1.3.0 vs spec/omniauth/strategies/github_spec.rb in omniauth-github-1.4.0

- old
+ new

@@ -1,9 +1,9 @@ require 'spec_helper' describe OmniAuth::Strategies::GitHub do - let(:access_token) { instance_double('AccessToken', :options => {}) } + let(:access_token) { instance_double('AccessToken', :options => {}, :[] => 'user') } let(:parsed_response) { instance_double('ParsedResponse') } let(:response) { instance_double('Response', :parsed => parsed_response) } let(:enterprise_site) { 'https://some.other.site.com/api/v3' } let(:enterprise_authorize_url) { 'https://some.other.site.com/login/oauth/authorize' } @@ -120,10 +120,16 @@ context '#raw_info' do it 'should use relative paths' do expect(access_token).to receive(:get).with('user').and_return(response) expect(subject.raw_info).to eq(parsed_response) end + + it 'should use the header auth mode' do + expect(access_token).to receive(:get).with('user').and_return(response) + subject.raw_info + expect(access_token.options[:mode]).to eq(:header) + end end context '#emails' do it 'should use relative paths' do expect(access_token).to receive(:get).with('user/emails', :headers => { @@ -131,10 +137,20 @@ }).and_return(response) subject.options['scope'] = 'user' expect(subject.emails).to eq(parsed_response) end + + it 'should use the header auth mode' do + expect(access_token).to receive(:get).with('user/emails', :headers => { + 'Accept' => 'application/vnd.github.v3' + }).and_return(response) + + subject.options['scope'] = 'user' + subject.emails + expect(access_token.options[:mode]).to eq(:header) + end end context '#info.email' do it 'should use any available email' do allow(subject).to receive(:raw_info).and_return({}) @@ -145,9 +161,15 @@ context '#info.urls' do it 'should use html_url from raw_info' do allow(subject).to receive(:raw_info).and_return({ 'login' => 'me', 'html_url' => 'http://enterprise/me' }) expect(subject.info['urls']['GitHub']).to eq('http://enterprise/me') + end + end + + context '#extra.scope' do + it 'returns the scope on the returned access_token' do + expect(subject.scope).to eq('user') end end describe '#callback_url' do it 'is a combination of host, script name, and callback path' do