You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
1.7 KiB
94 lines
1.7 KiB
|
|
/** |
|
* 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)); |
|
}; |
|
}); |
|
};
|
|
|