diff --git a/desktop/app/src/utils/__tests__/messageQueue.node.tsx b/desktop/app/src/utils/__tests__/messageQueue.node.tsx index 7975aa9ac..eafa779f7 100644 --- a/desktop/app/src/utils/__tests__/messageQueue.node.tsx +++ b/desktop/app/src/utils/__tests__/messageQueue.node.tsx @@ -88,13 +88,18 @@ function selectTestPlugin(store: Store, client: Client) { test('queue - events are processed immediately if plugin is selected', async () => { await createMockFlipperWithPlugin( TestPlugin, - async ({store, sendMessage}) => { + async ({store, client, sendMessage}) => { expect(store.getState().connections.selectedPlugin).toBe('TestPlugin'); + sendMessage('noop', {}); + sendMessage('noop', {}); sendMessage('inc', {}); + sendMessage('inc', {delta: 4}); + sendMessage('noop', {}); + client.flushMessageBuffer(); expect(store.getState().pluginStates).toMatchInlineSnapshot(` Object { "TestApp#Android#MockAndroidDevice#serial#TestPlugin": Object { - "count": 1, + "count": 5, }, } `); diff --git a/desktop/app/src/utils/messageQueue.tsx b/desktop/app/src/utils/messageQueue.tsx index 0440f6141..303e77e35 100644 --- a/desktop/app/src/utils/messageQueue.tsx +++ b/desktop/app/src/utils/messageQueue.tsx @@ -172,10 +172,10 @@ export function processMessagesImmediately( messages: Message[], ) { const persistedState = getCurrentPluginState(store, plugin, pluginKey); - let newPluginState: any; - messages.forEach((message) => { - newPluginState = processMessage(persistedState, pluginKey, plugin, message); - }); + const newPluginState = messages.reduce( + (state, message) => processMessage(state, pluginKey, plugin, message), + persistedState, + ); if (persistedState !== newPluginState) { store.dispatch( setPluginState({