var assert = require("assert"); var Templish = require("../index.js"); describe("templish", function() { it("does basic substitution", function(done) { var t = new Templish("{{conf.foo}}", ["conf"]); t.exec({conf: {foo: "bar"}}, function(err, res) { assert.equal(res, "bar"); done(err); }); }); it("does basic async substitution", function(done) { var t = new Templish("{{cb(null, 'hi')}}", []); t.exec({}, function(err, res) { assert.equal(res, "hi"); done(err); }); }); it("does a mix of async and sync substitution", function(done) { var t = new Templish("{{'a'}} {{cb(null, 'b')}} {{'c'}} {{cb(null, 'd')}}", []); t.exec({}, function(err, res) { assert.equal(res, "a b c d"); done(err); }); }); it("doesn't break when the result of a substitution looks like a template", function(done) { var t = new Templish("foo: {{foo}}, again: {{foo}}", ["foo"]); t.exec({foo: "{{foo}}"}, function(err, res) { assert.equal(res, "foo: {{foo}}, again: {{foo}}"); done(err); }); }); });