2015-10-06 11:47:42 +02:00
|
|
|
require 'spec_helper'
|
|
|
|
|
|
|
|
describe FranceConnectService do
|
|
|
|
describe '.retrieve_user_informations' do
|
2015-10-07 12:01:05 +02:00
|
|
|
|
2015-10-06 11:47:42 +02:00
|
|
|
let(:code) { 'plop' }
|
2015-10-07 12:01:05 +02:00
|
|
|
let(:access_token) { 'my access_token' }
|
|
|
|
let(:email) { 'patator@cake.com' }
|
|
|
|
let(:siret) { '41123069100049' }
|
|
|
|
let(:user_info_hash) { {'email' => email, 'siret' => siret} }
|
|
|
|
let(:user_info) { instance_double('OpenIDConnect::ResponseObject::UserInfo', raw_attributes: user_info_hash, email: email) }
|
|
|
|
|
2015-10-06 12:00:54 +02:00
|
|
|
subject { described_class.retrieve_user_informations code }
|
2015-10-07 12:01:05 +02:00
|
|
|
|
2015-10-06 12:00:54 +02:00
|
|
|
before do
|
2015-10-07 12:01:05 +02:00
|
|
|
allow_any_instance_of(FranceConnectClient).to receive(:access_token!).and_return(access_token)
|
|
|
|
allow(access_token).to receive(:userinfo!).and_return(user_info)
|
2015-10-06 12:00:54 +02:00
|
|
|
end
|
2015-10-06 11:47:42 +02:00
|
|
|
it 'set code for FranceConnectClient' do
|
2015-10-07 12:01:05 +02:00
|
|
|
expect_any_instance_of(FranceConnectClient).to receive(:authorization_code=).with(code)
|
2015-10-06 11:47:42 +02:00
|
|
|
described_class.retrieve_user_informations code
|
|
|
|
end
|
2015-10-06 12:00:54 +02:00
|
|
|
|
2015-10-07 12:01:05 +02:00
|
|
|
it 'returns user informations in a object' do
|
|
|
|
expect(subject.email).to eq(email)
|
|
|
|
expect(subject.siret).to eq(siret)
|
2015-10-06 12:00:54 +02:00
|
|
|
end
|
2015-10-06 11:47:42 +02:00
|
|
|
end
|
|
|
|
end
|