From 232e3675600513f564437cebdcc03abae237a2c7 Mon Sep 17 00:00:00 2001 From: Mateo Murphy Date: Thu, 12 Feb 2015 17:48:43 -0500 Subject: [PATCH] Add serialization_scope_name_test --- .../serialization_scope_name_test.rb | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 test/action_controller/serialization_scope_name_test.rb diff --git a/test/action_controller/serialization_scope_name_test.rb b/test/action_controller/serialization_scope_name_test.rb new file mode 100644 index 00000000..f1e81761 --- /dev/null +++ b/test/action_controller/serialization_scope_name_test.rb @@ -0,0 +1,67 @@ +require 'test_helper' +require 'pathname' + +class DefaultScopeNameTest < ActionController::TestCase + TestUser = Struct.new(:name, :admin) + + class UserSerializer < ActiveModel::Serializer + attributes :admin? + def admin? + current_user.admin + end + end + + class UserTestController < ActionController::Base + protect_from_forgery + + before_filter { request.format = :json } + + def current_user + TestUser.new('Pete', false) + end + + def render_new_user + render json: TestUser.new('pete', false), serializer: UserSerializer, adapter: :json_api + end + end + + tests UserTestController + + def test_default_scope_name + get :render_new_user + assert_equal '{"users":{"admin?":false}}', @response.body + end +end + +class SerializationScopeNameTest < ActionController::TestCase + TestUser = Struct.new(:name, :admin) + + class AdminUserSerializer < ActiveModel::Serializer + attributes :admin? + def admin? + current_admin.admin + end + end + + class AdminUserTestController < ActionController::Base + protect_from_forgery + + serialization_scope :current_admin + before_filter { request.format = :json } + + def current_admin + TestUser.new('Bob', true) + end + + def render_new_user + render json: TestUser.new('pete', false), serializer: AdminUserSerializer, adapter: :json_api + end + end + + tests AdminUserTestController + + def test_override_scope_name_with_controller + get :render_new_user + assert_equal '{"admin_users":{"admin?":true}}', @response.body + end +end \ No newline at end of file