reducer-tester
Version:
reducer tester
36 lines • 1.69 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
/* eslint @typescript-eslint/no-explicit-any: 0 */
var snapshot_diff_1 = __importDefault(require("snapshot-diff"));
var invariant_1 = __importDefault(require("invariant"));
expect.addSnapshotSerializer(snapshot_diff_1.default.getSnapshotDiffSerializer());
function reducerTester(_a) {
var tests = _a.tests, reducer = _a.reducer, state = _a.state, _b = _a.initialTest, initialTest = _b === void 0 ? true : _b, _c = _a.titlePrefix, titlePrefix = _c === void 0 ? '' : _c;
if (initialTest) {
it('handle initial state', function () {
expect(snapshot_diff_1.default(state, reducer(undefined, { type: '@@INIT' }))).toMatchSnapshot();
});
}
invariant_1.default(state, 'required `state` property.');
invariant_1.default(tests, 'required `tests` property.');
invariant_1.default(Array.isArray(tests), 'tests must be a Array.');
var _loop_1 = function (t) {
invariant_1.default(t.type, JSON.stringify(t) + " Action required `type` property.");
it("" + titlePrefix + t.type, function () {
expect(snapshot_diff_1.default(state, reducer(state, t), {
expand: true,
aAnnotation: 'Before',
bAnnotation: 'After',
})).toMatchSnapshot();
});
};
for (var _i = 0, tests_1 = tests; _i < tests_1.length; _i++) {
var t = tests_1[_i];
_loop_1(t);
}
}
exports.default = reducerTester;
//# sourceMappingURL=index.js.map