This repository has been archived by the owner on Jun 27, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
117 lines (84 loc) · 2.75 KB
/
index.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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
(function() {
'use strict';
function HTMLDotReporter(runner) {
var passes = 0;
var failures = 0;
var pending = 0;
var startTime = new Date();
var endTime;
var root = document.getElementById('mocha');
var screen = document.createElement('pre');
screen.style.whiteSpace = 'pre-wrap';
screen.style.wordWrap = 'break-word';
root.appendChild(screen);
var failureDetails = document.createElement('pre');
root.appendChild(failureDetails);
runner.on('pass', function(test) {
passes++;
var dot = createDot(test.fullTitle());
screen.appendChild(dot);
});
runner.on('pending', function(test) {
pending++;
var asterisk = createAsterisk(test.fullTitle());
screen.appendChild(asterisk);
});
runner.on('fail', function(test, error) {
failures++;
var testTitle = test.fullTitle();
var f = createF(testTitle, error.message);
screen.appendChild(f);
var details = createDetails(testTitle, error.stack);
failureDetails.appendChild(details);
});
runner.on('end', function() {
var end = createEnd(passes, failures, pending);
screen.appendChild(end);
endTime = new Date();
var durationReport = createDurationReport(startTime, endTime);
root.appendChild(durationReport);
});
}
function createDot(testTitle) {
var dot = document.createElement('code');
dot.title = testTitle;
dot.textContent = '.';
dot.className = 'success';
return dot;
}
function createAsterisk(testTitle) {
var dot = document.createElement('code');
dot.title = testTitle;
dot.textContent = '*';
dot.className = 'pending';
return dot;
}
function createF(testTitle, errorMessage) {
var f = document.createElement('code');
f.title = testTitle + ': ' + errorMessage;
f.textContent = 'F';
f.className = 'failure';
return f;
}
function createDetails(testTitle, errorStack) {
var details = document.createElement('pre');
details.style.whiteSpace = 'pre-line';
details.textContent = testTitle + ':\n' + errorStack;
details.className = 'failure-detail';
return details;
}
function createEnd(passes, failures, pending) {
var end = document.createElement('code');
end.textContent = '\n' + passes + ' of ' + (passes + failures) + ' passed' +
(pending === 0 ? '' : ', ' + pending + ' pending');
end.className = 'end';
return end;
}
function createDurationReport(startTime, endTime) {
var durationReport = document.createElement('pre');
var seconds = (endTime - startTime) / 1000;
durationReport.textContent = 'test run time: ' + seconds + 's';
return durationReport;
}
window.HTMLDotReporter = HTMLDotReporter;
}());