From 02e3af3e685da0b51a3fd32186cbae256a5bcf2e Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 4 Jun 2026 14:44:36 +0900 Subject: [PATCH] test(query-persist-client-core/createPersister): add tests for removing entries that fail to deserialize --- .../src/__tests__/createPersister.test.ts | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/packages/query-persist-client-core/src/__tests__/createPersister.test.ts b/packages/query-persist-client-core/src/__tests__/createPersister.test.ts index 8e385bc3dad..0cc5175abd1 100644 --- a/packages/query-persist-client-core/src/__tests__/createPersister.test.ts +++ b/packages/query-persist-client-core/src/__tests__/createPersister.test.ts @@ -542,6 +542,17 @@ describe('createPersister', () => { await persister.persisterGc() expect(await storage.entries()).toHaveLength(0) }) + + it('should remove entries that cannot be deserialized', async () => { + const storage = getFreshStorage() + const { persister } = setupPersister(['foo'], { storage }) + + await storage.setItem(`${PERSISTER_KEY_PREFIX}-["foo"]`, 'not-json{') + expect(await storage.entries()).toHaveLength(1) + + await persister.persisterGc() + expect(await storage.entries()).toHaveLength(0) + }) }) describe('restoreQueries', () => { @@ -674,6 +685,19 @@ describe('createPersister', () => { }) expect(client.getQueryCache().getAll()).toHaveLength(1) }) + + it('should remove entries that cannot be deserialized', async () => { + const storage = getFreshStorage() + const { persister, client } = setupPersister(['foo'], { storage }) + + await storage.setItem(`${PERSISTER_KEY_PREFIX}-["foo"]`, 'not-json{') + expect(await storage.entries()).toHaveLength(1) + + await persister.restoreQueries(client) + + expect(await storage.entries()).toHaveLength(0) + expect(client.getQueryCache().getAll()).toHaveLength(0) + }) }) describe('removeQueries', () => { @@ -763,5 +787,17 @@ describe('createPersister', () => { }) expect(await storage.entries()).toHaveLength(0) }) + + it('should remove entries that cannot be deserialized', async () => { + const storage = getFreshStorage() + const { persister } = setupPersister(['foo'], { storage }) + + await storage.setItem(`${PERSISTER_KEY_PREFIX}-["foo"]`, 'not-json{') + expect(await storage.entries()).toHaveLength(1) + + await persister.removeQueries({ queryKey: ['foo'] }) + + expect(await storage.entries()).toHaveLength(0) + }) }) })