const test = require("tape"); const helpers = require("./helpers"); const AST = require("../src/ast"); test("resolves an identifier in the content position", t => { t.plan(1); t.deepEqual( helpers.resolve("(p text)", { text: "Lorem ipsum dolor sit amet" }), [ new AST.Application({ functionName: new AST.Identifier({ name: "p" }), args: [new AST.String({ value: "Lorem ipsum dolor sit amet" })] }) ] ); }); test("resolves an identifier as attribute value", t => { t.plan(1); t.deepEqual(helpers.resolve("(p :class pClass)", { pClass: "testClass" }), [ new AST.Application({ functionName: new AST.Identifier({ name: "p" }), args: [ new AST.Attribute({ name: "class", value: new AST.String({ value: "testClass" }) }) ] }) ]); }); test("resolves an identifier that points to a list", t => { t.plan(1); t.deepEqual(helpers.resolve("list", { list: [1, 2, 3] }), [ new AST.List({ elements: [ new AST.Number({ value: 1 }), new AST.Number({ value: 2 }), new AST.Number({ value: 3 }) ] }) ]); });