Bug:Fix file validation issue
[vnfsdk/refrepo.git] / vnfmarket / src / main / webapp / vnfmarket / node_modules / istanbul / node_modules / fileset / tests / helper.js
1 \r
2 var EventEmitter = require('events').EventEmitter;\r
3 var assert       = require('assert');\r
4 var tests        = {};\r
5 \r
6 module.exports = test;\r
7 test.run = run;\r
8 \r
9 // ## Test helpers\r
10 \r
11 function test(msg, handler) {\r
12   tests[msg] = handler;\r
13 }\r
14 \r
15 function run() {\r
16   var specs = Object.keys(tests);\r
17   var specsRemaining = specs.length;\r
18 \r
19   specs.forEach(function(spec) {\r
20     var handler = tests[spec];\r
21 \r
22     // grab the set of asserts for this spec\r
23     var shoulds = handler();\r
24     var keys = Object.keys(shoulds);\r
25     var remaining = keys.length;\r
26 \r
27     keys.forEach(function(should) {\r
28       var em = new EventEmitter(),\r
29         to = setTimeout(function() {\r
30           assert.fail('never ended');\r
31         }, 5000);\r
32 \r
33       em\r
34         .on('error', function assertFail(err) { assert.fail(err) })\r
35         .on('end', function assertOk() {\r
36           clearTimeout(to);\r
37           shoulds[should].status = true;\r
38 \r
39           // till we get to 0\r
40           if (!(--remaining)) {\r
41             console.log([\r
42               '',\r
43               '» ' + spec,\r
44               keys.map(function(k) { return '   » ' + k; }).join('\n'),\r
45               '',\r
46               '   Total: ' + keys.length,\r
47               '   Failed: ' + keys.map(function(item) { return shoulds[should].status; }).filter(function(status) { return !status; }).length,\r
48               ''\r
49             ].join('\n'));\r
50 \r
51             if (!(--specsRemaining)) {\r
52               console.log('All done');\r
53             }\r
54 \r
55           }\r
56         });\r
57 \r
58       shoulds[should](em);\r
59     });\r
60   });\r
61 }\r