Project

General

Profile

Download (1.64 KB) Statistics
| Branch: | Tag: | Revision:
require 'test_helper'
require 'ostruct'

class RablTest < ActiveSupport::TestCase
test 'render of single template' do
@media = FactoryBot.build_stubbed(:medium)
rendered = Rabl.render(@media,
'api/v2/media/show',
:format => :json,
:view_path => 'app/views')
loaded = JSON.load(rendered)
assert_equal Hash, loaded.class
assert_equal @media.name, loaded['name']
end

test 'render of collection template' do
rendered = Rabl.render([OpenStruct.new(:name => 'foo', :registered_smart_proxies => {})],
'api/v2/domains/index',
:format => :json,
:view_path => 'app/views')
loaded = JSON.load(rendered)
assert_equal Array, loaded.class
assert_equal Hash, loaded[0].class
assert_equal 'foo', loaded[0]['name']
end

context 'with plugin' do
setup :clear_plugins
teardown :restore_plugins

test 'render of extended plugin template' do
Foreman::Plugin.register :test_extend_rabl_template do
extend_rabl_template 'api/v2/test/one', 'api/v2/test/two'
end
@media = FactoryBot.build_stubbed(:medium)
rendered = Rabl.render(@media,
'api/v2/test/one',
:format => :json,
:view_path => File.expand_path('../../test/static_fixtures/views', __dir__))
loaded = JSON.load(rendered)
assert_equal Hash, loaded.class
assert_equal @media.name, loaded['name']
assert_equal '1', loaded['one']
assert_equal '2', loaded['two']
end
end
end
(59-59/67)