require 'minitest/autorun' require 'prism' class TemplateTest < Minitest::Test def test_interpolation assert_equal 'Hello, Ruby!', Prism::Template.render('Hello, <%= name %>!', name: 'Ruby') end def test_html_escape result = Prism::Template.render('<%= value %>', value: '') assert_equal '<script>alert(1)</script>', result end def test_raw_output result = Prism::Template.render('<%== value %>', value: 'bold') assert_equal 'bold', result end def test_logic template = '<% items.each do |n| %><%= n %>;<% end %>' assert_equal '1;2;3;', Prism::Template.render(template, items: [1, 2, 3]) end def test_conditional template = '<% if admin %>yes<% else %>no<% end %>' assert_equal 'yes', Prism::Template.render(template, admin: true) assert_equal 'no', Prism::Template.render(template, admin: false) end end