UNPKG

1.65 kBJavaScriptView Raw
1var Lab = require('lab');
2var VM = require('../lib/vm');
3var assert = require('chai').assert;
4
5var lab = exports.lab = Lab.script();
6
7lab.experiment('VM', function() {
8
9 var vm = new VM();
10
11 lab.test('.rejectEmpty()', function(done) {
12 assert.deepEqual(
13 vm.rejectEmpty(['a', null, 'b', '', 'c']),
14 ['a', 'b', 'c']
15 );
16 done();
17 });
18
19 lab.test('.flatten()', function(done) {
20 assert.deepEqual(
21 vm.flatten([1, [2, 3], [4, [5, [6, 7]]]]),
22 ['1', '2', '3', '4', '5', '6', '7']
23 );
24
25 assert.deepEqual(
26 vm.flatten([1, 2, [3], [4, [5, 6], 7], [8, 9]]),
27 ['1', '2', '3', '4', '5', '6', '7', '8', '9']
28 );
29
30 assert.deepEqual(
31 vm.flatten([1, 2, [], [3, [4, 5, []], 6]]),
32 ['1', '2', '3', '4', '5', '6']
33 );
34 done();
35 });
36
37 lab.test('.escape()', function(done) {
38 assert.deepEqual(vm.escape(), '');
39 assert.deepEqual(vm.escape(null), '');
40 assert.deepEqual(vm.escape(' '), ' ');
41 assert.deepEqual(vm.escape('<'), '&lt;');
42 assert.deepEqual(vm.escape('>'), '&gt;');
43 assert.deepEqual(vm.escape('"'), '&quot;');
44 assert.deepEqual(vm.escape('&'), '&amp;');
45 assert.deepEqual(vm.escape('<javascript>alert("alert!")</javascript>'), '&lt;javascript&gt;alert(&quot;alert!&quot;)&lt;/javascript&gt;');
46
47 done();
48 });
49
50 lab.test('.safe()', function(done) {
51 assert.deepEqual(vm.escape(vm.safe('<javascript>alert("alert!")</javascript>')), '<javascript>alert("alert!")</javascript>');
52 assert.deepEqual(vm.escape(vm.safe('')), '');
53 assert.deepEqual(vm.escape(vm.safe()), '');
54 assert.deepEqual(vm.escape(vm.safe(null)), '');
55
56 done();
57 });
58});