33 lines
870 B
JavaScript
33 lines
870 B
JavaScript
/** Copyright 2015 Gregory Langlais. See LICENSE.txt. */
|
|
|
|
'use strict';
|
|
|
|
const Assertion = require('./assertion');
|
|
|
|
/**
|
|
* Construct cookies assertion (function)
|
|
*
|
|
* @param {null|string|string[]} [secret]
|
|
* @param {function(req, res)[]} [asserts] ran within returned assertion function
|
|
* @returns {function} assertion
|
|
* @constructor
|
|
*/
|
|
function ExpectCookies(secret, asserts) {
|
|
return Assertion(secret, asserts);
|
|
}
|
|
|
|
// build ExpectCookies proxy methods
|
|
const assertion = Assertion();
|
|
const methods = Object.getOwnPropertyNames(assertion);
|
|
|
|
methods.forEach(function(method) {
|
|
if (typeof assertion[method] === 'function' && typeof Function[method] === 'undefined') {
|
|
ExpectCookies[method] = function() {
|
|
const newAssertion = Assertion();
|
|
return newAssertion[method].apply(newAssertion, arguments);
|
|
};
|
|
}
|
|
});
|
|
|
|
module.exports = ExpectCookies;
|