Sha256: e69513f64a61ed8333f68ddb29fb33ae80eaf8f525432b8dbade057351e6f12e

Contents?: true

Size: 760 Bytes

Versions: 1

Compression:

Stored size: 760 Bytes

Contents

require 'spec_helper'
require 'securerandom'

describe Vinz::Url do
  describe '#pack / #unpack' do
    let(:key) { SecureRandom.hex(128) }
    let(:crypto) { Vinz::Crypto.new(key) }
    let(:url) { 'http://localhost/foo' }
    let(:uri) { URI.parse(url) }

    it 'packs and unpacks the message' do
      message = {foo: 'bar'}

      packer = Vinz::Url.new(uri, crypto)
      packed = packer.pack(message)

      unpacker = Vinz::Url.new(packed, crypto)
      payload = unpacker.unpack

      expect(payload).to eq(message)
    end

    context 'when base64 is invalid' do
      it 'raises an error' do
        unpacker = Vinz::Url.new("#{url}?_creq=foobar", crypto)
        expect { unpacker.unpack }.to raise_error(Vinz::Error)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vinz-1.1.7 spec/vinz_url_spec.rb