lml-main
Version:
This is now a mono repository published into many standalone packages.
65 lines • 3.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var ts_utils_1 = require("@lml/ts-utils");
var mocks_1 = require("../mocks");
var reducers_1 = require("../reducers");
var actions_1 = require("../actions");
describe('Courier reducer', function () {
test('returns initial state if couriers are empty', function () {
var initialState = undefined;
var action = actions_1.setCourierCallsigns({});
var state = reducers_1.courierDataReducer(initialState, action);
expect(state).toEqual(reducers_1.initialCouriersState);
});
test('handles setCourierCallsigns action', function () {
var initialState = undefined;
var callsigns = { abc: 'BRUNO', def: 'SUKI' };
var action = actions_1.setCourierCallsigns(callsigns);
var resultState = {
byId: {},
callsigns: callsigns,
lastStatusUpdate: null,
};
var state = reducers_1.courierDataReducer(initialState, action);
expect(state).toEqual(resultState);
});
test('handles setCourierById action', function () {
var initialState = undefined;
var courier = tslib_1.__assign({}, mocks_1.mockCourier('foobar'));
var action = actions_1.setCourierById(courier);
var state = reducers_1.courierDataReducer(initialState, action);
expect(state.byId.foobar).toEqual(courier);
expect(state.lastStatusUpdate).toBeTruthy();
});
test('handles setCourierById action 2', function () {
var courier = mocks_1.mockCourier();
var action = actions_1.setCourierById(courier);
var state = reducers_1.courierDataReducer(reducers_1.initialCouriersState, action);
expect(state.byId[courier.refId]).toEqual(courier);
expect(state.lastStatusUpdate).toBeTruthy();
});
test('handles setCouriersByIdBatch', function () {
var couriers = ts_utils_1.createArray(mocks_1.mockCourier);
var action = actions_1.setCouriersByIdBatch(couriers);
var state = reducers_1.courierDataReducer(reducers_1.initialCouriersState, action);
couriers.forEach(function (courier) {
expect(state.byId[courier.refId]).toEqual(courier);
});
});
test('handles setCourierLabel', function () {
var courier = mocks_1.mockCourier();
var resultState = {
byId: (_a = {}, _a[courier.refId] = tslib_1.__assign({}, courier), _a),
callsigns: {},
lastStatusUpdate: Date.now(),
};
var action = actions_1.setCourierLabel(courier.refId, 'test_label');
var expectedCourier = tslib_1.__assign({}, courier, { label: { label: 'test_label' } });
var state = reducers_1.courierDataReducer(resultState, action);
expect(state.byId[expectedCourier.refId]).toEqual(expectedCourier);
expect(state.lastStatusUpdate).toBeTruthy();
var _a;
});
});
//# sourceMappingURL=couriers-data.reducer.spec.js.map