Spaces:
Paused
Paused
| ; | |
| var Suite = require('../suite'); | |
| var Test = require('../test'); | |
| /** | |
| * Exports-style (as Node.js module) interface: | |
| * | |
| * exports.Array = { | |
| * '#indexOf()': { | |
| * 'should return -1 when the value is not present': function() { | |
| * | |
| * }, | |
| * | |
| * 'should return the correct index when the value is present': function() { | |
| * | |
| * } | |
| * } | |
| * }; | |
| * | |
| * @param {Suite} suite Root suite. | |
| */ | |
| module.exports = function(suite) { | |
| var suites = [suite]; | |
| suite.on(Suite.constants.EVENT_FILE_REQUIRE, visit); | |
| function visit(obj, file) { | |
| var suite; | |
| for (var key in obj) { | |
| if (typeof obj[key] === 'function') { | |
| var fn = obj[key]; | |
| switch (key) { | |
| case 'before': | |
| suites[0].beforeAll(fn); | |
| break; | |
| case 'after': | |
| suites[0].afterAll(fn); | |
| break; | |
| case 'beforeEach': | |
| suites[0].beforeEach(fn); | |
| break; | |
| case 'afterEach': | |
| suites[0].afterEach(fn); | |
| break; | |
| default: | |
| var test = new Test(key, fn); | |
| test.file = file; | |
| suites[0].addTest(test); | |
| } | |
| } else { | |
| suite = Suite.create(suites[0], key); | |
| suites.unshift(suite); | |
| visit(obj[key], file); | |
| suites.shift(); | |
| } | |
| } | |
| } | |
| }; | |
| module.exports.description = 'Node.js module ("exports") style'; | |