Sha256: 0bd4d1555eda3f92bb8df083a98104c930a25a9f8c44c249c419c260d1933576

Contents?: true

Size: 1.14 KB

Versions: 2

Compression:

Stored size: 1.14 KB

Contents

require 'spec_helper'

describe G5AuthenticatableApi::Services::UserFetcher do
  subject(:user_fetcher) { described_class.new(params, headers, warden) }
  let(:params) { {'access_token' => token_value} }
  let(:token_value) { 'abc123' }
  let(:headers) {}
  let(:warden) {}

  describe '#current_user' do
    include_context 'current auth user'

    subject(:current_user) { user_fetcher.current_user }

    context 'when there is no warden user' do
      it_behaves_like 'an auth user' do
        let(:user) { current_user }
      end
    end

    context 'when there is a warden user' do
      let(:warden) { double(:warden, user: warden_user) }

      context 'when the access_token is for the warden user' do
        let(:warden_user) { double(:user, g5_access_token: token_value) }

        it 'returns the warden user' do
          expect(current_user).to eq(warden_user)
        end
      end

      context 'when the access token is for a different user' do
        let(:warden_user) { double(:user, g5_access_token: "#{token_value}42") }

        it_behaves_like 'an auth user' do
          let(:user) { current_user }
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
g5_authenticatable_api-0.4.1 spec/lib/g5_authenticatable_api/services/user_fetcher_spec.rb
g5_authenticatable_api-0.4.0 spec/lib/g5_authenticatable_api/services/user_fetcher_spec.rb