Nest scope under context option

This commit is contained in:
Adrian Mugnolo and Santiago Pastorino
2014-01-06 15:35:21 -02:00
committed by Santiago Pastorino
parent 8bd2542ed2
commit 0d8ef2b165
9 changed files with 56 additions and 85 deletions

View File

@@ -15,5 +15,32 @@ module ActiveModel
assert_equal(2, serializer.context.b)
end
end
class ContextAssociationTest < ActiveModel::TestCase
def setup
@association = UserSerializer._associations[:profile]
@old_association = @association.dup
@user = User.new({ name: 'Name 1', email: 'mail@server.com', gender: 'M' })
@user_serializer = UserSerializer.new(@user, context: { admin: true })
end
def teardown
UserSerializer._associations[:profile] = @old_association
end
def test_context_passed_through
@association.serializer_class = Class.new(ActiveModel::Serializer) do
def name
context[:admin] ? 'Admin' : 'User'
end
attributes :name
end
assert_equal({
name: 'Name 1', email: 'mail@server.com', profile: { name: 'Admin' }
}, @user_serializer.serializable_hash)
end
end
end
end

View File

@@ -1,49 +0,0 @@
require 'test_helper'
module ActiveModel
class Serializer
class ScopeTest < ActiveModel::TestCase
def setup
@serializer = ProfileSerializer.new(nil, scope: current_user)
end
def test_scope
assert_equal('user', @serializer.scope)
end
private
def current_user
'user'
end
end
class NestedScopeTest < ActiveModel::TestCase
def setup
@association = UserSerializer._associations[:profile]
@old_association = @association.dup
@user = User.new({ name: 'Name 1', email: 'mail@server.com', gender: 'M' })
@user_serializer = UserSerializer.new(@user, scope: 'user')
end
def teardown
UserSerializer._associations[:profile] = @old_association
end
def test_scope_passed_through
@association.serializer_class = Class.new(ActiveModel::Serializer) do
def name
scope
end
attributes :name
end
assert_equal({
name: 'Name 1', email: 'mail@server.com', profile: { name: 'user' }
}, @user_serializer.serializable_hash)
end
end
end
end