diff --git a/lib/roar/json/json_api.rb b/lib/roar/json/json_api.rb index f0dfe174..4ba96fa9 100644 --- a/lib/roar/json/json_api.rb +++ b/lib/roar/json/json_api.rb @@ -141,8 +141,9 @@ module Fragment module Options # TODO: make sure we don't change original params options. Include = ->(options, decorator) do - return options unless fields = options[:fields] return options unless included = options[:include] + included << :id # FIXME: changes original options. + return options unless fields = options[:fields] internal_options = {} internal_options[:include] = [*included, :included] @@ -152,7 +153,7 @@ module Options fields.each do |k,v| internal_options[:included][k] = {include: v+[:id]} end - # pp internal_options + # pp internal_options options.merge(internal_options) end end diff --git a/test/jsonapi/fieldsets_test.rb b/test/jsonapi/fieldsets_test.rb index 19127b8c..b784376f 100644 --- a/test/jsonapi/fieldsets_test.rb +++ b/test/jsonapi/fieldsets_test.rb @@ -40,7 +40,7 @@ class DocumentSingleResourceObjectDecorator < Roar::Decorator it "includes scalars" do DocumentSingleResourceObjectDecorator.new(article). - to_json(include: [:title, :id]). + to_json(include: [:title]). must_equal( { "data" => { "type" => "articles", @@ -78,7 +78,7 @@ class DocumentSingleResourceObjectDecorator < Roar::Decorator it "includes other compound objects" do DocumentSingleResourceObjectDecorator.new(article). to_hash( - include: [:id, :title, :included], + include: [:title, :included], included: {include: [:author]}). must_equal Hash[{ :data=> @@ -96,7 +96,7 @@ class DocumentSingleResourceObjectDecorator < Roar::Decorator it "supports :includes" do DocumentSingleResourceObjectDecorator.for_collection.new([article]). to_hash( - include: [:id, :title, :included], + include: [:title, :included], included: {include: [:author]}). must_equal Hash[{ :data=>[ @@ -113,7 +113,7 @@ class DocumentSingleResourceObjectDecorator < Roar::Decorator it "blaaaaaaa" do DocumentSingleResourceObjectDecorator.for_collection.new([article]). to_hash( - include: [:id, :title, :author], + include: [:title, :author], fields: {author: [:email]} ). must_equal Hash[{