require 'spec_helper' RSpec.describe 'Newline with > and <', type: :render do describe '>' do it 'parses nuke-outer-whitespace (>)' do expect(render_string(<<HAML)).to eq("<img><span>hello</span><img>\n") %img %span> hello %img HAML expect(render_string(<<HAML)).to eq("<div>\n<span>1</span><span>hoge</span></div>\n") %div %span= 1 %span> hoge HAML end it 'handles silent script' do expect(render_string(<<HAML)).to eq("<div><span>0</span><span>1</span></div>\n") %div - 2.times do |i| %span>= i HAML end it 'handles comment' do expect(render_string(<<HAML)).to eq("<div>\n<!--<span>0</span><span>1</span>-->\n</div>\n") %div / - 2.times do |i| %span>= i HAML end it 'handles conditional comment' do expect(render_string(<<HAML)).to eq("<div>\n<!--[if IE]><span>0</span><span>1</span><![endif]-->\n</div>\n") %div / [if IE] - 2.times do |i| %span>= i HAML end end describe '>' do it 'parses nuke-inner-whitespace (<)' do expect(render_string(<<HAML)).to eq("<blockquote><div>\nFoo!\n</div></blockquote>\n") %blockquote< %div Foo! HAML end it 'renders pre tag as nuke-inner-whitespace by default' do expect(render_string(<<HAML)).to eq("<pre>hello\nworld</pre>\n") %pre hello world HAML end it 'handles silent script' do expect(render_string(<<HAML)).to eq("<div>012</div>\n") %div< - 3.times do |i| = i HAML end it 'parses texts correctly' do expect(render_string('%div{foo: :bar} <b>hello</b>')).to eq("<div foo='bar'><b>hello</b></div>\n") expect(render_string('%div(foo="bar") <b>hello</b>')).to eq("<div foo='bar'><b>hello</b></div>\n") end end describe '><' do it 'parses nuke-whitespaces' do expect(render_string(<<HAML)).to eq("<img><pre>foo\nbar</pre><img>\n") %img %pre>< foo bar %img HAML end it 'allows double rmnl' do expect(render_string(<<HAML)).to eq("<div><span>hello</span></div>") %div>< %span><= 'hello' HAML end end end