forked from Janpot/escape-html-template-tag
-
Notifications
You must be signed in to change notification settings - Fork 1
/
test.js
40 lines (33 loc) · 1.56 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const assert = require('assert')
const H = require('.')
assert.strictEqual(String(H`<a>`), '<a>')
assert.strictEqual(String(H`${'<a>'}`), '<a>')
assert.strictEqual(String(H`${1}`), '1')
// nesting
assert.strictEqual(String(H`${H`<a>`}`), '<a>')
assert.strictEqual(String(H`${H`${'<a>'}`}`), '<a>')
// escape characters
assert.strictEqual(String(H`${'&'}`), '&')
assert.strictEqual(String(H`${'<'}`), '<')
assert.strictEqual(String(H`${'>'}`), '>')
assert.strictEqual(String(H`${'"'}`), '"')
assert.strictEqual(String(H`${"'"}`), ''')
// flattening arrays
assert.strictEqual(String(H`${['a', 1, '<']}`), 'a1<')
assert.strictEqual(String(H`${['a', H`<`]}`), 'a<')
assert.strictEqual(String(H`${[]}`), '')
// H.safe
assert.strictEqual(String(H`${H.safe('<a>')}`), '<a>')
assert.strictEqual(String(H`${H.safe(1)}`), '1')
assert.strictEqual(String(H`${H.safe([1, 2, 3])}`), '1,2,3')
assert.strictEqual(String(H`${H.safe(H`<a>`)}`), '<a>')
// H.safeAttribute
assert.strictEqual(String(H`${H.safeAttribute('"<&>')}`), '"<&>')
assert.strictEqual(String(H`${H.safeAttribute("'<&>")}`), ''<&>')
assert.strictEqual(String(H`${H.safeAttribute('ja\rVa\r\ns\nC\t\r\nript:<&>')}`), '<&>')
// H.join
assert.strictEqual(String(H.join([H`a`, H`b`, H`c`], ' ')), 'a b c')
assert.strictEqual(String(H.join([H`a`, H`b`, H`c`])), 'a,b,c')
assert.strictEqual(String(H.join([H`a`, H`b`, H`c`], undefined)), 'a,b,c')
assert.strictEqual(String(H.join([H`<`, H`>`], H`${'&'}`)), '<&>')
assert.strictEqual(String(H.join([H`${'<'}`, H`${'>'}`], H`&`)), '<&>')