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
 | |
|         }
 | |
|     }
 | |
| }())
 |