Вход Регистрация
Файл: error-kitty/node_modules/mocha/lib/reporters/markdown.js
Строк: 93
<?php
/**
 * Module dependencies.
 */

var Base = require('./base')
  , 
utils = require('../utils');

/**
 * Expose `Markdown`.
 */

exports = module.exports = Markdown;

/**
 * Initialize a new `Markdown` reporter.
 *
 * @param {Runner} runner
 * @api public
 */

function Markdown(runner) {
  
Base.call(this, runner);

  var 
self = this
    
, stats = this.stats
    
, level = 0
    
, buf = '';

  function 
title(str) {
    return Array(
level).join('#') + ' ' + str;
  }

  function 
indent() {
    return Array(
level).join('  ');
  }

  function 
mapTOC(suite, obj) {
    var 
ret = obj;
    
obj = obj[suite.title] = obj[suite.title] || { suite: suite };
    
suite.suites.forEach(function(suite){
      
mapTOC(suite, obj);
    });
    return 
ret;
  }

  function 
stringifyTOC(obj, level) {
    ++
level;
    var 
buf = '';
    var 
link;
    for (var 
key in obj) {
      if (
'suite' == key) continue;
      if (
key) link = ' - [' + key + '](#' + utils.slug(obj[key].suite.fullTitle()) + ')n';
      if (
key) buf += Array(level).join('  ') + link;
      
buf += stringifyTOC(obj[key], level);
    }
    --
level;
    return 
buf;
  }

  function 
generateTOC(suite) {
    var 
obj = mapTOC(suite, {});
    return 
stringifyTOC(obj, 0);
  }

  
generateTOC(runner.suite);

  
runner.on('suite', function(suite){
    ++
level;
    var 
slug = utils.slug(suite.fullTitle());
    
buf += '<a name="' + slug + '"></a>' + 'n';
    
buf += title(suite.title) + 'n';
  });

  
runner.on('suite end', function(suite){
    --
level;
  });

  
runner.on('pass', function(test){
    var 
code = utils.clean(test.fn.toString());
    
buf += test.title + '.n';
    
buf += 'n```jsn';
    
buf += code + 'n';
    
buf += '```nn';
  });

  
runner.on('end', function(){
    
process.stdout.write('# TOCn');
    
process.stdout.write(generateTOC(runner.suite));
    
process.stdout.write(buf);
  });
}
?>
Онлайн: 2
Реклама