1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
require 'helper'
class TestJSONRenderer < MINITEST_TEST_CLASS
describe 'JSON renderer' do
def render
RablRails::Renderers::JSON.render(@template, @context)
end
before do
@resource = User.new(1, 'Marty')
@context = Context.new
@context.assigns['user'] = @resource
@template = RablRails::CompiledTemplate.new
@template.data = :@user
@template.add_node RablRails::Nodes::Attribute.new(name: :name)
end
it 'extends hash renderer' do
RablRails::Renderers::JSON.ancestors.include?(RablRails::Renderers::Hash)
end
it 'renders JSON' do
assert_equal %q({"name":"Marty"}), render
end
it 'uses template root_name option' do
@template.root_name = :user
assert_equal %q({"user":{"name":"Marty"}}), render
end
it 'ignores template root_name option if include_json_root is disabled' do
@template.root_name = :user
with_configuration :include_json_root, false do
assert_equal %q({"name":"Marty"}), render
end
end
it 'renders jsonp callback' do
@context.stub :params, { callback: 'some_callback' } do
with_configuration :enable_jsonp_callbacks, true do
assert_equal %q[some_callback({"name":"Marty"})], render
end
end
end
end
end
|