diff --git a/src/combine-events/combine-events.fork.test.ts b/src/combine-events/combine-events.fork.test.ts index 1366da4a..143785c7 100644 --- a/src/combine-events/combine-events.fork.test.ts +++ b/src/combine-events/combine-events.fork.test.ts @@ -1,4 +1,4 @@ -import { createDomain, fork, allSettled } from 'effector'; +import { createDomain, fork, allSettled, serialize, createEvent } from 'effector'; import { combineEvents } from './index'; @@ -100,3 +100,16 @@ test('do not affects another scope', async () => { } `); }); + +test('do not interfere its internal state to serialized scope', async () => { + const one = createEvent(); + const two = createEvent(); + const scope = fork(); + + combineEvents({ events: { one, two } }); + + await allSettled(one, { scope }); + await allSettled(two, { scope }); + + expect(serialize(scope, { onlyChanges: true })).toEqual({}); +}); diff --git a/src/combine-events/index.ts b/src/combine-events/index.ts index 01d061e0..3a26e9e1 100644 --- a/src/combine-events/index.ts +++ b/src/combine-events/index.ts @@ -59,8 +59,8 @@ export function combineEvents
({ const keys = Object.keys(events); const defaultShape = Array.isArray(events) ? [...keys].fill('') : {}; - const $counter = createStore(keys.length); - const $results = createStore(defaultShape); + const $counter = createStore(keys.length, { serialize: 'ignore' }); + const $results = createStore(defaultShape, { serialize: 'ignore' }); $counter.reset(sample(target)); $results.reset(target); @@ -71,7 +71,7 @@ export function combineEvents
({ } for (const key of keys) { - const $isDone = createStore(false) + const $isDone = createStore(false, { serialize: 'ignore' }) .on(events[key], () => true) .reset(target);