@@ -29,23 +29,40 @@ export default function runner(testFile: string, config: CR.Config,
2929 }
3030
3131 let result = JSON . parse ( require ( pathToResults ) ) ;
32+ if ( ! result . report || ! result . report . tests . length ) {
33+ console . log ( 'error with test output in report.json' ) ;
34+ return ;
35+ }
36+
37+ let finalTest = result . report . tests [ 0 ] ;
3238
33- result = result . included [ result . included . length - 1 ] . attributes . call ;
39+ let taskPosition : number = parseInt ( finalTest . name . match ( / : : T e s t ( [ 0 - 9 ] + ) / ) [ 1 ] , 10 ) ;
40+ if ( ! taskPosition ) {
41+ console . log ( 'Error with test. There is no valid task number in the Test class title' ) ;
42+ return ;
43+ }
3444
35- if ( result . outcome === 'passed' ) {
45+ if ( finalTest . outcome === 'passed' ) {
3646 // pass
3747 final = {
38- pass : true ,
39- msg : 'Task ${0 } Complete' , // TODO
40- taskPosition : 0 // TODO
48+ completed : true ,
49+ msg : 'Task ${taskPosition } Complete' ,
50+ taskPosition : taskPosition + 1
4151 } ;
42-
43- } else if ( result . outcome === 'failed' ) {
52+ } else if ( finalTest . outcome === 'failed' ) {
4453 // fail: return first failure
54+
55+ // failure message
56+ let message : string = finalTest . name . match ( / : : t e s t _ ( .+ ) $ / ) [ 1 ] ;
57+ if ( ! message ) {
58+ console . log ( 'Error with test. There is no valid test message' ) ;
59+ message = '' ;
60+ }
61+
4562 final = {
46- pass : false ,
47- msg : formatFailureMessage ( ) , // TODO
48- taskPosition : 0 , // TODO
63+ completed : false ,
64+ msg : formatFailureMessage ( message ) ,
65+ taskPosition,
4966 timedOut : false // TODO
5067 } ;
5168
@@ -55,7 +72,7 @@ export default function runner(testFile: string, config: CR.Config,
5572
5673 final . change = final . taskPosition - config . taskPosition ;
5774 final . pass = final . change > 0 ;
58- final . completed = result . pass ;
75+
5976 // return result to atom-coderoad
6077 handleResult ( final ) ;
6178 } ) ;
0 commit comments