From 7a7fafc8edce5c78bdd69c665e5fd09938ba96f3 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 11 Mar 2022 13:55:48 -0600 Subject: [PATCH] Refactor applyActions() into test_helpers.js --- app/soapbox/reducers/__tests__/notifications-test.js | 5 +++-- app/soapbox/test_helpers.js | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/soapbox/reducers/__tests__/notifications-test.js b/app/soapbox/reducers/__tests__/notifications-test.js index 21410a0f9..630aa61e3 100644 --- a/app/soapbox/reducers/__tests__/notifications-test.js +++ b/app/soapbox/reducers/__tests__/notifications-test.js @@ -28,6 +28,7 @@ import { NOTIFICATIONS_MARK_READ_REQUEST, } from 'soapbox/actions/notifications'; import { TIMELINE_DELETE } from 'soapbox/actions/timelines'; +import { applyActions } from 'soapbox/test_helpers'; import reducer from '../notifications'; @@ -128,7 +129,7 @@ describe('notifications reducer', () => { }]; // Setup by expanding, then calling `NOTIFICATIONS_FILTER_SET` - const result = actions.reduce((state, action) => reducer(state, action), initialState); + const result = applyActions(initialState, actions, reducer); // Setting the filter wipes notifications expect(result.items.isEmpty()).toBe(true); @@ -514,7 +515,7 @@ describe('notifications reducer', () => { }]; // Setup by expanding, then calling `NOTIFICATIONS_FILTER_SET` - const result = actions.reduce((state, action) => reducer(state, action), initialState); + const result = applyActions(initialState, actions, reducer); expect(result.items.size).toEqual(2); expect(result.items.get('5')).toBe(undefined); diff --git a/app/soapbox/test_helpers.js b/app/soapbox/test_helpers.js index 719c29129..c9de38dc4 100644 --- a/app/soapbox/test_helpers.js +++ b/app/soapbox/test_helpers.js @@ -33,3 +33,8 @@ export const createComponent = (children, props = {}) => { , ); }; + +// Apply actions to the state, one at a time +export const applyActions = (state, actions, reducer) => { + return actions.reduce((state, action) => reducer(state, action), state); +};