diff --git a/test/data/scope.rt b/test/data/scope.rt new file mode 100644 index 0000000..e834dec --- /dev/null +++ b/test/data/scope.rt @@ -0,0 +1,9 @@ + +
+
+ Item:#{itemIndex} = {item} +
+{typeof (items) == 'undefined'?'items not in scope':'items in scope'} +{typeof (item) == 'undefined'?'item not in scope':'item in scope'} + +
\ No newline at end of file diff --git a/test/data/scope.rt.html b/test/data/scope.rt.html new file mode 100644 index 0000000..c0342cf --- /dev/null +++ b/test/data/scope.rt.html @@ -0,0 +1 @@ +
Item:#0 = aItem:#1 = bItem:#2 = c
items not in scopeitem not in scope
\ No newline at end of file diff --git a/test/src/test.js b/test/src/test.js index 16e8b99..09ead69 100644 --- a/test/src/test.js +++ b/test/src/test.js @@ -4,6 +4,7 @@ var reactTemplates = require('../../src/reactTemplates'); var fs = require('fs'); var _ = require('lodash'); var path = require('path'); +var React = require('react'); var dataPath = path.resolve(__dirname, '..', 'data'); @@ -26,3 +27,32 @@ test('conversion test', function (t) { } }); +test('html tests', function (t) { + var files = ['scope.rt']; + t.plan(files.length); + + files.forEach(check); + + function check(testFile) { + var filename = path.join(dataPath, testFile); + var html = fs.readFileSync(filename).toString(); + var expected = fs.readFileSync(filename + '.html').toString().replace(/\r/g,""); +// var expected = fs.readFileSync(filename.replace(".html", ".js")).toString(); + var code = reactTemplates.convertTemplateToReact(html).replace(/\r/g,""); + var define = function (req,content) { + return content(React, _); + }; + console.log(code); + var comp = React.createFactory(React.createClass({ + render: eval(code) + })); + var actual = React.renderToStaticMarkup(comp()); + console.log(actual); + t.equal(actual, expected); + if (actual !== expected) { + fs.writeFileSync(filename + '.actual.js', actual); + } + } + +}); +