RSpec matchers for JSON API.
- Chat: gitter
- Twitter: @jsonapirb
Add the following to your application's Gemfile:
gem 'jsonapi-rspec'And then execute:
$ bundle
Add to your spec/spec_helpers.rb:
require 'jsonapi/rspec'
RSpec.configure do |config|
# ...
config.include JSONAPI::RSpec
endAvailable matchers:
expect(document['data']).to have_id('12')expect(document['data']).to have_type('users')expect(document['data']).to have_attributes(:name, :email)expect(document['data']).to have_attribute(:name).with_value('Lucas')expect(document['data']).to have_relationships(:posts, :comments)expect(document['data']).to have_relationship(:posts).with_data([{ 'id' => '1', 'type' => 'posts' }])expect(document['data']['relationships']['posts']).to have_links(:self, :related)expect(document['data']).to have_link(:self).with_value('http://api.example.com/users/12')expect(document).to have_metaexpect(document).to have_meta('foo' => 'bar')expect(document).to have_jsonapi_objectexpect(document).to have_jsonapi_object('version' => '1.0')
Checking for an included resource:
expect(response_body['included'])
.to include(have_type('posts').and have_id('1'))jsonapi-rspec is released under the MIT License.
