UNPKG

@simplux/testing

Version:

The testing package for simplux. Contains various testing utilities (e.g. for mocking module states and mutations).

36 lines (35 loc) 3.6 kB
const mockCleanupFunctions = []; /** * Register a function to be called when all mocks are cleared. * * @param cleanupFunction - the cleanup function to call * * @returns a function that can be called to unregister the function * * @public */ export function registerMockCleanupFunction(cleanupFunction) { function wrappedCleanupFunction() { cleanupFunction(); unregisterCleanupFunction(); } function unregisterCleanupFunction() { const idx = mockCleanupFunctions.indexOf(wrappedCleanupFunction); if (idx >= 0) { mockCleanupFunctions.splice(idx, 1); } } mockCleanupFunctions.push(wrappedCleanupFunction); return unregisterCleanupFunction; } /** * Clear all mocks on any simplux functionality. * * @public */ export function clearAllSimpluxMocks() { // the map is required to make a copy of the source array // since we are modifying it when calling the cleanup functions mockCleanupFunctions.map((fn) => fn).forEach((fn) => fn()); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYW51cC5qcyIsInNvdXJjZXMiOlsiQHNpbXBsdXgvdGVzdGluZy9zcmMvY2xlYW51cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb2NrQ2xlYW51cEZ1bmN0aW9uczogKCgpID0+IHZvaWQpW10gPSBbXVxyXG5cclxuLyoqXHJcbiAqIFJlZ2lzdGVyIGEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gYWxsIG1vY2tzIGFyZSBjbGVhcmVkLlxyXG4gKlxyXG4gKiBAcGFyYW0gY2xlYW51cEZ1bmN0aW9uIC0gdGhlIGNsZWFudXAgZnVuY3Rpb24gdG8gY2FsbFxyXG4gKlxyXG4gKiBAcmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGNhbGxlZCB0byB1bnJlZ2lzdGVyIHRoZSBmdW5jdGlvblxyXG4gKlxyXG4gKiBAcHVibGljXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJNb2NrQ2xlYW51cEZ1bmN0aW9uKGNsZWFudXBGdW5jdGlvbjogKCkgPT4gdm9pZCkge1xyXG4gIGZ1bmN0aW9uIHdyYXBwZWRDbGVhbnVwRnVuY3Rpb24oKSB7XHJcbiAgICBjbGVhbnVwRnVuY3Rpb24oKVxyXG4gICAgdW5yZWdpc3RlckNsZWFudXBGdW5jdGlvbigpXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1bnJlZ2lzdGVyQ2xlYW51cEZ1bmN0aW9uKCkge1xyXG4gICAgY29uc3QgaWR4ID0gbW9ja0NsZWFudXBGdW5jdGlvbnMuaW5kZXhPZih3cmFwcGVkQ2xlYW51cEZ1bmN0aW9uKVxyXG4gICAgaWYgKGlkeCA+PSAwKSB7XHJcbiAgICAgIG1vY2tDbGVhbnVwRnVuY3Rpb25zLnNwbGljZShpZHgsIDEpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtb2NrQ2xlYW51cEZ1bmN0aW9ucy5wdXNoKHdyYXBwZWRDbGVhbnVwRnVuY3Rpb24pXHJcblxyXG4gIHJldHVybiB1bnJlZ2lzdGVyQ2xlYW51cEZ1bmN0aW9uXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDbGVhciBhbGwgbW9ja3Mgb24gYW55IHNpbXBsdXggZnVuY3Rpb25hbGl0eS5cclxuICpcclxuICogQHB1YmxpY1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyQWxsU2ltcGx1eE1vY2tzKCkge1xyXG4gIC8vIHRoZSBtYXAgaXMgcmVxdWlyZWQgdG8gbWFrZSBhIGNvcHkgb2YgdGhlIHNvdXJjZSBhcnJheVxyXG4gIC8vIHNpbmNlIHdlIGFyZSBtb2RpZnlpbmcgaXQgd2hlbiBjYWxsaW5nIHRoZSBjbGVhbnVwIGZ1bmN0aW9uc1xyXG4gIG1vY2tDbGVhbnVwRnVuY3Rpb25zLm1hcCgoZm4pID0+IGZuKS5mb3JFYWNoKChmbikgPT4gZm4oKSlcclxufVxyXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxvQkFBb0IsR0FBbUIsRUFBRSxDQUFBO0FBRS9DOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLDJCQUEyQixDQUFDLGVBQTJCO0lBQ3JFLFNBQVMsc0JBQXNCO1FBQzdCLGVBQWUsRUFBRSxDQUFBO1FBQ2pCLHlCQUF5QixFQUFFLENBQUE7SUFDN0IsQ0FBQztJQUVELFNBQVMseUJBQXlCO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO1FBQ2hFLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRTtZQUNaLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUE7U0FDcEM7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUE7SUFFakQsT0FBTyx5QkFBeUIsQ0FBQTtBQUNsQyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxvQkFBb0I7SUFDbEMseURBQXlEO0lBQ3pELCtEQUErRDtJQUMvRCxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUM1RCxDQUFDIn0=