prvi
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
module.exports = class dashboardResults {
|
||||
init(node){
|
||||
ripple
|
||||
.subscribe(['results', 'totals'])
|
||||
.map(([results, totals]) => Object.assign(node.state, { results, totals }))
|
||||
.map(d => node.draw())
|
||||
// .until(node.once('removed'))
|
||||
}
|
||||
|
||||
async render(node, { results = {}, totals = [] }){
|
||||
const [ once ] = await ripple.get('npm', ['utilise/once'])
|
||||
, { send } = ripple
|
||||
, o = once(node)
|
||||
, suites = first(values(results).filter(key('suites.length')))
|
||||
|
||||
o.classed('has-results', values(results).length)
|
||||
|
||||
o('.no-results', !values(results).length)
|
||||
.text('No results available yet')
|
||||
|
||||
o('.suites.column', suites || 1)
|
||||
|
||||
o('.suites')
|
||||
('.totals', totals)
|
||||
|
||||
o('.totals')
|
||||
('.tests', key('tests'))
|
||||
.text(String)
|
||||
.attr('label', 'Tests')
|
||||
o('.totals')
|
||||
('.browsers', key('browsers'))
|
||||
.text(String)
|
||||
.attr('label', 'Browsers')
|
||||
o('.totals')
|
||||
('.passing', key('passing'))
|
||||
.text(String)
|
||||
.attr('label', 'Passing')
|
||||
|
||||
o('.suites')
|
||||
('.suite', key('suites'))
|
||||
.text(key('name'))
|
||||
|
||||
o('.browser.column', values(results))
|
||||
.classed('is-running', key('stats.running'))
|
||||
|
||||
o('.browser')
|
||||
('h1.platform', key('platform'))
|
||||
|
||||
o('.platform')
|
||||
('[version]', [])
|
||||
|
||||
o('.platform')
|
||||
(iconOS, 1)
|
||||
.attr('version', key('os.version'))
|
||||
.classed('os', 1)
|
||||
|
||||
o('.platform')
|
||||
(iconBrowser, 1)
|
||||
.attr('version', key('version'))
|
||||
|
||||
o('.browser')
|
||||
('.summary', key('stats'))
|
||||
.text(formatSummary)
|
||||
|
||||
o('.browser')
|
||||
('a.run-tests', key('stats'))
|
||||
.text('Rerun')
|
||||
.classed('disabled', key('running'))
|
||||
.on('click.rerun', rerun)
|
||||
|
||||
o('.browser')
|
||||
('a.view-tests', key('platform.uid'))
|
||||
.text('View Results')
|
||||
.attr('target', '_blank')
|
||||
.attr('href', viewLink)
|
||||
|
||||
o('.browser')
|
||||
('.result', proxy(key('suites'), allSuites))
|
||||
('span', 1)
|
||||
.text(formatResult)
|
||||
.classed('error', by('failures', not(is('0'))))
|
||||
|
||||
o('.result')
|
||||
('i.fails', proxy(key('failures'), str))
|
||||
.classed('error', not(is('0')))
|
||||
.text(String)
|
||||
o('.result')
|
||||
('i.delim', '/')
|
||||
.text(String)
|
||||
o('.result')
|
||||
('i.total', key('total'))
|
||||
.text(String)
|
||||
|
||||
function rerun(d) {
|
||||
var uid = from.parent.call(this, 'platform').uid
|
||||
send('results', 'RERUN', uid)
|
||||
// update(uid + '.stats.running', true)(ripple('results'))
|
||||
}
|
||||
|
||||
function allSuites(d) {
|
||||
return d.length ? d : (key('suites')(suites) || []).map(wrap({}))
|
||||
}
|
||||
|
||||
function iconBrowser(d) {
|
||||
return 'icon-' + d.name
|
||||
}
|
||||
|
||||
function iconOS(d) {
|
||||
return 'icon-' + d.os.name
|
||||
}
|
||||
|
||||
function viewLink(d){
|
||||
return '/dashboard/' + d
|
||||
}
|
||||
|
||||
function formatSummary(d){
|
||||
return d.passes && d.tests ? Math.round(d.passes/d.tests*1000)/10+'%' : '?'
|
||||
}
|
||||
|
||||
function formatResult(d){
|
||||
return !str(d.total) || !str(d.failures)
|
||||
? '...'
|
||||
: Math.round((d.total-d.failures)/d.total*1000)/10 + '%'
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user