From 17e1712a87710ccba01ed21be04ed186fc270e50 Mon Sep 17 00:00:00 2001 From: gonzaloriestra <14979109+gonzaloriestra@users.noreply.github.com> Date: Tue, 5 May 2026 00:10:45 +0000 Subject: [PATCH] [Tests] Make 'refreshes extension url' test deterministic Unskip the 'refreshes extension url' test in `extensionServerReducer.test.ts` and refactor it to use Vitest's fake timers. This removes the dependency on real time and `setTimeout`, making the test faster and deterministic. Exact timestamp assertions are also added for better verification. --- .../reducers/extensionServerReducer.test.ts | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/ui-extensions-server-kit/src/state/reducers/extensionServerReducer.test.ts b/packages/ui-extensions-server-kit/src/state/reducers/extensionServerReducer.test.ts index 8046b5e8e3c..60e12e0d6cd 100644 --- a/packages/ui-extensions-server-kit/src/state/reducers/extensionServerReducer.test.ts +++ b/packages/ui-extensions-server-kit/src/state/reducers/extensionServerReducer.test.ts @@ -8,6 +8,7 @@ import { createFocusAction, createUnfocusAction, } from '../actions' +import {vi} from 'vitest' import type {ExtensionServerState} from './types' @@ -92,8 +93,11 @@ describe('extensionServerReducer()', () => { }) }) - // eslint-disable-next-line vitest/no-disabled-tests - test.skip('refreshes extension url', async () => { + test('refreshes extension url', () => { + vi.useFakeTimers() + const time1 = 1000 + vi.setSystemTime(time1) + const extension = mockExtension() const previousState: ExtensionServerState = { store: 'test-store.com', @@ -105,20 +109,21 @@ describe('extensionServerReducer()', () => { const state1 = extensionServerReducer(previousState, action) const url1 = new URL(state1.extensions[0].assets.main.url) - const timestamp1 = url1.searchParams.get('lastUpdated') ?? '' + const timestamp1 = url1.searchParams.get('lastUpdated') - expect(timestamp1.length).toBeGreaterThan(0) + expect(timestamp1).toBe(time1.toString()) - // sleep 1ms to guarantee new timestamp - await new Promise((resolve) => setTimeout(resolve, 1)) + const time2 = 2000 + vi.setSystemTime(time2) const state2 = extensionServerReducer(state1, action) const url2 = new URL(state2.extensions[0].assets.main.url) - const timestamp2 = url2.searchParams.get('lastUpdated') ?? '' + const timestamp2 = url2.searchParams.get('lastUpdated') + + expect(timestamp2).toBe(time2.toString()) - expect(timestamp2.length).toBeGreaterThan(0) - expect(timestamp1).not.toStrictEqual(timestamp2) + vi.useRealTimers() }) describe('focus', () => {