Sha256: 8b6213f29fea8517f16768fd528baa82f3d6f52da9b013849a845dece65a9c8e

Contents?: true

Size: 1.16 KB

Versions: 8

Compression:

Stored size: 1.16 KB

Contents

require 'spec_helper'

describe BooticClient::Client::SafeCacheSerializer do
  context 'deserializing existing non-base64 content' do
    it 'does not attempt Base64 decoding' do
      result = described_class.load('{"headers": {"foo": 1}, "body": "hello"}')
      expect(result['body']).to eq 'hello'
    end
  end

  context 'Base64-encoding and decoding' do
    it 'decodes body if flagged as Base64' do
      body = Base64.strict_encode64('hello')
      encoded = %({"headers": {"foo": 1}, "body": "__booticclient__base64__:#{body}"})
      result = described_class.load(encoded)
      expect(result['body']).to eq 'hello'
    end

    it 'encodes as Base64 with flag prefix' do
      data = Base64.strict_encode64('{"headers": {"foo": 1}, "body": "hello"}')
      encoded = described_class.dump({headers: {foo: 1}, body: 'hello'})
      parsed = JSON.load(encoded)
      expect(parsed['body']).to eq "__booticclient__base64__:#{Base64.strict_encode64('hello')}"
    end

    it 'encodes and decodes' do
      encoded = described_class.dump({headers: {foo: 1}, body: 'hello'})
      decoded = described_class.load(encoded)
      expect(decoded['body']).to eq 'hello'
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
bootic_client-0.0.32 spec/safe_cache_serializer_spec.rb
bootic_client-0.0.31 spec/safe_cache_serializer_spec.rb
bootic_client-0.0.30 spec/safe_cache_serializer_spec.rb
bootic_client-0.0.29 spec/safe_cache_serializer_spec.rb
bootic_client-0.0.28 spec/safe_cache_serializer_spec.rb
bootic_client-0.0.27 spec/safe_cache_serializer_spec.rb
bootic_client-0.0.26 spec/safe_cache_serializer_spec.rb
bootic_client-0.0.25 spec/safe_cache_serializer_spec.rb