@@ -37,7 +37,7 @@ exports = module.exports = HTML;
3737
3838var  statsTemplate  = 
3939  '<ul id="mocha-stats">'  + 
40-   '<li class="progress-contain"><em>0</em>% < progress class="progress-element" max="100" value="0" / ></li>'  + 
40+   '<li class="progress-contain"><progress class="progress-element" max="100" value="0"></progress><svg class="progress-ring"><circle class="ring-whole"/><circle class="ring-highlight" stroke-dasharray="0%,100%"/></svg><div class="progress-text"><em>0</em>%</div ></li>'  + 
4141  '<li class="passes"><a href="javascript:void(0);">passes:</a> <em>0</em></li>'  + 
4242  '<li class="failures"><a href="javascript:void(0);">failures:</a> <em>0</em></li>'  + 
4343  '<li class="duration">duration: <em>0</em>s</li>'  + 
@@ -71,6 +71,7 @@ function HTML(runner, options) {
7171  var  stack  =  [ report ] ; 
7272  var  progressText  =  items [ 0 ] . getElementsByTagName ( 'em' ) [ 0 ] ; 
7373  var  progressBar  =  items [ 0 ] . getElementsByTagName ( 'progress' ) [ 0 ] ; 
74+   var  progressRing  =  items [ 0 ] . getElementsByClassName ( 'ring-highlight' ) [ 0 ] ; 
7475  var  root  =  document . getElementById ( 'mocha' ) ; 
7576
7677  if  ( ! root )  { 
@@ -228,6 +229,12 @@ function HTML(runner, options) {
228229        percent . toFixed ( Math . min ( Math . max ( decmalPlaces ,  0 ) ,  100 ) ) 
229230      ) ; 
230231    } 
232+     if  ( progressRing )  { 
233+       var  radius  =  19 ;  // to do, figure out how to match with css 
234+       var  wholeArc  =  Math . PI  *  2  *  radius ; 
235+       var  highlightArc  =  percent  *  ( wholeArc  /  100 ) ; 
236+       progressRing . style [ 'stroke-dasharray' ]  =  `${ highlightArc }  px,${ wholeArc }  px` ; 
237+     } 
231238
232239    // update stats 
233240    var  ms  =  new  Date ( )  -  stats . start ; 
0 commit comments