A templating language that looks like Lisp and compiles to HTML
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

resolverTest.js 1.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. const test = require("tape");
  2. const helpers = require("./helpers");
  3. const AST = require("../src/ast");
  4. test("resolves an identifier in the content position", t => {
  5. t.plan(1);
  6. t.deepEqual(
  7. helpers.resolve("(p text)", { text: "Lorem ipsum dolor sit amet" }),
  8. [
  9. new AST.Application({
  10. functionName: new AST.Identifier({ name: "p" }),
  11. args: [new AST.String({ value: "Lorem ipsum dolor sit amet" })]
  12. })
  13. ]
  14. );
  15. });
  16. test("resolves an identifier as attribute value", t => {
  17. t.plan(1);
  18. t.deepEqual(helpers.resolve("(p :class pClass)", { pClass: "testClass" }), [
  19. new AST.Application({
  20. functionName: new AST.Identifier({ name: "p" }),
  21. args: [
  22. new AST.Attribute({
  23. name: "class",
  24. value: new AST.String({ value: "testClass" })
  25. })
  26. ]
  27. })
  28. ]);
  29. });
  30. test("resolves an identifier that points to a list", t => {
  31. t.plan(1);
  32. t.deepEqual(helpers.resolve("list", { list: [1, 2, 3] }), [
  33. new AST.List({
  34. elements: [
  35. new AST.Number({ value: 1 }),
  36. new AST.Number({ value: 2 }),
  37. new AST.Number({ value: 3 })
  38. ]
  39. })
  40. ]);
  41. });