Sha256: c70e21a08fb321260d99c1bfd3cb0889ced1d843998bb93165ba1b692a2bedb7

Contents?: true

Size: 1.18 KB

Versions: 1

Compression:

Stored size: 1.18 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 deep_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.2 spec/acceptance/acceptance_spec.rb