Sha256: 54c9e71f3ab52d3fe183550ef5c92ebe45ccf7f551b8fee986368a7cf2920e46

Contents?: true

Size: 1.19 KB

Versions: 1

Compression:

Stored size: 1.19 KB

Contents

require 'spec_helper'

require_relative './models'

RSpec.shared_examples_for 'JSON output format' do |yaks, format, name|
  let(:input)  { load_yaml_fixture name }
  let(:output) { load_json_fixture "#{name}.#{format}" }

  subject { yaks.serialize(input) }

  it { should eql output }
end

RSpec.describe Yaks::Serializer::Hal do
  yaks_rel_template = Yaks.new do
    rel_template "http://literature.example.com/rel/{association_name}"
  end

  yaks_policy_dsl = Yaks.new do
    derive_rel_from_association do |mapper, association|
      "http://literature.example.com/rel/#{association.name}"
    end
  end

  include_examples 'JSON output format' , yaks_rel_template    , :hal      , 'confucius'
  include_examples 'JSON output format' , yaks_policy_dsl      , :hal      , 'confucius'
end

RSpec.describe Yaks::Serializer::JsonApi do
  config = Yaks.new do
    default_format :json_api
  end

  include_examples 'JSON output format' , config , :json_api , 'confucius'
end

RSpec.describe Yaks::Serializer::CollectionJson do
  config = Yaks.new do
    default_format :collection_json
    mapper_namespace Youtypeitwepostit
  end

  include_examples 'JSON output format' , config , :collection , 'youtypeitwepostit'
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
yaks-0.4.0 spec/acceptance/acceptance_spec.rb