const test = require("tape") const Compiler = require("../src/compiler") const Lexer = require("../src/lexer") const Node = require("../src/node") const Parser = require("../src/parser") const tt = require("../src/tokenTypes") test("compiles a simple template", t => { t.plan(1) const lexer = new Lexer() const tokenStream = lexer.scan(` (div :class "foobar" (p :class "bazquux" "Lorem ipsum dolor sit amet.")) `) const parser = new Parser(tokenStream) const tree = parser.parse() const compiler = new Compiler(tree) const result = compiler.compile() t.deepEqual( result.replace(/\n/g, '').replace(/ +/g, ''), '
' ) }) test("renders variables according to passed-in context", t => { t.plan(1) const lexer = new Lexer() const tokenStream = lexer.scan(` (div :class classOne (p :class classTwo bodyText)) `) const parser = new Parser(tokenStream) const tree = parser.parse() const compiler = new Compiler(tree, { classOne: 'foobar', classTwo: 'bazquux', bodyText: 'Lorem ipsum dolor sit amet.' }) const result = compiler.compile() t.deepEqual( result.replace(/\n/g, '').replace(/ +/g, ''), ' ' ) })