(function () {
|
|
var Testem = window.Testem
|
|
var regex = /^((?:not )?ok) (\d+) (.+)$/
|
|
|
|
Testem.useCustomAdapter(tapAdapter)
|
|
|
|
function tapAdapter(socket){
|
|
var results = {
|
|
failed: 0
|
|
, passed: 0
|
|
, total: 0
|
|
, tests: []
|
|
}
|
|
|
|
socket.emit('tests-start')
|
|
|
|
Testem.handleConsoleMessage = function(msg){
|
|
var m = msg.match(regex)
|
|
if (m) {
|
|
var passed = m[1] === 'ok'
|
|
var test = {
|
|
passed: passed ? 1 : 0,
|
|
failed: passed ? 0 : 1,
|
|
total: 1,
|
|
id: m[2],
|
|
name: m[3],
|
|
items: []
|
|
}
|
|
|
|
if (passed) {
|
|
results.passed++
|
|
} else {
|
|
console.error("failure", m)
|
|
|
|
results.failed++
|
|
}
|
|
|
|
results.total++
|
|
|
|
// console.log("emitted test", test)
|
|
socket.emit('test-result', test)
|
|
results.tests.push(test)
|
|
} else if (msg === '# ok' || msg.match(/^# tests \d+/)){
|
|
// console.log("emitted all test")
|
|
socket.emit('all-test-results', results)
|
|
}
|
|
|
|
// return false if you want to prevent the console message from
|
|
// going to the console
|
|
// return false
|
|
}
|
|
}
|
|
}())
|