HTML templating library for JS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

test.js 1.0KB

123456789101112131415161718192021222324252627282930313233343536
  1. var assert = require("assert");
  2. var Templish = require("../index.js");
  3. describe("templish", function() {
  4. it("does basic substitution", function(done) {
  5. var t = new Templish("{{conf.foo}}", ["conf"]);
  6. t.exec({conf: {foo: "bar"}}, function(err, res) {
  7. assert.equal(res, "bar");
  8. done(err);
  9. });
  10. });
  11. it("does basic async substitution", function(done) {
  12. var t = new Templish("{{cb(null, 'hi')}}", []);
  13. t.exec({}, function(err, res) {
  14. assert.equal(res, "hi");
  15. done(err);
  16. });
  17. });
  18. it("does a mix of async and sync substitution", function(done) {
  19. var t = new Templish("{{'a'}} {{cb(null, 'b')}} {{'c'}} {{cb(null, 'd')}}", []);
  20. t.exec({}, function(err, res) {
  21. assert.equal(res, "a b c d");
  22. done(err);
  23. });
  24. });
  25. it("doesn't break when the result of a substitution looks like a template", function(done) {
  26. var t = new Templish("foo: {{foo}}, again: {{foo}}", ["foo"]);
  27. t.exec({foo: "{{foo}}"}, function(err, res) {
  28. assert.equal(res, "foo: {{foo}}, again: {{foo}}");
  29. done(err);
  30. });
  31. });
  32. });