ソースを参照

test(core): Stabilize cache tests for sqlite

Michael Bromley 7 ヶ月 前
コミット
eae85cca95

+ 1 - 4
packages/core/e2e/cache-service-default.e2e-spec.ts

@@ -68,10 +68,7 @@ describe('CacheService with DefaultCachePlugin (sql)', () => {
 
     it('sets a key with ttl', () => setsAKeyWithTtl(cacheService, ttlProvider));
 
-    // TODO: Re-enable this upon merging in the v3.2 changes. This test currently is flaky due to
-    // a missing precision on the CacheItem.expiresAt field. However, since the fix involves a minor
-    // breaking change, it is being held back until v3.2.
-    it.skip('sets a key with sub-second ttl', () => setsAKeyWithSubSecondTtl(cacheService, ttlProvider));
+    it('sets a key with sub-second ttl', () => setsAKeyWithSubSecondTtl(cacheService, ttlProvider));
 
     it('evicts the oldest key when cache is full', () => evictsTheOldestKeyWhenCacheIsFull(cacheService));
 

+ 7 - 2
packages/core/e2e/fixtures/cache-service-shared-tests.ts

@@ -1,5 +1,5 @@
-import { CacheService, Logger } from '@vendure/core';
-import { expect, vi } from 'vitest';
+import { CacheService } from '@vendure/core';
+import { expect } from 'vitest';
 
 import { TestingCacheTtlProvider } from '../../src/cache/cache-ttl-provider';
 
@@ -77,10 +77,15 @@ export async function setsAKeyWithSubSecondTtl(
 
 export async function evictsTheOldestKeyWhenCacheIsFull(cacheService: CacheService) {
     await cacheService.set('key1', 'value1');
+    await new Promise(resolve => setTimeout(resolve, 1));
     await cacheService.set('key2', 'value2');
+    await new Promise(resolve => setTimeout(resolve, 1));
     await cacheService.set('key3', 'value3');
+    await new Promise(resolve => setTimeout(resolve, 1));
     await cacheService.set('key4', 'value4');
+    await new Promise(resolve => setTimeout(resolve, 1));
     await cacheService.set('key5', 'value5');
+    await new Promise(resolve => setTimeout(resolve, 1));
 
     const result1 = await cacheService.get('key1');
     expect(result1).toBe('value1');