UNPKG

state-synchronizers

Version:

Deterministically update state based on other state

40 lines (39 loc) 1.63 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; exports.__esModule = true; var with_state_synchronization_1 = require("./with-state-synchronization"); describe('withStateSynchronization', function () { var stateUpdater = jest.fn(function (state) { return (__assign(__assign({}, state), { value: state.value + 1 })); }); // eslint-disable-next-line @typescript-eslint/no-unused-vars var wrappedFunction = jest.fn(function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return ({ value: 5 }); }); var functionWithStateSynchronization = with_state_synchronization_1.withStateSynchronization(stateUpdater)(wrappedFunction); beforeEach(function () { jest.clearAllMocks(); }); it('should call the wrapped function with passed arguments', function () { expect.hasAssertions(); functionWithStateSynchronization(1, 2); expect(wrappedFunction).toHaveBeenCalledWith(1, 2); }); it('should return the synchronized state', function () { expect.hasAssertions(); var result = functionWithStateSynchronization(); expect(result).toStrictEqual({ value: 6 }); }); });