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