Skip to content

Commit 8c59af3

Browse files
committed
Apply PR suggestion
1 parent c676a20 commit 8c59af3

2 files changed

Lines changed: 9 additions & 1 deletion

File tree

lib/DevTools/RealDevTools.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type {IDevTools, DevtoolsOptions, DevtoolsConnection, ReduxDevtools} from './types';
2+
import OnyxUtils from '../OnyxUtils';
23

34
const ERROR_LABEL = 'Onyx DevTools - Error: ';
45

@@ -76,7 +77,7 @@ class RealDevTools implements IDevTools {
7677
clearState(keysToPreserve: string[] = []): void {
7778
const newState = Object.entries(this.state).reduce((obj: Record<string, unknown>, [key, value]) => {
7879
// eslint-disable-next-line no-param-reassign
79-
obj[key] = keysToPreserve.includes(key) ? value : this.defaultState[key];
80+
obj[key] = keysToPreserve.some((preserveKey) => OnyxUtils.isKeyMatch(preserveKey, key)) ? value : this.defaultState[key];
8081
return obj;
8182
}, {});
8283

tests/unit/DevToolsTest.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,5 +137,12 @@ describe('DevTools', () => {
137137
const devToolsInstance = getDevToolsInstance() as RealDevToolsType;
138138
expect(devToolsInstance['state']).toEqual({...initialKeyStates, [ONYX_KEYS.NUM_KEY]: 2});
139139
});
140+
141+
it('Preserves collection member keys when a collection key is passed to keysToPreserve', async () => {
142+
await Onyx.mergeCollection(ONYX_KEYS.COLLECTION.NUM_KEY, exampleCollection);
143+
await Onyx.clear([ONYX_KEYS.COLLECTION.NUM_KEY]);
144+
const devToolsInstance = getDevToolsInstance() as RealDevToolsType;
145+
expect(devToolsInstance['state']).toEqual({...initialKeyStates, ...exampleCollection});
146+
});
140147
});
141148
});

0 commit comments

Comments
 (0)