Sha256: cb22858662a53663a423c4cbdddd98efba6f1497d16174d4875d95d288adb45e

Contents?: true

Size: 1.35 KB

Versions: 10

Compression:

Stored size: 1.35 KB

Contents

# frozen_string_literal: true

require 'spec_helper'

RSpec.describe SolidusBolt::Users::RefreshAccessTokenService do
  subject(:refresh_access_token) { described_class.call(session: session) }

  let(:session) { { bolt_access_token: bolt_access_token, bolt_expiration_time: bolt_expiration_time } }

  describe '#call' do
    context 'when not bolt user' do
      let(:bolt_access_token) { nil }
      let(:bolt_expiration_time) { nil }

      it 'returns nil' do
        expect(refresh_access_token).to be_nil
      end
    end

    context 'with valid token' do
      let(:bolt_access_token) { 'accesstoken' }
      let(:bolt_expiration_time) { Time.now.utc + 10.minutes }

      it 'returns current access token' do
        expect(refresh_access_token).to eq(bolt_access_token)
      end
    end

    context 'with expired token' do
      let(:bolt_access_token) { 'accesstoken' }
      let(:bolt_expiration_time) { Time.now.utc - 10.minutes }
      let(:result) { { 'access_token' => 'newaccesstoken', 'expires_in' => 3600 } }

      before do
        allow(HTTParty).to receive(:post).and_return(result)
        allow(result).to receive(:success?).and_return(true)
        allow(result).to receive(:parsed_response).and_return(result)
      end

      it 'refreshes the access token' do
        expect(refresh_access_token).to eq('newaccesstoken')
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
solidus_bolt-0.7.2 spec/services/solidus_bolt/users/refresh_access_token_service_spec.rb
solidus_bolt-0.7.1 spec/services/solidus_bolt/users/refresh_access_token_service_spec.rb
solidus_bolt-0.7.0 spec/services/solidus_bolt/users/refresh_access_token_service_spec.rb
solidus_bolt-0.6.0 spec/services/solidus_bolt/users/refresh_access_token_service_spec.rb
solidus_bolt-0.5.0 spec/services/solidus_bolt/users/refresh_access_token_service_spec.rb
solidus_bolt-0.4.0 spec/services/solidus_bolt/users/refresh_access_token_service_spec.rb
solidus_bolt-0.3.0 spec/services/solidus_bolt/users/refresh_access_token_service_spec.rb
solidus_bolt-0.2.0 spec/services/solidus_bolt/users/refresh_access_token_service_spec.rb
solidus_bolt-0.1.0 spec/services/solidus_bolt/users/refresh_access_token_service_spec.rb
solidus_bolt-0.0.1 spec/services/solidus_bolt/users/refresh_access_token_service_spec.rb