Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions test/jsonapi/collection_render_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class JsonapiCollectionRenderTest < MiniTest::Spec

it 'renders full document' do
json = decorator.to_json
json.must_equal_json(%({
_(json).must_equal_json(%({
"data": [{
"type": "articles",
"id": "1",
Expand Down Expand Up @@ -261,7 +261,7 @@ class JsonapiCollectionRenderTest < MiniTest::Spec

it 'included: false suppresses compound docs' do
json = decorator.to_json(included: false)
json.must_equal_json(%({
_(json).must_equal_json(%({
"data": [{
"type": "articles",
"id": "1",
Expand Down Expand Up @@ -451,12 +451,12 @@ class JsonapiCollectionRenderTest < MiniTest::Spec

it 'passes :user_options to toplevel links when rendering' do
hash = decorator.to_hash(user_options: { page: 2, per_page: 10 })
hash['links'].must_equal('self' => '//articles?page=2&per_page=10')
_(hash['links']).must_equal('self' => '//articles?page=2&per_page=10')
end

it 'renders extra toplevel meta information if meta option supplied' do
hash = decorator.to_hash(meta: { page: 2, total: 9 })
hash['meta'].must_equal('count' => 3, page: 2, total: 9)
_(hash['meta']).must_equal('count' => 3, page: 2, total: 9)
end

it 'does not render extra meta information on resource objects' do
Expand All @@ -467,8 +467,8 @@ class JsonapiCollectionRenderTest < MiniTest::Spec

it 'does not render extra toplevel meta information if meta option is empty' do
hash = decorator.to_hash(meta: {})
hash['meta'][:page].must_be_nil
hash['meta'][:total].must_be_nil
_(hash['meta'][:page]).must_be_nil
_(hash['meta'][:total]).must_be_nil
end

describe 'Fetching Resources (empty collection)' do
Expand All @@ -487,6 +487,6 @@ class JsonapiCollectionRenderTest < MiniTest::Spec
let(:articles) { [] }
subject { ArticleDecorator.for_collection.new(articles).to_json }

it { subject.must_equal_json document }
it { _(subject).must_equal_json document }
end
end
20 changes: 10 additions & 10 deletions test/jsonapi/fieldsets_options_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class FieldsetsOptionsTest < Minitest::Spec
{ include: 'articles',
fields: { 'articles' => 'title,body', 'people' => '' } }].each do |options|
options = Include.(options, relationships: { 'articles' => 'articles' })
options.must_equal(include: [:id, :attributes, :relationships, :included],
_(options).must_equal(include: [:id, :attributes, :relationships, :included],
included: {
include: [:articles],
articles: {
Expand All @@ -38,7 +38,7 @@ class FieldsetsOptionsTest < Minitest::Spec
{ include: [''] },
{ include: '' }].each do |options|
options = Include.(options, {})
options.must_equal(include: [:id, :attributes, :relationships, :included],
_(options).must_equal(include: [:id, :attributes, :relationships, :included],
included: { include: [] })
end
end
Expand All @@ -50,7 +50,7 @@ class FieldsetsOptionsTest < Minitest::Spec
{ include: [''], fields: { articles: ['title,body'], people: [] } },
{ include: '', fields: { 'articles' => 'title,body', 'people' => '' } }].each do |options|
options = Include.(options, relationships: { '_self' => 'articles' })
options.must_equal(include: [:id, :attributes, :relationships, :included],
_(options).must_equal(include: [:id, :attributes, :relationships, :included],
included: {
include: [],
people: {
Expand All @@ -69,7 +69,7 @@ class FieldsetsOptionsTest < Minitest::Spec
{ include: [''], fields: { articles: ['title,body'], people: ['email'] } },
{ include: '', fields: { 'articles' => 'title,body', 'people' => 'email' } }].each do |options|
options = Include.(options, relationships: { 'author' => 'people', 'articles' => 'articles' })
options.must_equal(include: [:id, :attributes, :relationships, :included],
_(options).must_equal(include: [:id, :attributes, :relationships, :included],
included: {
include: [],
articles: {
Expand All @@ -93,7 +93,7 @@ class FieldsetsOptionsTest < Minitest::Spec
{ include: ['comments'] },
{ include: 'comments' }].each do |options|
options = Include.(options, {})
options.must_equal(include: [:id, :attributes, :relationships, :included],
_(options).must_equal(include: [:id, :attributes, :relationships, :included],
included: {
include: [:comments],
comments: {
Expand All @@ -109,7 +109,7 @@ class FieldsetsOptionsTest < Minitest::Spec
{ include: ['comments.author.employer'] },
{ include: 'comments.author.employer' }].each do |options|
options = Include.(options, {})
options.must_equal(include: [:id, :attributes, :relationships, :included],
_(options).must_equal(include: [:id, :attributes, :relationships, :included],
included: {
include: [:comments],
comments: {
Expand All @@ -135,27 +135,27 @@ class FieldsetsOptionsTest < Minitest::Spec
it 'does not rewrite :include if _json_api_parsed: true' do
options = Include.({ include: [:id, :attributes],
_json_api_parsed: true }, {})
options.must_equal(include: [:id, :attributes],
_(options).must_equal(include: [:id, :attributes],
_json_api_parsed: true)
end
end

describe 'with falsey :include options' do
it 'does not rewrite include: false' do
options = Include.({ include: false }, {})
options.must_equal(include: false)
_(options).must_equal(include: false)
end

it 'does not rewrite include: nil' do
options = Include.({ include: nil }, {})
options.must_equal(include: nil)
_(options).must_equal(include: nil)
end
end

describe 'with falsey :fields options' do
it 'does not parse fields: nil' do
options = Include.({ fields: nil }, {})
options.must_equal(fields: nil)
_(options).must_equal(fields: nil)
end
end
end
34 changes: 17 additions & 17 deletions test/jsonapi/fieldsets_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,10 @@ class DocumentSingleResourceObjectDecorator < Roar::Decorator
}

it 'includes scalars' do
DocumentSingleResourceObjectDecorator.new(article)
_(DocumentSingleResourceObjectDecorator.new(article)
.to_json(
fields: { articles: 'title' }
)
))
.must_equal_json(%(
{
"data": {
Expand All @@ -74,11 +74,11 @@ class DocumentSingleResourceObjectDecorator < Roar::Decorator
end

it 'includes compound objects' do
DocumentSingleResourceObjectDecorator.new(article)
_(DocumentSingleResourceObjectDecorator.new(article)
.to_json(
fields: { articles: 'title' },
include: :comments
)
))
.must_equal_json(%(
{
"data": {
Expand Down Expand Up @@ -124,11 +124,11 @@ class DocumentSingleResourceObjectDecorator < Roar::Decorator
end

it 'includes nested compound objects' do
DocumentSingleResourceObjectDecorator.new(article)
_(DocumentSingleResourceObjectDecorator.new(article)
.to_json(
fields: { articles: 'title' },
include: 'comments.author'
)
))
.must_equal_json(%(
{
"data": {
Expand Down Expand Up @@ -184,11 +184,11 @@ class DocumentSingleResourceObjectDecorator < Roar::Decorator
end

it 'includes other compound objects' do
DocumentSingleResourceObjectDecorator.new(article)
_(DocumentSingleResourceObjectDecorator.new(article)
.to_json(
fields: { articles: 'title' },
include: :author
)
))
.must_equal_json(%(
{
"data": {
Expand All @@ -214,11 +214,11 @@ class DocumentSingleResourceObjectDecorator < Roar::Decorator

describe 'collection' do
it 'supports :includes' do
DocumentSingleResourceObjectDecorator.for_collection.new([article])
_(DocumentSingleResourceObjectDecorator.for_collection.new([article])
.to_hash(
fields: { articles: 'title' },
include: :author
)
))
.must_equal Hash[{
'data' => [
{ 'type' => 'articles',
Expand All @@ -232,11 +232,11 @@ class DocumentSingleResourceObjectDecorator < Roar::Decorator

# include: ROAR API
it 'blaaaaaaa' do
DocumentSingleResourceObjectDecorator.for_collection.new([article])
_(DocumentSingleResourceObjectDecorator.for_collection.new([article])
.to_hash(
fields: { articles: 'title', authors: [:email] },
include: :author
)
))
.must_equal Hash[{
'data' => [
{ 'type' => 'articles',
Expand Down Expand Up @@ -282,12 +282,12 @@ class CollectionResourceObjectDecorator < Roar::Decorator
}

it do
CollectionResourceObjectDecorator.for_collection.new([
_(CollectionResourceObjectDecorator.for_collection.new([
Article.new(1, 'My Article', 'An interesting read.'),
Article.new(2, 'My Other Article', 'An interesting read.')
]).to_json(
fields: { articles: :title }
).must_equal_json document
)).must_equal_json document
end
end

Expand Down Expand Up @@ -368,7 +368,7 @@ class DocumentResourceWithDifferentIdAtRoot < Roar::Decorator
}

it do
DocumentResourceWithDifferentIdAtRoot.new(article).to_json(include: 'comments')
_(DocumentResourceWithDifferentIdAtRoot.new(article).to_json(include: 'comments'))
.must_equal_json document
end
end
Expand Down Expand Up @@ -454,7 +454,7 @@ class DocumentResourceWithDifferentIdAtRelation < Roar::Decorator
}

it do
DocumentResourceWithDifferentIdAtRelation.new(article).to_json(include: 'comments')
_(DocumentResourceWithDifferentIdAtRelation.new(article).to_json(include: 'comments'))
.must_equal_json document
end
end
Expand Down Expand Up @@ -540,7 +540,7 @@ class DocumentAndRelationWithDifferentId < Roar::Decorator
}

it do
DocumentAndRelationWithDifferentId.new(article).to_json(include: 'comments')
_(DocumentAndRelationWithDifferentId.new(article).to_json(include: 'comments'))
.must_equal_json document
end
end
Expand Down
44 changes: 22 additions & 22 deletions test/jsonapi/member_name_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -44,48 +44,48 @@ class MemberNameTest < MiniTest::Spec

describe 'strict (default)' do
it 'permits alphanumeric ASCII characters, hyphens' do
MemberName.('99 Luftballons').must_equal '99luftballons'
MemberName.('Artist').must_equal 'artist'
MemberName.('Актер').must_equal ''
MemberName.('おまかせ').must_equal ''
MemberName.('auf-der-bühne').must_equal 'auf-der-bhne'
MemberName.('nouvelle_interprétation').must_equal 'nouvelle-interprtation'
_(MemberName.('99 Luftballons')).must_equal '99luftballons'
_(MemberName.('Artist')).must_equal 'artist'
_(MemberName.('Актер')).must_equal ''
_(MemberName.('おまかせ')).must_equal ''
_(MemberName.('auf-der-bühne')).must_equal 'auf-der-bhne'
_(MemberName.('nouvelle_interprétation')).must_equal 'nouvelle-interprtation'
end

it 'does not permit any reserved characters' do
MemberName.(UNICODE_RESERVED_CHARACTERS.join).must_equal ''
_(MemberName.(UNICODE_RESERVED_CHARACTERS.join)).must_equal ''
end

it 'hyphenates underscored words' do
MemberName.('playtime_report').must_equal 'playtime-report'
_(MemberName.('playtime_report')).must_equal 'playtime-report'
end
end

describe 'non-strict' do
it 'permits alphanumeric unicode characters, hyphens, underscores and spaces' do
MemberName.('99 Luftballons', strict: false).must_equal '99 Luftballons'
MemberName.('Artist', strict: false).must_equal 'Artist'
MemberName.('Актер', strict: false).must_equal 'Актер'
MemberName.('おまかせ', strict: false).must_equal 'おまかせ'
MemberName.('auf-der-bühne', strict: false).must_equal 'auf-der-bühne'
MemberName.('nouvelle_interprétation', strict: false).must_equal 'nouvelle_interprétation'
_(MemberName.('99 Luftballons', strict: false)).must_equal '99 Luftballons'
_(MemberName.('Artist', strict: false)).must_equal 'Artist'
_(MemberName.('Актер', strict: false)).must_equal 'Актер'
_(MemberName.('おまかせ', strict: false)).must_equal 'おまかせ'
_(MemberName.('auf-der-bühne', strict: false)).must_equal 'auf-der-bühne'
_(MemberName.('nouvelle_interprétation', strict: false)).must_equal 'nouvelle_interprétation'
end

it 'does not permit any reserved characters' do
MemberName.(UNICODE_RESERVED_CHARACTERS.join, strict: false).must_equal ''
_(MemberName.(UNICODE_RESERVED_CHARACTERS.join, strict: false)).must_equal ''
end

it 'does not permit hyphens, underscores or spaces at beginning or end' do
MemberName.(' 99 Luftballons ', strict: false).must_equal '99 Luftballons'
MemberName.('-Artist_', strict: false).must_equal 'Artist'
MemberName.('_Актер', strict: false).must_equal 'Актер'
MemberName.(' おまかせ', strict: false).must_equal 'おまかせ'
MemberName.('-auf-der-bühne', strict: false).must_equal 'auf-der-bühne'
MemberName.('nouvelle_interprétation_', strict: false).must_equal 'nouvelle_interprétation'
_(MemberName.(' 99 Luftballons ', strict: false)).must_equal '99 Luftballons'
_(MemberName.('-Artist_', strict: false)).must_equal 'Artist'
_(MemberName.('_Актер', strict: false)).must_equal 'Актер'
_(MemberName.(' おまかせ', strict: false)).must_equal 'おまかせ'
_(MemberName.('-auf-der-bühne', strict: false)).must_equal 'auf-der-bühne'
_(MemberName.('nouvelle_interprétation_', strict: false)).must_equal 'nouvelle_interprétation'
end

it 'preserves underscored words' do
MemberName.('playtime_report', strict: false).must_equal 'playtime_report'
_(MemberName.('playtime_report', strict: false)).must_equal 'playtime_report'
end
end
end
12 changes: 6 additions & 6 deletions test/jsonapi/post_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,12 @@ class JsonapiPostTest < MiniTest::Spec
subject { ArticleDecorator.new(Article.new(nil, nil, nil, nil, [])).from_json(post_article) }

it do
subject.title.must_equal 'Ember Hamster'
subject.author.id.must_equal '9'
subject.author.email.must_equal '9@nine.to'
_(subject.title).must_equal 'Ember Hamster'
_(subject.author.id).must_equal '9'
_(subject.author.email).must_equal '9@nine.to'
# subject.author.name.must_be_nil

subject.comments.must_equal [Comment.new('2'), Comment.new('3')]
_(subject.comments).must_equal [Comment.new('2'), Comment.new('3')]
end
end

Expand All @@ -60,7 +60,7 @@ class JsonapiPostTest < MiniTest::Spec
subject { ArticleDecorator.new(Article.new(nil, nil, nil, nil, [])).from_json(post_article) }

it do
subject.title.must_equal 'Ember Hamster'
_(subject.title).must_equal 'Ember Hamster'
end
end

Expand All @@ -72,7 +72,7 @@ class JsonapiPostTest < MiniTest::Spec
subject { ArticleDecorator.new(Article.new(nil, nil, nil, nil, [])).from_json(post_article) }

it do
subject.title.must_be_nil
_(subject.title).must_be_nil
end
end
end
8 changes: 4 additions & 4 deletions test/jsonapi/relationship_custom_naming_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,13 @@ class RecipeDecorator < Roar::Decorator
}

it 'renders a single object for non-empty to-one relationships with custom name' do
doc_relationships['best_chef'].must_be_nil
doc_relationships['bestChefEver'].wont_be_nil
_(doc_relationships['best_chef']).must_be_nil
_(doc_relationships['bestChefEver']).wont_be_nil
end

it 'renders an array for non-empty to-many relationships with custom name' do
doc_relationships['best_ingredients'].must_be_nil
doc_relationships['bestIngridients'].wont_be_nil
_(doc_relationships['best_ingredients']).must_be_nil
_(doc_relationships['bestIngridients']).wont_be_nil
end
end
end
Loading