Sha256: 45bc75f0ca585b9d69508a12b78ae978a4b2b04b1c17b3334f48bb3d9b6a46e0
Contents?: true
Size: 996 Bytes
Versions: 23
Compression:
Stored size: 996 Bytes
Contents
# encoding: utf-8 require "spec_helper" describe Her::Middleware::JsonApiParser do subject { described_class.new } context "with valid JSON body" do let(:body) { '{"data": {"type": "foo", "id": "bar", "attributes": {"baz": "qux"} }, "meta": {"api": "json api"} }' } let(:env) { { body: body } } it "parses body as json" do subject.on_complete(env) env.fetch(:body).tap do |json| expect(json[:data]).to eql( :type => "foo", :id => "bar", :attributes => { :baz => "qux" } ) expect(json[:errors]).to eql([]) expect(json[:metadata]).to eql(:api => "json api") end end end #context "with invalid JSON body" do # let(:body) { '"foo"' } # it 'ensures that invalid JSON throws an exception' do # expect { subject.parse(body) }.to raise_error(Her::Errors::ParseError, 'Response from the API must behave like a Hash or an Array (last JSON response was "\"foo\"")') # end #end end
Version data entries
23 entries across 23 versions & 4 rubygems