Sun calculation js library which is fully based on formula from http://aa.quae.nl/en/reken/zonpositie.html
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.
158 lines
3.8 KiB
158 lines
3.8 KiB
7 years ago
|
'use strict';
|
||
|
|
||
|
var Suite = require('../suite');
|
||
|
|
||
|
/**
|
||
|
* Functions common to more than one interface.
|
||
|
*
|
||
|
* @param {Suite[]} suites
|
||
|
* @param {Context} context
|
||
|
* @param {Mocha} mocha
|
||
|
* @return {Object} An object containing common functions.
|
||
|
*/
|
||
|
module.exports = function (suites, context, mocha) {
|
||
|
return {
|
||
|
/**
|
||
|
* This is only present if flag --delay is passed into Mocha. It triggers
|
||
|
* root suite execution.
|
||
|
*
|
||
|
* @param {Suite} suite The root suite.
|
||
|
* @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);
|
||
|
},
|
||
|
|
||
|
suite: {
|
||
|
/**
|
||
|
* Create an exclusive Suite; convenience function
|
||
|
* See docstring for create() below.
|
||
|
*
|
||
|
* @param {Object} opts
|
||
|
* @returns {Suite}
|
||
|
*/
|
||
|
only: function only (opts) {
|
||
|
opts.isOnly = true;
|
||
|
return this.create(opts);
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* Create a Suite, but skip it; convenience function
|
||
|
* See docstring for create() below.
|
||
|
*
|
||
|
* @param {Object} opts
|
||
|
* @returns {Suite}
|
||
|
*/
|
||
|
skip: function skip (opts) {
|
||
|
opts.pending = true;
|
||
|
return this.create(opts);
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* Creates a suite.
|
||
|
* @param {Object} opts Options
|
||
|
* @param {string} opts.title Title of Suite
|
||
|
* @param {Function} [opts.fn] Suite Function (not always applicable)
|
||
|
* @param {boolean} [opts.pending] Is Suite pending?
|
||
|
* @param {string} [opts.file] Filepath where this Suite resides
|
||
|
* @param {boolean} [opts.isOnly] Is Suite exclusive?
|
||
|
* @returns {Suite}
|
||
|
*/
|
||
|
create: function create (opts) {
|
||
|
var suite = Suite.create(suites[0], opts.title);
|
||
|
suite.pending = Boolean(opts.pending);
|
||
|
suite.file = opts.file;
|
||
|
suites.unshift(suite);
|
||
|
if (opts.isOnly) {
|
||
|
suite.parent._onlySuites = suite.parent._onlySuites.concat(suite);
|
||
|
}
|
||
|
if (typeof opts.fn === 'function') {
|
||
|
opts.fn.call(suite);
|
||
|
suites.shift();
|
||
|
} else if (typeof opts.fn === 'undefined' && !suite.pending) {
|
||
|
throw new Error('Suite "' + suite.fullTitle() + '" was defined but no callback was supplied. Supply a callback or explicitly skip the suite.');
|
||
|
} else if (!opts.fn && suite.pending) {
|
||
|
suites.shift();
|
||
|
}
|
||
|
|
||
|
return suite;
|
||
|
}
|
||
|
},
|
||
|
|
||
|
test: {
|
||
|
|
||
|
/**
|
||
|
* Exclusive test-case.
|
||
|
*
|
||
|
* @param {Object} mocha
|
||
|
* @param {Function} test
|
||
|
* @returns {*}
|
||
|
*/
|
||
|
only: function (mocha, test) {
|
||
|
test.parent._onlyTests = test.parent._onlyTests.concat(test);
|
||
|
return 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);
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
};
|