Lucas Hosseini
ebb05959d3
Merge remote-tracking branch 'upstream/master' into improve-tests
2015-09-07 09:03:17 +02:00
Benjamin Fleischer
228cc1c92a
Rubocop: Consistent spacing
2015-09-03 20:51:40 -05:00
Benjamin Fleischer
bdfe13c527
Style/StringLiterals single quote all the things
2015-09-03 20:50:45 -05:00
Benjamin Fleischer
09c97de90d
Add Style enforcer (via Rubocop)
...
It will fail the build, but as it is currently,
most of the cops are 'todos'. Great for new contributors.. :)
2015-09-03 20:50:45 -05:00
Lucas Hosseini
4bba16bf4e
Factor with_adapter + force cache clear before each test.
2015-08-28 17:00:24 +02:00
Benjamin Fleischer
d315151e8a
Fix warnings
...
JRuby-specific: fix 'warning: (...) interpreted as grouped expression'
2015-08-26 09:22:02 -05:00
Bruno Bacarini
5031eb9f96
add test to prev and first with additional params
2015-08-18 19:04:04 -03:00
Bruno Bacarini
2c2f948fa0
Add pagination links automatically
...
Pagination links will be included in your response automatically as long
as the resource is paginated using Kaminari or WillPaginate
and if you are using a JSON-API adapter. The others adapters does not have this feature.
2015-08-18 19:04:04 -03:00
Bruno Bacarini
a41d90cce4
add self to pagination links
2015-08-18 19:04:04 -03:00
Bruno Bacarini
7be25fef14
include query_parameters on pagination links as well
2015-08-18 19:04:03 -03:00
Bruno Bacarini
e62a7d6f34
return complete URIs on pagination links
2015-08-18 19:04:03 -03:00
Bruno Bacarini
e040d6fcce
add action test to pagination links
2015-08-18 19:04:02 -03:00
João M. D. Moura
88eabdf6ac
fixing tests by using a Profile intance to avoid unrelated warning
2015-07-31 03:28:50 -03:00
Benjamin Fleischer
df140293d3
Remove unused controller rescue_with_handler
...
Per
https://github.com/rails-api/active_model_serializers/pull/954#discussion_r32589882
Ref 917, 918
2015-07-23 11:06:11 -05:00
Benjamin Fleischer
a66df3009a
Encapsulate serialization in ActiveModel::SerializableResource
...
Usage: ActiveModel::SerializableResource.serialize(resource, options)
2015-07-23 11:05:23 -05:00
vyrak bunleang
1d31096600
include old implicit serialization custom root tests with failing empty array test
2015-07-16 15:32:09 -06:00
Rodrigo Ra
7412c8d1c8
Fix transient tests failures
2015-06-26 09:33:53 -03:00
João Moura
d589268f95
adding new tests to cover array and object rendering
2015-06-26 02:15:42 -03:00
Aaron Lerch
6892ca39c9
Default the generated cache key to use custom #strftime instead of raw #to_s to achieve more accurate precision
2015-06-25 23:40:18 -04:00
João Moura
f67fd976ec
Removing/Updating tests based on new FlattenJson adapter
2015-06-18 19:18:11 -03:00
João Moura
329691276a
disabling custom root option
2015-06-15 15:58:39 -03:00
João Moura
1ea5608e78
updating tests to match new adapters structure
2015-06-15 13:39:36 -03:00
Benjamin Fleischer
14439aada4
Use model that doesn't fail with race condition
...
For some reason, the post would sometimes be serialized as
"{\"id\":\"1\",
+ \"type\":\"posts\", \"attributes\":{\"title\":\"New Post\",\"body\":\"Body\"},
\"comments\":[{\"id\":1,\"body\":\"ZOMG A COMMENT\"}],
\"blog\":{\"id\":999,\"name\":\"Custom blog\"},
\"author\":{\"id\":1,\"name\":\"Joao Moura.\"}}"
instead of:
"{\"id\":1,
- \"title\":\"New Post\",\"body\":\"Body\",
\"comments\":[{\"id\":1,\"body\":\"ZOMG A COMMENT\"}],
\"blog\":{\"id\":999,\"name\":\"Custom blog\"},\
"author\":{\"id\":1,\"name\":\"Joao Moura.\"}}"
To reproduce prior to this PR:
SEED=55284 rake
1) Failure:
ActionController::Serialization::ExplicitSerializerTest#test_render_using_explicit_each_serializer
[active_model_serializers/test/action_controller/explicit_serializer_test.rb:139]:
--- expected
+++ actual
@@ -1 +1 @@
-"{\"id\":1,\"title\":\"New
Post\",\"body\":\"Body\",\"comments\":[{\"id\":1,\"body\":\"ZOMG A
COMMENT\"}],\"blog\":{\"id\":999,\"name\":\"Custom
blog\"},\"author\":{\"id\":1,\"name\":\"Joao Moura.\"}}"
+"{\"id\":\"1\",\"type\":\"posts\",\"attributes\":{\"title\":\"New
Post\",\"body\":\"Body\"},\"comments\":[{\"id\":1,\"body\":\"ZOMG A
COMMENT\"}],\"blog\":{\"id\":999,\"name\":\"Custom
blog\"},\"author\":{\"id\":1,\"name\":\"Joao Moura.\"}}"
137 runs, 211 assertions, 1 failures, 0 errors, 0 skips
rake aborted!
Command failed with status (1): [ruby -I"lib:test"
-r./test/test_helper.rb
"/$HOME/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/rake/rake_test_loader.rb"
"test/action_controller/adapter_selector_test.rb"
"test/action_controller/explicit_serializer_test.rb"
"test/action_controller/json_api_linked_test.rb"
"test/action_controller/rescue_from_test.rb"
"test/action_controller/serialization_scope_name_test.rb"
"test/action_controller/serialization_test.rb"
"test/adapter/fragment_cache_test.rb"
"test/adapter/json/belongs_to_test.rb"
"test/adapter/json/collection_test.rb"
"test/adapter/json/has_many_test.rb"
"test/adapter/json_api/belongs_to_test.rb"
"test/adapter/json_api/collection_test.rb"
"test/adapter/json_api/has_many_embed_ids_test.rb"
"test/adapter/json_api/has_many_explicit_serializer_test.rb"
"test/adapter/json_api/has_many_test.rb"
"test/adapter/json_api/has_one_test.rb"
"test/adapter/json_api/linked_test.rb" "test/adapter/json_test.rb"
"test/adapter/null_test.rb" "test/adapter_test.rb"
"test/array_serializer_test.rb" "test/serializers/adapter_for_test.rb"
"test/serializers/associations_test.rb"
"test/serializers/attribute_test.rb"
"test/serializers/attributes_test.rb" "test/serializers/cache_test.rb"
"test/serializers/configuration_test.rb"
"test/serializers/fieldset_test.rb"
"test/serializers/generators_test.rb" "test/serializers/meta_test.rb"
"test/serializers/options_test.rb"
"test/serializers/serializer_for_test.rb"
"test/serializers/urls_test.rb" ]
/$HOME/.rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in
`eval'
/$HOME/.rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in
`<main>'
Tasks: TOP => default => test
(See full trace by running task with --trace)
2015-06-12 11:27:28 -05:00
Benjamin Fleischer
a5554e0d9f
Use a different controller in different tests
...
A number of test were defining and using the same controller
MyController = Class.new(ActionController::Base)
which was causing some state to leak across tests.
2015-06-12 11:27:20 -05:00
Edward Loveall
0f0ef2baf5
Don't pass serializer option to associated serializers
...
Fixes #870
Commit af81a40 introduced passing a serializer's 'options'
along to its associated model serializers.
Thus, an explicit 'each_serializer' passed to render for a
singular resource would be passed on as the implicit 'serializer'
for its associations.
With @bf4
2015-06-10 18:20:34 -04:00
Chris Branson
d34bba07b9
Ensure the adapters honor a custom root option and include meta when required
2015-06-04 17:33:41 +01:00
João Moura
a40df8fd3d
reverting PR #909 and adding json api usage advise on readme
2015-05-27 18:35:00 -03:00
Benedikt Deicke
4f576a1463
Adjusts JsonApi adapter to serialize relationships in a nested relationships hash
2015-05-21 16:35:35 +02:00
Benedikt Deicke
ca41901fb8
Adjusts JsonApi adapter to serialize attributes in a nested attributes hash
2015-05-21 16:23:01 +02:00
João Moura
5f05944826
Merge pull request #918 from aceofsales/rescue_from
...
Adding rescue_with_handler to clear state
2015-05-20 23:39:45 -03:00
Ryan Schlesinger
9355416ad0
Add rescue_from handler to clear state
...
Fixes #917
2015-05-19 17:23:29 -07:00
João Moura
9b502a4ae0
changing tests name to support new default adapter
2015-05-11 16:23:38 -03:00
João Moura
fc6276cab8
Merge pull request #888 from groyoh/fix-action-controller-test-name
...
Changed duplicated test name in action controller test
2015-04-28 12:09:02 -03:00
groyoh
1ef2badb32
Changed duplicated test name in action controller test
2015-04-27 21:22:28 +02:00
João Moura
49e41cb83c
adding tests order config
2015-04-27 15:45:49 -03:00
João Moura
792fb8a905
Adding Fragment Cache to AMS
...
It's an upgrade based on the new Cache implementation #693 .
It allows to use the Rails conventions to cache
specific attributes or associations.
It's based on the Cache Composition implementation.
2015-04-05 18:19:57 -03:00
Mateo Murphy
9480b567ef
Refactor TestUser in SerializationScopeNameTest
...
Use the same base class we use for other test models
2015-03-23 13:44:30 -04:00
Mateo Murphy
33f3a88ba0
Implement included and id and type as per spec
2015-03-22 20:43:56 -04:00
Mateo Murphy
d82c599c68
Always use plural for linked types
...
Although spec is agnostic about inflection rules, examples given are plural
2015-03-22 20:43:11 -04:00
Mateo Murphy
0f55f21266
Update format of links
2015-03-22 20:41:20 -04:00
Mateo Murphy
da86747a3e
Use symbol for root in jsonapi, fix tests
2015-03-22 20:38:29 -04:00
Guillermo Iguaran
b68d7f4826
Merge pull request #852 from mateomurphy/serializer-options-fix
...
Fix options merge order in `each_association`
2015-03-22 18:54:07 -05:00
Mateo Murphy
03372ea61d
Fix options merge order in each_association
...
Custom association serializers were getting clobbered when using an each serializer.
2015-03-20 00:22:46 -04:00
Mateo Murphy
ca985e1afd
Use association value for determining serializer used
...
Ensures overridden association value works when orignal association does not return a result.
2015-03-19 23:28:00 -04:00
Robbie Pitts
ad5677c4ec
Make json api adapter 'include' option accept an array, accommodate comma delimited string for legacy reasons
2015-03-11 10:01:44 -04:00
Mateo Murphy
232e367560
Add serialization_scope_name_test
2015-02-12 17:48:43 -05:00
Joao Moura
8a432ad2b3
Adding cache support to version 0.10.0
...
It's a new implementation of cache based on ActiveSupport::Cache.
The implementation abstracts the cache in Adapter class on a
private method called cached_object, this method is intended
to be used on Adapters inside serializable_hash method in order
to cache each instance of the object that will be returned by
the serializer.
Some of its features are:
- A different syntax. (no longer need the cache_key method).
- An options argument that have the same arguments of ActiveSupport::Cache::Store, plus a key option that will be the prefix of the object cache on a pattern "#{key}-#{object.id}".
- It cache the objects individually and not the whole Serializer return, re-using it in different requests (as a show and a index method for example.)
2015-02-02 14:53:34 -02:00
Alexandre de Oliveira
e47231cdc8
Support overriding association methods
...
You can override associations to define custom scope on them.
2015-01-29 16:52:18 -02:00
Nicolás Hock Isaza
1d7d9fd6aa
Fix nested include attributes
...
When the requests asked for a nested attribute in the `include` and it's
missing or empty, don't break because the type of the object can't be
determined.
If the request is for a collection and none of the elements has the
attribute, it will not be added to the `linked` key, similar to what
happens with simple includes.
2015-01-13 14:49:58 -05:00
Alexandre de Oliveira
bd27da1b76
Adds support for meta attribute
...
Currently, 0.10.0.pre doesn't support `meta` option in `render`. This
way, there's no way to support features such as pagination. `0.9` had
this feature in place.
This adds support for it, as well as fixes small things in README.md.
This won't support `meta` in array responses because arrays don't have
keys, obviously. Also, the response should have a `root` key, otherwise
no `meta` will be included.
In some cases, for example using JsonApi, ArraySerializer will result in
a response with a `root`. In that case, `meta` will be included.
2015-01-05 02:56:33 -02:00