From 9d84a66036f76ef55018e8ce3a6bb71cee13026b Mon Sep 17 00:00:00 2001 From: gabrieledm Date: Wed, 26 Aug 2026 15:16:41 +0200 Subject: [PATCH 1/4] test: added cache in returned object of withUseCache --- .../src/caching/useCache.test.ts | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/tron-wallet-snap/src/caching/useCache.test.ts b/packages/tron-wallet-snap/src/caching/useCache.test.ts index d026e6b5..551f8518 100644 --- a/packages/tron-wallet-snap/src/caching/useCache.test.ts +++ b/packages/tron-wallet-snap/src/caching/useCache.test.ts @@ -4,6 +4,7 @@ import { useCache } from './useCache'; import type { CacheOptions } from './useCache'; type WithUseCacheCallback = (payload: { + cache: ICache; cachedTestFunction: () => Promise; cachedTestFunctionWithArgs: (arg1: string, arg2: number) => Promise; cachedTestFunctionWithComplexArgs: (obj: { @@ -19,7 +20,7 @@ type WithUseCacheCallback = (payload: { * @param testFn - The test body receiving the cached functions. * @returns A promise that resolves when the test function completes. */ -// eslint-disable-next-line @typescript-eslint/no-unused-vars + async function withUseCache(testFn: WithUseCacheCallback): Promise { // Reset mocks for each test const actualExecutionSpy = jest @@ -70,6 +71,7 @@ async function withUseCache(testFn: WithUseCacheCallback): Promise { ); await testFn({ + cache, cachedTestFunction, cachedTestFunctionWithArgs, cachedTestFunctionWithComplexArgs, @@ -151,15 +153,17 @@ describe('useCache', () => { describe('when the data is not cached', () => { it('should cache the result of a function', async () => { - // No cached data - jest.spyOn(cache, 'get').mockResolvedValue(undefined); + await withUseCache(async ({}) => { + // No cached data + jest.spyOn(cache, 'get').mockResolvedValue(undefined); - const result = await cachedTestFunction(); + const result = await cachedTestFunction(); - expect(result).toBe('test'); - expect(cache.get).toHaveBeenCalledTimes(1); - expect(actualExecutionSpy).toHaveBeenCalledTimes(1); - expect(cache.set).toHaveBeenCalledWith('testFunction:', 'test', 1000); + expect(result).toBe('test'); + expect(cache.get).toHaveBeenCalledTimes(1); + expect(actualExecutionSpy).toHaveBeenCalledTimes(1); + expect(cache.set).toHaveBeenCalledWith('testFunction:', 'test', 1000); + }); }); }); From d27dc5adfe23e2681a63d528b87e738d8c1104ef Mon Sep 17 00:00:00 2001 From: gabrieledm Date: Wed, 26 Aug 2026 15:30:02 +0200 Subject: [PATCH 2/4] test: used setup function in 'when the data is not cached' tests --- .../src/caching/useCache.test.ts | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/packages/tron-wallet-snap/src/caching/useCache.test.ts b/packages/tron-wallet-snap/src/caching/useCache.test.ts index 551f8518..2e9b033f 100644 --- a/packages/tron-wallet-snap/src/caching/useCache.test.ts +++ b/packages/tron-wallet-snap/src/caching/useCache.test.ts @@ -4,6 +4,7 @@ import { useCache } from './useCache'; import type { CacheOptions } from './useCache'; type WithUseCacheCallback = (payload: { + actualExecutionSpy: jest.Mock, Serializable[]>; cache: ICache; cachedTestFunction: () => Promise; cachedTestFunctionWithArgs: (arg1: string, arg2: number) => Promise; @@ -71,6 +72,7 @@ async function withUseCache(testFn: WithUseCacheCallback): Promise { ); await testFn({ + actualExecutionSpy, cache, cachedTestFunction, cachedTestFunctionWithArgs, @@ -153,17 +155,19 @@ describe('useCache', () => { describe('when the data is not cached', () => { it('should cache the result of a function', async () => { - await withUseCache(async ({}) => { - // No cached data - jest.spyOn(cache, 'get').mockResolvedValue(undefined); - - const result = await cachedTestFunction(); - - expect(result).toBe('test'); - expect(cache.get).toHaveBeenCalledTimes(1); - expect(actualExecutionSpy).toHaveBeenCalledTimes(1); - expect(cache.set).toHaveBeenCalledWith('testFunction:', 'test', 1000); - }); + await withUseCache( + async ({ actualExecutionSpy, cache, cachedTestFunction }) => { + // No cached data + jest.spyOn(cache, 'get').mockResolvedValue(undefined); + + const result = await cachedTestFunction(); + + expect(result).toBe('test'); + expect(cache.get).toHaveBeenCalledTimes(1); + expect(actualExecutionSpy).toHaveBeenCalledTimes(1); + expect(cache.set).toHaveBeenCalledWith('testFunction:', 'test', 1000); + }, + ); }); }); From 20de3734f10c69f65bec265bad833f8b090743f0 Mon Sep 17 00:00:00 2001 From: gabrieledm Date: Wed, 26 Aug 2026 15:41:15 +0200 Subject: [PATCH 3/4] test: removed usage of spyOn for cache mock --- packages/tron-wallet-snap/src/caching/useCache.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tron-wallet-snap/src/caching/useCache.test.ts b/packages/tron-wallet-snap/src/caching/useCache.test.ts index 2e9b033f..e0353339 100644 --- a/packages/tron-wallet-snap/src/caching/useCache.test.ts +++ b/packages/tron-wallet-snap/src/caching/useCache.test.ts @@ -158,7 +158,7 @@ describe('useCache', () => { await withUseCache( async ({ actualExecutionSpy, cache, cachedTestFunction }) => { // No cached data - jest.spyOn(cache, 'get').mockResolvedValue(undefined); + cache.get.mockResolvedValue(undefined); const result = await cachedTestFunction(); From f3059f92372f0708178154a206bf89c34a60d957 Mon Sep 17 00:00:00 2001 From: gabrieledm Date: Thu, 27 Aug 2026 16:26:58 +0200 Subject: [PATCH 4/4] test: temporary disabled ts rules to make the ci happy --- packages/tron-wallet-snap/src/caching/useCache.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/tron-wallet-snap/src/caching/useCache.test.ts b/packages/tron-wallet-snap/src/caching/useCache.test.ts index e0353339..c6ef774c 100644 --- a/packages/tron-wallet-snap/src/caching/useCache.test.ts +++ b/packages/tron-wallet-snap/src/caching/useCache.test.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-shadow */ import type { Serializable } from '../utils/serialization/types'; import type { ICache } from './ICache'; import { useCache } from './useCache';