12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- 'use strict';
- 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('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();
- }
- }
- }
- };
|