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 |