Skip to content

Commit bd3458b

Browse files
committed
add code test
1 parent 83c0714 commit bd3458b

2 files changed

Lines changed: 21 additions & 0 deletions

File tree

lib/OnyxUtils.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1418,6 +1418,7 @@ function updateSnapshots(data: OnyxUpdate[], mergeFn: typeof Onyx.merge): Array<
14181418

14191419
const oldValue = updatedData[key] || {};
14201420
const newValue = lodashPick(value, Object.keys(snapshotData[key]));
1421+
14211422
updatedData = {...updatedData, [key]: Object.assign(oldValue, newValue)};
14221423
});
14231424

tests/unit/onyxTest.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2029,5 +2029,25 @@ describe('Onyx', () => {
20292029
[`${ONYX_KEYS.COLLECTION.TEST_KEY}entry2`]: {id: 'entry2_id', name: 'entry2_name'},
20302030
});
20312031
});
2032+
it('should clear pending merge for a key during multiSet()', async () => {
2033+
const testKey = `${ONYX_KEYS.COLLECTION.TEST_KEY}entry1`;
2034+
2035+
// Mock the merge queue with the correct type
2036+
const mockMergeQueue: Record<string, unknown[]> = {
2037+
[testKey]: [{some: 'mergeData'}],
2038+
};
2039+
2040+
// Mock the utility functions
2041+
jest.spyOn(OnyxUtils, 'hasPendingMergeForKey').mockImplementation((key) => key === testKey);
2042+
jest.spyOn(OnyxUtils, 'getMergeQueue').mockImplementation(() => mockMergeQueue);
2043+
2044+
await Onyx.multiSet({
2045+
[testKey]: {id: 'entry1_id', name: 'entry1_name'},
2046+
});
2047+
2048+
expect(mockMergeQueue[testKey]).toBeUndefined();
2049+
2050+
jest.restoreAllMocks();
2051+
});
20322052
});
20332053
});

0 commit comments

Comments
 (0)