mirror of
https://github.com/haml/haml.git
synced 2022-11-09 12:33:31 -05:00
Run haml-spec in both ugly and pretty
This commit is contained in:
parent
d92f84b9ca
commit
caec06129a
3 changed files with 235 additions and 255 deletions
|
@ -8,6 +8,7 @@ module Hamlit
|
||||||
register_as: :haml,
|
register_as: :haml,
|
||||||
escape_html: true,
|
escape_html: true,
|
||||||
streaming: true,
|
streaming: true,
|
||||||
|
ugly: true,
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,15 +1,39 @@
|
||||||
$:.unshift File.expand_path('../../../lib', __FILE__)
|
$:.unshift File.expand_path('../../../lib', __FILE__)
|
||||||
|
|
||||||
require 'json'
|
require 'json'
|
||||||
|
require 'unindent'
|
||||||
|
|
||||||
|
def generate_spec(test, locals, options)
|
||||||
|
<<-SPEC
|
||||||
|
specify \"#{test[:name]}\" do
|
||||||
|
haml = %q{#{test[:haml]}}
|
||||||
|
locals = #{locals}
|
||||||
|
options = #{options}
|
||||||
|
assert_pretty(haml, locals, options)
|
||||||
|
assert_ugly(haml, locals, options)
|
||||||
|
end
|
||||||
|
SPEC
|
||||||
|
end
|
||||||
|
|
||||||
desc 'Convert tests.json into rspec tests'
|
desc 'Convert tests.json into rspec tests'
|
||||||
task :convert do
|
task :convert do
|
||||||
spec = "describe 'haml-spec' do\n"
|
spec = <<-SPEC.unindent
|
||||||
spec += " def assert_render(html, haml, locals, options)\n"
|
require "haml"
|
||||||
spec += " engine = Hamlit::Template.new(options) { haml }\n"
|
|
||||||
spec += " result = engine.render(Object.new, locals)\n"
|
describe "haml-spec" do
|
||||||
spec += " expect(result.strip).to eq(html)\n"
|
def assert_pretty(haml, locals, options)
|
||||||
spec += " end\n\n"
|
engine = Haml::Engine.new(haml, options)
|
||||||
|
hamlit = Hamlit::Template.new(options) { haml }
|
||||||
|
expect(engine.render(Object.new, locals).strip).to eq(hamlit.render(Object.new, locals))
|
||||||
|
end
|
||||||
|
|
||||||
|
def assert_ugly(haml, locals, options)
|
||||||
|
engine = Haml::Engine.new(haml, { ugly: true }.merge(options))
|
||||||
|
hamlit = Hamlit::Template.new({ ugly: true }.merge(options)) { haml }
|
||||||
|
expect(engine.render(Object.new, locals)).to eq(hamlit.render(Object.new, locals))
|
||||||
|
end
|
||||||
|
|
||||||
|
SPEC
|
||||||
|
|
||||||
contexts = JSON.parse(File.read(File.expand_path('../../../haml-spec/tests.json', __FILE__)))
|
contexts = JSON.parse(File.read(File.expand_path('../../../haml-spec/tests.json', __FILE__)))
|
||||||
contexts.each_with_index do |context, index|
|
contexts.each_with_index do |context, index|
|
||||||
|
@ -32,13 +56,7 @@ task :convert do
|
||||||
options = Hash[(test[:config] || {}).map {|x, y| [x.to_sym, y]}]
|
options = Hash[(test[:config] || {}).map {|x, y| [x.to_sym, y]}]
|
||||||
options[:format] = options[:format].to_sym if options[:format]
|
options[:format] = options[:format].to_sym if options[:format]
|
||||||
|
|
||||||
spec = " specify \"#{test[:name]}\" do\n"
|
generate_spec(test, locals, options)
|
||||||
spec += " html = %q{#{test[:html]}}\n"
|
|
||||||
spec += " haml = %q{#{test[:haml]}}\n"
|
|
||||||
spec += " locals = #{locals}\n"
|
|
||||||
spec += " options = #{options}\n"
|
|
||||||
spec += " assert_render(html, haml, locals, options)\n"
|
|
||||||
spec += " end\n"
|
|
||||||
}.join("\n")
|
}.join("\n")
|
||||||
spec += " end\n"
|
spec += " end\n"
|
||||||
end
|
end
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue