123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- 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, ''),
- '<div class="foobar"><p class="bazquux">Lorem ipsum dolor sit amet.</p></div>'
- )
- })
-
- 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, ''),
- '<div class="foobar"><p class="bazquux">Lorem ipsum dolor sit amet.</p></div>'
- )
- })
|