diff --git a/test/mustache_spec.rb b/test/mustache_spec.rb new file mode 100644 index 0000000..da22d55 --- /dev/null +++ b/test/mustache_spec.rb @@ -0,0 +1,36 @@ +require 'rubygems' +require 'json' + +__DIR__ = File.dirname(__FILE__) + +testnames = Dir.glob(__DIR__ + '/../examples/*.js').map do |name| + File.basename name, '.js' +end + +describe "mustache" do + testnames.each do |testname| + + describe testname do + it "should generate the correct html" do + view = File.read(__DIR__ + "/../examples/#{testname}.js") + template = File.read(__DIR__ + "/../examples/#{testname}.html").to_json + expect = File.read(__DIR__ + "/../examples/#{testname}.txt") + + mustache = File.read(__DIR__ + "/../mustache.js") + runner = <<-JS + #{mustache} + #{view} + var template = #{template}; + var result = Mustache.to_html(template, #{testname}); + print(result); + JS + + File.open("runner.js", 'w') {|f| f << runner} + + result = `js runner.js` + result.should == expect + end + end + end +end + diff --git a/test/mustache_test.rb b/test/mustache_test.rb deleted file mode 100644 index 3ea0084..0000000 --- a/test/mustache_test.rb +++ /dev/null @@ -1,34 +0,0 @@ -# mustache.js runs ruby tests, sorta -# run with mustache_test.rb testname - -require 'json' - -testname = ARGV[0] -puts "doing #{testname}" - -view = File.read("examples/#{testname}.js") -template = File.read("examples/#{testname}.html").to_json -expect = File.read("examples/#{testname}.txt") - -mustache = File.read("mustache.js") -runner = <<-JS -#{mustache} -#{view} -var template = #{template}; -var result = Mustache.to_html(template, #{testname}); -print(result); -JS - -File.open("runner.js", 'w') {|f| f << runner} - -result = `js runner.js` - -if(result == expect) - puts "OK" -else - puts "Error in #{testname}" - puts "Expected" - puts "'#{expect}'" - puts "Actual" - puts "'#{result}'" -end