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

Version Path
test_track_rails_client-2.0.0 vendor/gems/her/spec/middleware/json_api_parser_spec.rb
test_track_rails_client-1.3.0 vendor/gems/her/spec/middleware/json_api_parser_spec.rb
test_track_rails_client-1.2.0 vendor/gems/her/spec/middleware/json_api_parser_spec.rb
test_track_rails_client-1.1.0 vendor/gems/her/spec/middleware/json_api_parser_spec.rb
test_track_rails_client-1.0.0 vendor/gems/her/spec/middleware/json_api_parser_spec.rb
test_track_rails_client-0.9.20 vendor/gems/her/spec/middleware/json_api_parser_spec.rb
test_track_rails_client-0.9.19 vendor/gems/her/spec/middleware/json_api_parser_spec.rb
test_track_rails_client-0.9.18 vendor/gems/her/spec/middleware/json_api_parser_spec.rb
test_track_rails_client-0.9.17 vendor/gems/her/spec/middleware/json_api_parser_spec.rb
test_track_rails_client-0.9.16 vendor/gems/her/spec/middleware/json_api_parser_spec.rb
test_track_rails_client-0.9.15 vendor/gems/her/spec/middleware/json_api_parser_spec.rb
test_track_rails_client-0.9.14 vendor/gems/her/spec/middleware/json_api_parser_spec.rb
test_track_rails_client-0.9.13 vendor/gems/her/spec/middleware/json_api_parser_spec.rb
test_track_rails_client-0.9.12 vendor/gems/her/spec/middleware/json_api_parser_spec.rb
test_track_rails_client-0.9.11 vendor/gems/her/spec/middleware/json_api_parser_spec.rb
test_track_rails_client-0.9.10 vendor/gems/her/spec/middleware/json_api_parser_spec.rb
test_track_rails_client-0.9.9 vendor/gems/her/spec/middleware/json_api_parser_spec.rb
test_track_rails_client-0.9.8 vendor/gems/her/spec/middleware/json_api_parser_spec.rb
her-0.8.2 spec/middleware/json_api_parser_spec.rb
her5-0.8.2 spec/middleware/json_api_parser_spec.rb