Sha256: 0763498487b96e2d87df6965be5cf3f3aeb04122bda813ba11606fd550a0fe9c

Contents?: true

Size: 904 Bytes

Versions: 4

Compression:

Stored size: 904 Bytes

Contents

require 'spec_helper'

describe Grape::Roar do
  subject do
    Class.new(Grape::API)
  end

  before do
    subject.format :json
    subject.formatter :json, Grape::Formatter::Roar
  end

  def app
    subject
  end

  context 'nested representer' do
    before do
      subject.get('/order/:id') do
        order = Order.new(id: params[:id], client_id: 42)
        order.articles << Article.new(title: 'One', id: 1)
        order.articles << Article.new(title: 'Two', id: 2)
        order
      end
    end

    it 'returns a hypermedia representation' do
      get '/order/666'
      expect(last_response.body).to eq '{"id":"666","client_id":42,"articles":[{"title":"One","id":1,"links":[{"rel":"self","href":"/article/1"}]},{"title":"Two","id":2,"links":[{"rel":"self","href":"/article/2"}]}],"links":[{"rel":"self","href":"/order/666"},{"rel":"items","href":"/order/666/items"}]}'
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
grape-roar-0.4.0 spec/nested_representer_spec.rb
grape-roar-0.3.0 spec/nested_representer_spec.rb
grape-roar-0.2.0 spec/nested_representer_spec.rb
grape-roar-0.1.0 spec/nested_representer_spec.rb