Files
zpc-bulletin-board/ZpcBulletinBoard/wwwroot/lib/popper/client/mocha/client.js
David Štaleker 28d1630749 prvi
2024-02-23 12:56:54 +01:00

50 lines
1.3 KiB
JavaScript

const core = require('rijs.core')
, data = require('rijs.data')
, sync = require('rijs.sync')
const ripple = sync(data(core()))
, all = require('utilise/all')
, raw = require('utilise/raw')
, to = require('utilise/to')
, con = window.console
// send tests-starting signal
ripple.send('results', 'SAVE', {
stats: { running: true }
, suites: []
, html: 'Test in progress..'
})
// proxy errors back to terminal
// window.onerror = (message, url, linenumber) =>
// ripple.io.emit('global err', message, url, linenumber)
// proxy console logs back to terminal
;['log', 'info', 'warn', 'error', 'debug'].map(m => {
if (!con || !con[m]) return; // ie
const sup = Function.prototype.bind.call(con[m], con)
window.console[m] = function(){
const args = to.arr(arguments)
// ripple.io.emit('console', m, args.map(d => d))
sup.apply && sup.apply(con, arguments)
}
})
// send final results back
window.finish = function(){
const stats = this.stats
stats.running = false
ripple.send('results', 'SAVE', {
stats
, suites: all('#mocha-report > .suite').map(suite)
, html: raw('#mocha').innerHTML
})
}
function suite(s){
return {
name: raw('h1', s).textContent
, total: '' + all('.test', s).length
, failures: '' + all('.fail', s).length
}
}