46 lines
1.3 KiB
Ruby
46 lines
1.3 KiB
Ruby
describe 'optimization' do
|
|
def compiled_code(haml)
|
|
Hamlit::Engine.new.call(haml)
|
|
end
|
|
|
|
describe 'static analysis' do
|
|
it 'renders static value for href statically' do
|
|
haml = %|%a{ href: 1 }|
|
|
assert_equal true, compiled_code(haml).include?(%|href='1'|)
|
|
end
|
|
|
|
it 'renders static script statically' do
|
|
haml = <<-HAML.unindent
|
|
%span
|
|
1
|
|
HAML
|
|
assert_equal true, compiled_code(haml).include?(%q|<span>\n1\n</span>|)
|
|
end
|
|
|
|
it 'renders inline static script statically' do
|
|
haml = %|%span= 1|
|
|
assert_equal true, compiled_code(haml).include?(%|<span>1</span>|)
|
|
end
|
|
end
|
|
|
|
describe 'string interpolation' do
|
|
it 'renders a static part of string literal statically' do
|
|
haml = %q|%input{ value: "jruby#{9000}#{dynamic}" }|
|
|
assert_equal true, compiled_code(haml).include?(%|value='jruby9000|)
|
|
|
|
haml = %q|%span= "jruby#{9000}#{dynamic}"|
|
|
assert_equal true, compiled_code(haml).include?(%|<span>jruby9000|)
|
|
end
|
|
|
|
it 'optimizes script' do
|
|
haml = %q|= "jruby#{ "#{9000}" }#{dynamic}"|
|
|
assert_equal true, compiled_code(haml).include?(%|jruby9000|)
|
|
end
|
|
|
|
it 'detects a static part recursively' do
|
|
haml = %q|%input{ value: "#{ "hello#{ hello }" }" }|
|
|
assert_equal true, compiled_code(haml).include?(%|value='hello|)
|
|
end
|
|
end
|
|
end
|