UNPKG

1.78 kBJavaScriptView Raw
1// For old-farts
2require('es5-shim')
3require('es5-shim/es5-sham')
4
5var spec = require('../')()
6
7require('./specs/test')(spec)
8require('./specs/suite')(spec)
9require('./specs/runner')(spec)
10
11function log() {
12 console.log([].join.call(arguments, ' '))
13}
14
15function verdict(result) {
16 return result.verdict == 'success'? '[OK] '
17 : result.verdict == 'failure'? '[FAIL]'
18 : result.verdict == 'ignored'? '[?] '
19 : /* otherwise */ '[...] '
20}
21
22function fullTitle(test) {
23 var title = test.title || ''
24 if (test.parent) title = [fullTitle(test.parent), title].filter(Boolean).join(' ')
25 return title
26}
27
28function pad(n, s) {
29 var before = Array(n + 1).join(' ')
30 return s.split(/\r\n|\r|\n/)
31 .map(function(a){ return before + a })
32 .join('\n')
33}
34
35function describeFailure(ex) {
36 return [' ---'
37 ,' type: ' + ex.name
38 ,' message: >'
39 , pad(6, ex.message)
40 ,' stack: | '
41 , pad(6, ex.stack)
42 ,' ...'
43 ,' '
44 ].join('\n')
45}
46
47log('TAP version 13')
48spec.run(function(report) {
49 var i = 0;
50
51 report.on('success', function(ev, result) {
52 log('ok', ++i, fullTitle(result.test))
53 })
54
55 report.on('failure', function(ev, result) {
56 log('not ok', ++i, fullTitle(result.test))
57 log(describeFailure(result.exception))
58 })
59
60 report.on('ignored', function(ev, result) {
61 log('# ignored:', fullTitle(result.test))
62 })
63
64 report.on('done', function(ev, results) {
65 log('')
66 log('1..' + i)
67 log('# tests', i)
68 log('# pass', results.passed.length)
69 log('# fail', results.failed.length)
70 log('# ignored', results.ignored.length)
71
72 if (results.failed.length && typeof process != 'undefined')
73 process.exit(1)
74 })
75})
\No newline at end of file