Sha256: 7983bff4b33e3cd0a2c49e105e64d0b50a50df5c94e2102444d6297fa0da214a

Contents?: true

Size: 1.66 KB

Versions: 10

Compression:

Stored size: 1.66 KB

Contents

/**
 * Module dependencies.
 */

var Suite = require('../suite')
  , Test = require('../test');

/**
 * TDD-style interface:
 *
 *      suite('Array', function(){
 *        suite('#indexOf()', function(){
 *          suiteSetup(function(){
 *
 *          });
 *          
 *          test('should return -1 when not present', function(){
 *
 *          });
 *
 *          test('should return the index when present', function(){
 *
 *          });
 *
 *          suiteTeardown(function(){
 *
 *          });
 *        });
 *      });
 *
 */

module.exports = function(suite){
  var suites = [suite];

  suite.on('pre-require', function(context){

    /**
     * Execute before each test case.
     */

    context.setup = function(fn){
      suites[0].beforeEach(fn);
    };

    /**
     * Execute after each test case.
     */

    context.teardown = function(fn){
      suites[0].afterEach(fn);
    };

    /**
     * Execute before the suite.
     */

    context.suiteSetup = function(fn){
      suites[0].beforeAll(fn);
    };

    /**
     * Execute after the suite.
     */

    context.suiteTeardown = function(fn){
      suites[0].afterAll(fn);
    };

    /**
     * Describe a "suite" with the given `title`
     * and callback `fn` containing nested suites
     * and/or tests.
     */

    context.suite = function(title, fn){
      var suite = Suite.create(suites[0], title);
      suites.unshift(suite);
      fn();
      suites.shift();
    };

    /**
     * Describe a specification or test-case
     * with the given `title` and callback `fn`
     * acting as a thunk.
     */

    context.test = function(title, fn){
      suites[0].addTest(new Test(title, fn));
    };
  });
};

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
stylus-source-0.29.0 vendor/node_modules/mocha/lib/interfaces/tdd.js
stylus-source-0.28.2 vendor/node_modules/mocha/lib/interfaces/tdd.js
stylus-source-0.28.1 vendor/node_modules/mocha/lib/interfaces/tdd.js
stylus-source-0.28.0 vendor/node_modules/mocha/lib/interfaces/tdd.js
stylus-source-0.27.2 vendor/node_modules/mocha/lib/interfaces/tdd.js
stylus-source-0.27.1 vendor/node_modules/mocha/lib/interfaces/tdd.js
stylus-source-0.27.0 vendor/node_modules/mocha/lib/interfaces/tdd.js
stylus-source-0.26.1 vendor/node_modules/mocha/lib/interfaces/tdd.js
stylus-source-0.26.0 vendor/node_modules/mocha/lib/interfaces/tdd.js
stylus-source-0.25.0 vendor/node_modules/mocha/lib/interfaces/tdd.js