86 lines
1.7 KiB
JavaScript
86 lines
1.7 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
/**
|
||
|
* Functions common to more than one interface.
|
||
|
*
|
||
|
* @param {Suite[]} suites
|
||
|
* @param {Context} context
|
||
|
* @return {Object} An object containing common functions.
|
||
|
*/
|
||
|
module.exports = function(suites, context) {
|
||
|
return {
|
||
|
/**
|
||
|
* This is only present if flag --delay is passed into Mocha. It triggers
|
||
|
* root suite execution.
|
||
|
*
|
||
|
* @param {Suite} suite The root wuite.
|
||
|
* @return {Function} A function which runs the root suite
|
||
|
*/
|
||
|
runWithSuite: function runWithSuite(suite) {
|
||
|
return function run() {
|
||
|
suite.run();
|
||
|
};
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* Execute before running tests.
|
||
|
*
|
||
|
* @param {string} name
|
||
|
* @param {Function} fn
|
||
|
*/
|
||
|
before: function(name, fn) {
|
||
|
suites[0].beforeAll(name, fn);
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* Execute after running tests.
|
||
|
*
|
||
|
* @param {string} name
|
||
|
* @param {Function} fn
|
||
|
*/
|
||
|
after: function(name, fn) {
|
||
|
suites[0].afterAll(name, fn);
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* Execute before each test case.
|
||
|
*
|
||
|
* @param {string} name
|
||
|
* @param {Function} fn
|
||
|
*/
|
||
|
beforeEach: function(name, fn) {
|
||
|
suites[0].beforeEach(name, fn);
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* Execute after each test case.
|
||
|
*
|
||
|
* @param {string} name
|
||
|
* @param {Function} fn
|
||
|
*/
|
||
|
afterEach: function(name, fn) {
|
||
|
suites[0].afterEach(name, fn);
|
||
|
},
|
||
|
|
||
|
test: {
|
||
|
/**
|
||
|
* Pending test case.
|
||
|
*
|
||
|
* @param {string} title
|
||
|
*/
|
||
|
skip: function(title) {
|
||
|
context.test(title);
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* Number of retry attempts
|
||
|
*
|
||
|
* @param {number} n
|
||
|
*/
|
||
|
retries: function(n) {
|
||
|
context.retries(n);
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
};
|