54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
(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
 | 
						|
        }
 | 
						|
    }
 | 
						|
}())
 |