12345678910111213141516171819202122232425262728293031323334353637383940 |
- const test = require('tape')
- const lexer = require('../src/lexer')
-
- const tt = lexer.tokenTypes
-
- test('lexes simple template correctly', t => {
- t.plan(4)
- let tokens = lexer.scan(
- '(div :class "foobar" (p "Lorem ipsum dolor sit amet"))',
- )
- t.deepEqual(tokens.map(token => token.type), [
- tt.OPAREN,
- tt.LITERAL,
- tt.ATTRIBUTE,
- tt.QUOTE,
- tt.LITERAL,
- tt.QUOTE,
- tt.OPAREN,
- tt.LITERAL,
- tt.QUOTE,
- tt.LITERAL,
- tt.QUOTE,
- tt.CPAREN,
- tt.CPAREN,
- tt.EOF,
- ])
- t.equal(tokens[1].value, 'div')
- t.equal(tokens[2].value, 'class')
- t.equal(tokens[9].value, 'Lorem ipsum dolor sit amet')
- })
-
- test('keeps track of line numbers', t => {
- t.plan(2)
- let tokens = lexer.scan(`(
- (div :class "foobar"
- (p :class "bazquux"))
- `)
- t.equal(tokens[2].line, 2)
- t.equal(tokens[7].line, 3)
- })
|