spec/trax/serialization/adapters/json_spec.rb in trax_controller-0.1.3 vs spec/trax/serialization/adapters/json_spec.rb in trax_controller-0.1.4

- old
+ new

@@ -1,25 +1,15 @@ require 'spec_helper' -class NameCategorySerializer < ::ActiveModel::Serializer - attributes :name - has_many :subcategories, :serializer => NameCategorySerializer -end - -class NameProductSerializer < ::ActiveModel::Serializer - attributes :name - has_one :category, :serializer => NameCategorySerializer -end - describe Trax::Controller::Serialization::Adapters::Json do let(:category_flat_heads){ ::Category.new(:name => "flat heads") } let(:category_screwdrivers){ ::Category.new(:name => "screwdrivers", :subcategories => [category_flat_heads]) } let(:category_knives){ ::Category.new(:name => "knives") } let(:category_tools){ ::Category.new(:name => "tools", :subcategories => [category_screwdrivers, category_knives]) } let(:product_tool){ ::Product.new(:name => "Generics Multi-Purpose Tool", :category => category_tools) } let(:root_key){ 'root_key' } - let(:serializer){ ::NameProductSerializer.new(product_tool, :root => root_key) } + let(:serializer){ ::ProductWithCategorySerializer.new(product_tool, :root => root_key) } let!(:expected_root_key){ root_key.to_sym } let!(:expected_tool_hash){ { :name => product_tool.name, :category => { :name => category_tools.name, @@ -38,18 +28,18 @@ context "collection" do let(:category_cookware){ ::Category.new(:name => "cookware") } let(:product_pot){ ::Product.new(:name => "Pot", :category => category_cookware) } let(:collection){ [product_tool, product_pot] } - let!(:expected_root_key){ root_key.pluralize.to_sym } + let(:root_key){ 'root_keys' } let!(:expected_pot_hash){ { :name => product_pot.name, :category => { :name => category_cookware.name, :subcategories => [] } }} - let(:serializer){ ::ActiveModel::Serializer::ArraySerializer.new(collection, :root => root_key, :serializer => ::NameProductSerializer) } + let(:serializer){ ::ActiveModel::Serializer::CollectionSerializer.new(collection, :root => root_key, :serializer => ::ProductWithCategorySerializer) } it { expect(serialized).to eq(expected_root_key => [expected_tool_hash, expected_pot_hash]) } end end