UNPKG

@simplux/testing

Version:

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

32 lines (31 loc) 3.81 kB
import { registerMockCleanupFunction } from './cleanup.js'; /** * Set a value that should be returned whenever the module's state * is accessed. This mocked state value does not affect the Redux * store and does not cause any state change susbcribers to be called * (the only exception being that new susbcribers that are created * while the mock state value is active will be called once with the * mocked state value immediately after subscribing). * * The mocked state value will stay active indefinitely until either * the clear callback or `clearAllSimpluxMocks` is called. * * @param simpluxModule - the module to mock the state for * @param mockStateValue - the mock state value to return when the * module's state is accessed * * @returns a function that clears the mock state when called * * @public */ export function mockModuleState(simpluxModule, mockStateValue) { const module = simpluxModule; module.$simplux.mockStateValue = mockStateValue; const cleanup = () => { delete module.$simplux.mockStateValue; clearCleanup(); }; const clearCleanup = registerMockCleanupFunction(cleanup); return cleanup; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlcyI6WyJAc2ltcGx1eC90ZXN0aW5nL3NyYy9tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTaW1wbHV4TW9kdWxlLCBTaW1wbHV4TW9kdWxlTWFya2VyIH0gZnJvbSAnQHNpbXBsdXgvY29yZSdcclxuaW1wb3J0IHsgcmVnaXN0ZXJNb2NrQ2xlYW51cEZ1bmN0aW9uIH0gZnJvbSAnLi9jbGVhbnVwLmpzJ1xyXG5cclxuLyoqXHJcbiAqIFNldCBhIHZhbHVlIHRoYXQgc2hvdWxkIGJlIHJldHVybmVkIHdoZW5ldmVyIHRoZSBtb2R1bGUncyBzdGF0ZVxyXG4gKiBpcyBhY2Nlc3NlZC4gVGhpcyBtb2NrZWQgc3RhdGUgdmFsdWUgZG9lcyBub3QgYWZmZWN0IHRoZSBSZWR1eFxyXG4gKiBzdG9yZSBhbmQgZG9lcyBub3QgY2F1c2UgYW55IHN0YXRlIGNoYW5nZSBzdXNiY3JpYmVycyB0byBiZSBjYWxsZWRcclxuICogKHRoZSBvbmx5IGV4Y2VwdGlvbiBiZWluZyB0aGF0IG5ldyBzdXNiY3JpYmVycyB0aGF0IGFyZSBjcmVhdGVkXHJcbiAqIHdoaWxlIHRoZSBtb2NrIHN0YXRlIHZhbHVlIGlzIGFjdGl2ZSB3aWxsIGJlIGNhbGxlZCBvbmNlIHdpdGggdGhlXHJcbiAqIG1vY2tlZCBzdGF0ZSB2YWx1ZSBpbW1lZGlhdGVseSBhZnRlciBzdWJzY3JpYmluZykuXHJcbiAqXHJcbiAqIFRoZSBtb2NrZWQgc3RhdGUgdmFsdWUgd2lsbCBzdGF5IGFjdGl2ZSBpbmRlZmluaXRlbHkgdW50aWwgZWl0aGVyXHJcbiAqIHRoZSBjbGVhciBjYWxsYmFjayBvciBgY2xlYXJBbGxTaW1wbHV4TW9ja3NgIGlzIGNhbGxlZC5cclxuICpcclxuICogQHBhcmFtIHNpbXBsdXhNb2R1bGUgLSB0aGUgbW9kdWxlIHRvIG1vY2sgdGhlIHN0YXRlIGZvclxyXG4gKiBAcGFyYW0gbW9ja1N0YXRlVmFsdWUgLSB0aGUgbW9jayBzdGF0ZSB2YWx1ZSB0byByZXR1cm4gd2hlbiB0aGVcclxuICogbW9kdWxlJ3Mgc3RhdGUgaXMgYWNjZXNzZWRcclxuICpcclxuICogQHJldHVybnMgYSBmdW5jdGlvbiB0aGF0IGNsZWFycyB0aGUgbW9jayBzdGF0ZSB3aGVuIGNhbGxlZFxyXG4gKlxyXG4gKiBAcHVibGljXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbW9ja01vZHVsZVN0YXRlPFRTdGF0ZT4oXHJcbiAgc2ltcGx1eE1vZHVsZTogU2ltcGx1eE1vZHVsZU1hcmtlcjxUU3RhdGU+LFxyXG4gIG1vY2tTdGF0ZVZhbHVlOiBUU3RhdGUsXHJcbikge1xyXG4gIGNvbnN0IG1vZHVsZSA9IHNpbXBsdXhNb2R1bGUgYXMgU2ltcGx1eE1vZHVsZTxUU3RhdGU+XHJcbiAgbW9kdWxlLiRzaW1wbHV4Lm1vY2tTdGF0ZVZhbHVlID0gbW9ja1N0YXRlVmFsdWVcclxuXHJcbiAgY29uc3QgY2xlYW51cCA9ICgpID0+IHtcclxuICAgIGRlbGV0ZSBtb2R1bGUuJHNpbXBsdXgubW9ja1N0YXRlVmFsdWVcclxuICAgIGNsZWFyQ2xlYW51cCgpXHJcbiAgfVxyXG5cclxuICBjb25zdCBjbGVhckNsZWFudXAgPSByZWdpc3Rlck1vY2tDbGVhbnVwRnVuY3Rpb24oY2xlYW51cClcclxuXHJcbiAgcmV0dXJuIGNsZWFudXBcclxufVxyXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRTFEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUM3QixhQUEwQyxFQUMxQyxjQUFzQjtJQUV0QixNQUFNLE1BQU0sR0FBRyxhQUFzQyxDQUFBO0lBQ3JELE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQTtJQUUvQyxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUU7UUFDbkIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQTtRQUNyQyxZQUFZLEVBQUUsQ0FBQTtJQUNoQixDQUFDLENBQUE7SUFFRCxNQUFNLFlBQVksR0FBRywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUV6RCxPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDIn0=