forked from karma-runner/karma
-
Notifications
You must be signed in to change notification settings - Fork 0
/
updater.js
33 lines (28 loc) · 1.2 KB
/
updater.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
var VERSION = require('./constants').VERSION;
var StatusUpdater = function(socket, titleElement, bannerElement, browsersElement) {
var updateBrowsersInfo = function(browsers) {
var items = [], status;
for (var i = 0; i < browsers.length; i++) {
status = browsers[i].isReady ? 'idle' : 'executing';
items.push('<li class="' + status + '">' + browsers[i].name + ' is ' + status + '</li>');
}
browsersElement.innerHTML = items.join('\n');
};
var updateBanner = function(status) {
return function(param) {
var paramStatus = param ? status.replace('$', param) : status;
titleElement.innerHTML = 'Karma v' + VERSION + ' - ' + paramStatus;
bannerElement.className = status === 'connected' ? 'online' : 'offline';
};
};
socket.on('connect', updateBanner('connected'));
socket.on('disconnect', updateBanner('disconnected'));
socket.on('reconnecting', updateBanner('reconnecting in $ ms...'));
socket.on('reconnect', updateBanner('connected'));
socket.on('reconnect_failed', updateBanner('failed to reconnect'));
socket.on('info', updateBrowsersInfo);
socket.on('disconnect', function() {
updateBrowsersInfo([]);
});
};
module.exports = StatusUpdater;