Sha256: ab176be890a79e888b538031260b9e02ea44776fa1986bbad1a0bdbf7f32973a

Contents?: true

Size: 1.38 KB

Versions: 1

Compression:

Stored size: 1.38 KB

Contents

RSpec.describe Bluekai::Request do
  describe '#signature' do
    it 'computes a correct signature' do
      subject = described_class.new(
        'GET',
        '/Services/WS/classificationCategories/',
        { ho: 'blabli' },
        { key1: 'value1', key2: 'value2' },
        'https://services.bluekai.com')
      subject.api_private_key = '1234'
      expect(subject.signature).to eq('t%2BE36Yup7ORbC3WRux5xY7ohUxqFo5AGsKrGjJYDCKs%3D')
    end

    it 'accounts for nested GET url params' do
      subject = described_class.new(
        'GET',
        '/getdata/1234/v1.2',
        { puserid: '42', phint: { event: 'click', offer_id: 1234 } },
        {},
        'https://services.bluekai.com')
      subject.api_private_key = '1234'
      expect(subject.signature).to eq('KOl1c80m2SQ6%2Fv5K0OLAUKejcrw6zXEsQ9crbcV6n3Y%3D')
    end
  end

  describe '#run' do
    let(:response_double) { double('response', body: 'user id not found', code: '404') }
    let(:request_double) { double('request', response: response_double) }

    subject { described_class.new('GET', '/error', {}, {}, 'https://services.bluekai.com') }

    it 'fails with a Bluekai::RequestFailed exception when request fails' do
      expect(HTTParty).to receive(:get).and_return(request_double)

      subject.api_private_key = '1234'
      expect { subject.run }.to raise_error(Bluekai::RequestFailed, /user id not found/)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bluekai-0.0.6 spec/lib/bluekai/request_spec.rb