Commit Graph

272 Commits

Author SHA1 Message Date
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
João Moura
6784866a2d Merge pull request #1079 from bf4/all_serializer_have_object
Add ArraySerializer#object like Serializer
2015-09-03 01:43:14 -03:00
Lucas Hosseini
b6b8dff8c9 Merge remote-tracking branch 'upstream/master' into improve-tests 2015-09-01 21:25:28 +02:00
João Moura
e0b74d8731 Merge pull request #1096 from beauby/fix-attribute
Fix definition of serializer attributes with multiple calls to `attri…
2015-09-01 09:42:59 -03:00
João Moura
8d3a89e106 Merge pull request #1105 from beauby/add-activerecord-fixtures
Add ActiveRecord-backed fixtures.
2015-08-31 02:37:57 -03:00
Benjamin Fleischer
005f71e2c2 Add ActiveModelSerializers.logger with default null device 2015-08-30 23:26:31 -05:00
Lucas Hosseini
83f11acd66 Add Gemfile dependencies to ActiveRecord and sqlite3. 2015-08-31 06:19:16 +02:00
Lucas Hosseini
d0d00d02a0 Add ActiveRecord-backed fixtures. 2015-08-31 05:11:32 +02:00
Lucas Hosseini
8482abfac7 Move id and json_api_type methods from Serializer to JsonApi. 2015-08-31 02:32:38 +02:00
Lucas Hosseini
c5446d759f Remove traces of embed option. 2015-08-31 01:26:22 +02:00
Lucas Hosseini
995bbcc18d Fix definition of serializer attributes with multiple calls to attribute instead of one single call to attributes. 2015-08-28 21:06:10 +02:00
Lucas Hosseini
4bba16bf4e Factor with_adapter + force cache clear before each test. 2015-08-28 17:00:24 +02:00
João Moura
64168cbecd Merge pull request #1081 from beauby/jsonapi-singular-plural-config
Add configuration option to set resource type to singular/plural
2015-08-28 07:47:55 -03:00
Benjamin Fleischer
d315151e8a Fix warnings
JRuby-specific: fix 'warning: (...) interpreted as grouped expression'
2015-08-26 09:22:02 -05:00
Benjamin Fleischer
9aad8b4d29 Cleanup CaptureWarnings after_run 2015-08-26 09:19:36 -05:00
Benjamin Fleischer
a8e9bb1c14 Remove uniq on warnings that confused output 2015-08-26 09:19:36 -05:00
Benjamin Fleischer
530a1bdfd7 Compartmentalize test helper support 2015-08-26 09:19:36 -05:00
João Moura
af280abbb7 Merge pull request #1066 from rails-api/appveyor
Adding appveyor to the project
2015-08-26 04:46:16 -03:00
Lucas Hosseini
91235ba7bc Add configuration option to set resource type to singular/plural with jsonapi. 2015-08-24 22:55:22 +02:00
Benjamin Fleischer
dc4ee94fea Add ArraySerializer#object like Serializer 2015-08-24 13:51:46 -05:00
João Moura
87c47f8fdc Merge pull request #1041 from bacarini/master
Adding pagination links
2015-08-22 13:38:32 -03:00
Eric Guo
30463f88fa Make testing suite running and pass in Windows
thanks @bf4 give many help and suggestion, original PR https://github.com/rails-api/active_model_serializers/pull/1014
2015-08-21 21:07:52 +08:00
Bruno Bacarini
d50262edbe test pagination links the way the controller does 2015-08-20 11:32:03 -03:00
Bruno Bacarini
01eab3bdb4 send whole request context to model serializer 2015-08-19 10:48:48 -03: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
e0d050d2af remove resource and options attr_reader from array_serialize 2015-08-18 19:04:03 -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
331218d1c3 add test to class of 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
Bruno Bacarini
1fe8b06986 exchange pagination class to inside json_api scope 2015-08-18 19:04:02 -03:00
Benjamin Fleischer
215fb85c7f Test caller line parsing and digesting 2015-08-18 17:32:29 -04:00
Benjamin Fleischer
dca286b0ec Lead by example: lint PORO model 2015-08-18 12:59:12 -04:00
Aaron Lerch
35c8f0d835 Update fragment cache to support namespaced objects 2015-08-17 17:12:30 -04:00
Mikhail Topolskiy
e8e4bdefd2 Use underscored json_root 2015-08-13 20:31:48 +03:00
Josh Lane
033ce8e88d allow for a type attribute
* "namespace" json_api specific type method
2015-08-11 08:33:05 -07:00
Josh Lane
f6e3d4e1f9 allow id attribute to be overriden 2015-08-04 09:22:05 -07:00
João Moura
c703d0f35c Merge pull request #985 from bolshakov/feature/each_association
Associations implementation refactoring
2015-07-31 10:57:03 -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
João Moura
b78126565c Merge pull request #954 from bf4/encapsulate_serialization
Encapsulate serialization in ActiveModel::SerializableResource
2015-07-31 03:09:58 -03:00
João Moura
7bc16666fe Merge pull request #972 from bf4/capture_app_warnings
Capture app warnings on test run
2015-07-30 22:24:08 -03:00
Артём Большаков
2952a332e0 Associations refactoring
* Move all associations related code from Serializer class to Associations module
* Introduce Reflection class hierarchy
* Introduce Association class
* Rid off Serializer#each_association
* Introduce Serializer#associations enumerator
2015-07-30 11:20:29 +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
João Moura
9817a5b595 updating tests 2015-07-23 02:11:34 -04:00
João Moura
6266b6a002 Merge pull request #1006 from bf4/inflector-testing
Fix adapter inflection bug for api -> API
2015-07-20 23:20:00 -04:00
vyrak bunleang
1b09d0ec42 array serializer uses root option for json_key if available 2015-07-16 15:34:19 -06:00
vyrak bunleang
1d31096600 include old implicit serialization custom root tests with failing empty array test 2015-07-16 15:32:09 -06:00
Marek Pietrucha
e5ccb8e4dd root option is working (fixed #986) 2015-07-16 15:32:09 -06:00
Jiajia Wang
91ffec41af Add test for ArraySerializer json_key method
test json key when resource is empty
2015-07-16 11:11:14 +10:00
Benjamin Fleischer
e7174a7820 Capture and print app warnings on test run
Configure not to fail the test, for now
2015-07-14 01:05:26 -05:00
Rodrigo Ra
851d121ea8 fix transient test failures 2015-07-13 22:44:04 -03:00
João Moura
775737619a Merge pull request #996 from bf4/serializer_lint
Add linter for serializable resource
2015-07-13 19:37:39 -04:00
Rob McFadzean
506739d4fb Added a (failing) test for when inflecting API 2015-07-10 11:23:55 +09:30
Benjamin Fleischer
28174e297d Add linter for serializable resource 2015-07-09 11:20:19 -05:00
João Moura
7fb94234a8 adding json-api meta test help 2015-07-08 10:15:14 -03:00
Rodrigo Ra
df63b59512 Add key option to serializer associations 2015-07-05 19:47:58 -03:00
João Moura
ac1991fd6b Merge pull request #982 from bf4/typo
Fix typo
2015-07-02 19:06:32 -03:00
Benjamin Fleischer
58a237ead1 Fix typo 2015-07-02 16:35:27 -05:00
Benjamin Fleischer
1bf2825909 Remove unused PORO#to_param 2015-07-02 16:34:10 -05:00
João Moura
952d8adcdc Merge pull request #978 from regonn/fix-generators-template
fix generators template bug
2015-07-02 00:31:55 -03:00
regonn
59a177e8b5 add serializer template test 2015-07-01 13:42:16 +09:00
Hugo Almeida
f25071ca70 Fixes virtual value not being used 2015-06-29 10:48:12 +09:00
Rodrigo Ra
7412c8d1c8 Fix transient tests failures 2015-06-26 09:33:53 -03:00
Benjamin Fleischer
17d560eae4 Account for different handling of symbol keys in Rails 4.0
Comparing as a JSON string vs. as the Hash that is convert to JSON
works around the different Hash representations.

This likely has to do with the introduction of
config.action_dispatch.perform_deep_munge in Rails 4.1
See Rails issue 13420

  1) Failure:
  ActiveModel::Serializer::Adapter::Json::HasManyTestTest#test_has_many_with_no_serializer
  [active_model_serializers/test/adapter/json/has_many_test.rb:36]:
  --- expected
  +++ actual
  @@ -1 +1 @@
  -{:id=>42, :tags=>[{"attributes"=>{"id"=>1, "name"=>"#hash_tag"}}]}
  +{:id=>42, :tags=>[{"attributes"=>{:id=>1, :name=>"#hash_tag"}}]}

  2) Failure:
  ActiveModel::Serializer::AssociationsTest#test_has_many_with_no_serializer
  [active_model_serializers/test/serializers/associations_test.rb:74]:
  --- expected
  +++ actual
  @@ -1 +1 @@
  -[{"attributes"=>{"name"=>"#hashtagged"}}]
  +[{"attributes"=>{:name=>"#hashtagged"}}]
2015-06-26 02:16:35 -03:00
João Moura
741c4a4b51 updating tests to work with new virtual_value implementation 2015-06-26 02:16:35 -03:00
Benjamin Fleischer
cf77786da2 Fix #955 2015-06-26 02:16:34 -03:00
Justin Aiken
3710c32cee Add some failing tests around has_many assocs...
..where no serializer is defined for the thing that is has_many'd
2015-06-26 02:16:34 -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
Benjamin Fleischer
81935c8114 Restore has_one to generator
per #822 since it was readded in #725
2015-06-25 14:00:27 -05:00
João Moura
f67fd976ec Removing/Updating tests based on new FlattenJson adapter 2015-06-18 19:18:11 -03:00
João Moura
65e0d79195 pluralising root key when using arraySerializer 2015-06-15 15:59:01 -03:00
João Moura
329691276a disabling custom root option 2015-06-15 15:58:39 -03:00
João Moura
d061b2e9f4 enabling flatten json as default adapter 2015-06-15 13:49:24 -03:00
João Moura
1ea5608e78 updating tests to match new adapters structure 2015-06-15 13:39:36 -03:00
João Moura
37114e9d5b removing unnecessary root parameter on fragment cache 2015-06-13 15:48:33 -03:00
Lachlan Sylvester
97e82c3eb7 use model name to determine the type 2015-06-13 19:45:46 +10:00
João Moura
de23501995 Merge pull request #949 from edwardloveall/el-870-fix
Don't pass serializer option to associated serializers
2015-06-13 03:01:25 -03:00
João Moura
6251b90d25 Merge pull request #902 from cristianbica/serializer_file_digest
Added serializer file digest to the cache_key
2015-06-12 18:56:43 -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
Santiago Pastorino
460150fef2 Fix No such file or directory tmp/cache issue in tests 2015-06-10 21:23:23 -03:00
Santiago Pastorino
4752e6723a Make resource generator invoke serializer generator 2015-06-10 20:45:33 -03:00
Santiago Pastorino
e117615465 This should be MAJOR >= 4 2015-06-10 20:26:37 -03:00
Santiago Pastorino
3fb55db1cd Load generators on test_helper and avoid repetead code 2015-06-10 20:26:37 -03:00
Santiago Pastorino
cbc7f114c0 Move generators test to it's own directory 2015-06-10 20:26:24 -03: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
João Moura
7b0a85fdda Merge pull request #936 from insphire/fix-meta-with-custom-root
Include meta when using json adapter with custom root
2015-06-08 19:55:03 -03:00
Thiago Fernandes Massa
5fac4d8f33 Update poro.rb 2015-06-05 10:50:35 +02: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
Guillermo Iguaran
f7fb4dbb98 Merge pull request #909 from joaomdmoura/json-api-default
Defining Json-API Adapter as Default
2015-05-20 20:50:19 -05:00
Ryan Schlesinger
a5db2c52c5 Clearer exception description 2015-05-20 09:19:32 -07:00
Ryan Schlesinger
9355416ad0 Add rescue_from handler to clear state
Fixes #917
2015-05-19 17:23:29 -07:00