You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
818 B
33 lines
818 B
var test = require('tape'); |
|
var evaluate = require('../'); |
|
var parse = require('esprima').parse; |
|
|
|
test('untagged template strings', function (t) { |
|
t.plan(1); |
|
|
|
var src = '`${1},${2 + n},${`4,5`}`'; |
|
var ast = parse(src).body[0].expression; |
|
var res = evaluate(ast, { |
|
n: 6 |
|
}); |
|
t.deepEqual(res, '1,8,4,5'); |
|
}); |
|
|
|
test('tagged template strings', function (t) { |
|
t.plan(3); |
|
|
|
var src = 'template`${1},${2 + n},${`4,5`}`'; |
|
var ast = parse(src).body[0].expression; |
|
var res = evaluate(ast, { |
|
template: function (strings) { |
|
t.deepEqual(strings, ['', ',', ',', '']); |
|
|
|
var values = [].slice.call(arguments, 1); |
|
t.deepEqual(values, [1, 8, '4,5']); |
|
|
|
return 'foo'; |
|
}, |
|
n: 6 |
|
}); |
|
t.deepEqual(res, 'foo'); |
|
})
|
|
|