test/unit/serializer/serializer_test.rb in jsonapi-resources-0.0.12 vs test/unit/serializer/serializer_test.rb in jsonapi-resources-0.0.13
- old
+ new
@@ -7,12 +7,18 @@
def setup
@post = Post.find(1)
@fred = Person.find_by(name: 'Fred Reader')
@expense_entry = ExpenseEntry.find(1)
+
+ JSONAPI.configuration.json_key_format = :camelized_key
end
+ def after_teardown
+ JSONAPI.configuration.json_key_format = :underscored_key
+ end
+
def test_serializer
assert_hash_equals(
{
posts: {
@@ -26,11 +32,11 @@
tags: [1, 2, 3],
comments: [1, 2]
}
}
},
- JSONAPI::ResourceSerializer.new.serialize_to_hash(
+ JSONAPI::ResourceSerializer.new(PostResource).serialize_to_hash(
PostResource.new(@post)))
end
def test_serializer_limited_fieldset
@@ -42,11 +48,11 @@
links: {
author: 1
}
}
},
- JSONAPI::ResourceSerializer.new.serialize_to_hash(
+ JSONAPI::ResourceSerializer.new(PostResource).serialize_to_hash(
PostResource.new(@post),
fields: {posts: [:id, :title, :author]}))
end
def test_serializer_include
@@ -76,11 +82,11 @@
posts: [1, 2, 11]
}
}]
}
},
- JSONAPI::ResourceSerializer.new.serialize_to_hash(
+ JSONAPI::ResourceSerializer.new(PostResource).serialize_to_hash(
PostResource.new(@post), include: [:author]))
end
def test_serializer_key_format
@@ -109,11 +115,11 @@
posts: [1, 2, 11]
}
}]
}
},
- JSONAPI::ResourceSerializer.new.serialize_to_hash(
+ JSONAPI::ResourceSerializer.new(PostResource).serialize_to_hash(
PostResource.new(@post),
include: [:author],
key_formatter: UnderscoredKeyFormatter))
end
@@ -177,11 +183,11 @@
}
}
]
}
},
- JSONAPI::ResourceSerializer.new.serialize_to_hash(
+ JSONAPI::ResourceSerializer.new(PostResource).serialize_to_hash(
PostResource.new(@post), include: [:comments, 'comments.tags']))
end
def test_serializer_include_has_many_sub_objects_only
@@ -223,11 +229,11 @@
}
}
]
}
},
- JSONAPI::ResourceSerializer.new.serialize_to_hash(
+ JSONAPI::ResourceSerializer.new(PostResource).serialize_to_hash(
PostResource.new(@post), include: ['comments.tags']))
end
def test_serializer_include_has_one_sub_objects_only
@@ -257,11 +263,11 @@
}
}
]
}
},
- JSONAPI::ResourceSerializer.new.serialize_to_hash(
+ JSONAPI::ResourceSerializer.new(PostResource).serialize_to_hash(
PostResource.new(@post), include: ['author.comments']))
end
def test_serializer_different_foreign_key
@@ -297,11 +303,11 @@
}
}
]
}
},
- JSONAPI::ResourceSerializer.new.serialize_to_hash(
+ JSONAPI::ResourceSerializer.new(PersonResource).serialize_to_hash(
PersonResource.new(@fred), include: ['comments']))
end
def test_serializer_array_of_resources
@@ -396,11 +402,11 @@
}
}
]
}
},
- JSONAPI::ResourceSerializer.new.serialize_to_hash(
+ JSONAPI::ResourceSerializer.new(PostResource).serialize_to_hash(
posts, include: ['comments', 'comments.tags']))
end
def test_serializer_array_of_resources_limited_fields
@@ -480,11 +486,11 @@
comments: [1]
}
}]
}
},
- JSONAPI::ResourceSerializer.new.serialize_to_hash(
+ JSONAPI::ResourceSerializer.new(PostResource).serialize_to_hash(
posts,
include: ['comments', 'author', 'comments.tags', 'author.posts'],
fields: {
people: [:id, :email, :comments],
posts: [:id, :title, :author],
@@ -518,20 +524,21 @@
email: 'lazy@xyz.fake',
dateJoined: '2013-10-31 17:25:00 -0400',
}]
}
},
- JSONAPI::ResourceSerializer.new.serialize_to_hash(
+ JSONAPI::ResourceSerializer.new(ExpenseEntryResource).serialize_to_hash(
ExpenseEntryResource.new(@expense_entry),
include: ['iso_currency', 'employee'],
fields: {people: [:id, :name, :email, :date_joined]}
)
)
end
def test_serializer_empty_links_null_and_array
- planet_hash = JSONAPI::ResourceSerializer.new.serialize_to_hash(PlanetResource.new(Planet.find(8)))
+ planet_hash = JSONAPI::ResourceSerializer.new(PlanetResource).serialize_to_hash(
+ PlanetResource.new(Planet.find(8)))
assert_hash_equals(
{
planets: {
id: 8,
@@ -554,10 +561,10 @@
planets = []
Planet.find(7, 8).each do |planet|
planets.push PlanetResource.new(planet)
end
- planet_hash = JSONAPI::ResourceSerializer.new.serialize_to_hash(
+ planet_hash = JSONAPI::ResourceSerializer.new(PlanetResource).serialize_to_hash(
planets,
include: ['planet_type'],
fields: { planet_types: [:id, :name] }
)