Sha256: 12d478d7244d795c637f10c430c7b424b40b8226554fbf01b701c8b063e44868

Contents?: true

Size: 1.18 KB

Versions: 2

Compression:

Stored size: 1.18 KB

Contents

# frozen_string_literal: true

require 'rails_helper'

RSpec.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-1.0.0 spec/lib/g5_authenticatable_api/services/user_fetcher_spec.rb
g5_authenticatable_api-1.0.0.pre.1 spec/lib/g5_authenticatable_api/services/user_fetcher_spec.rb