Sha256: b7a430c14748813e0607b59ddf518a2a92da2195c0a777bcffe2ad05a022a8b9

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 KB

Contents

require 'spec_helper'

describe 'Grape::EndpointExtension' do

  subject { Grape::Endpoint.new(nil, {path: '/', method: 'foo'}) }

  let(:serializer) { Grape::Formatter::ActiveModelSerializers }

  let(:user) do
               Object.new do
                 def name
                   'sven'
                 end
               end
             end

  let(:users) { [user, user] }

  describe "#render" do
    it { should respond_to(:render) }
    let (:meta_content) { { total: 2 } }
    let (:meta_full) { { meta: meta_content } }
    context 'supplying meta' do
      it 'passes through the Resource and uses given meta settings' do
        expect(serializer).to receive(:meta=).with(meta_content)
        expect(subject.render(users, meta_full)).to eq(users)
      end
    end
    context 'supplying meta and key' do
      let (:meta_key) { { meta_key: :custom_key_name } }
      it 'passes through the Resource and uses given meta settings' do
        expect(serializer).to receive(:meta=).with(meta_content)
        expect(serializer).to receive(:meta_key=).with(meta_key[:meta_key])
        expect(subject.render(users, meta_full.merge(meta_key))).to eq(users)
      end
    end
  end

end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
grape-active_model_serializers-1.2.1 spec/grape-active_model_serializers/endpoint_extension_spec.rb
grape-active_model_serializers-revibe-1.0.1 spec/grape-active_model_serializers/endpoint_extension_spec.rb