47 lines
1.1 KiB
Ruby
47 lines
1.1 KiB
Ruby
|
require 'test_helper'
|
||
|
|
||
|
class KeywordTest < ActiveSupport::TestCase
|
||
|
class Collection
|
||
|
attr_accessor :id, :name
|
||
|
|
||
|
def initialize(id, name)
|
||
|
@id = id
|
||
|
@name = name
|
||
|
end
|
||
|
|
||
|
def cover(size)
|
||
|
"foo_#{size}"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
setup do
|
||
|
RablRails::Library.reset_instance
|
||
|
@context = Context.new
|
||
|
@user = User.new(1, 'Marty')
|
||
|
@collections = [Collection.new(1, 'first'), Collection.new(2, 'last')]
|
||
|
@context.assigns['user'] = @user
|
||
|
@context.assigns['collections'] = @collections
|
||
|
@context.virtual_path = 'user/show'
|
||
|
@context.stub(lookup_context: nil)
|
||
|
end
|
||
|
|
||
|
test "collections model should render correctly" do
|
||
|
source = %{
|
||
|
object :@user
|
||
|
child(:@collections => :collections) do
|
||
|
attributes :id, :name
|
||
|
node(:cover_url) { |c|
|
||
|
c.cover(:medium)
|
||
|
}
|
||
|
end
|
||
|
}
|
||
|
|
||
|
assert_equal(MultiJson.encode(
|
||
|
user: { collections: [{
|
||
|
id: 1, name: 'first', cover_url: "foo_medium"
|
||
|
}, {
|
||
|
id: 2, name: 'last', cover_url: "foo_medium"
|
||
|
}] }
|
||
|
), RablRails::Library.instance.get_rendered_template(source, @context))
|
||
|
end
|
||
|
end
|