From 64ad8e5daba3d702f029d61bf98303cb4ebd8764 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 22 Jul 2026 11:44:04 +0900 Subject: [PATCH] test(lit-query): replace inline 'new Promise' timeouts with 'sleep' from 'query-test-utils' --- packages/lit-query/package.json | 1 + .../tests/client-switch-controllers.test.ts | 3 ++- .../src/tests/counters-and-state.test.ts | 5 ++-- .../src/tests/mutation-controller.test.ts | 5 ++-- .../src/tests/query-controller.test.ts | 25 +++++++++---------- pnpm-lock.yaml | 3 +++ 6 files changed, 24 insertions(+), 18 deletions(-) diff --git a/packages/lit-query/package.json b/packages/lit-query/package.json index b10b86710ea..a87399a238e 100644 --- a/packages/lit-query/package.json +++ b/packages/lit-query/package.json @@ -69,6 +69,7 @@ }, "devDependencies": { "@eslint/js": "^9.36.0", + "@tanstack/query-test-utils": "workspace:*", "globals": "^17.4.0", "typescript-eslint": "^8.54.0" } diff --git a/packages/lit-query/src/tests/client-switch-controllers.test.ts b/packages/lit-query/src/tests/client-switch-controllers.test.ts index 3e60bfd88b9..8bdc9f7e227 100644 --- a/packages/lit-query/src/tests/client-switch-controllers.test.ts +++ b/packages/lit-query/src/tests/client-switch-controllers.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' import { QueryClient } from '@tanstack/query-core' +import { sleep } from '@tanstack/query-test-utils' import type { ReactiveController, ReactiveControllerHost } from 'lit' import { QueryClientProvider } from '../QueryClientProvider.js' import { createInfiniteQueryController } from '../createInfiniteQueryController.js' @@ -310,7 +311,7 @@ describe('LQ-003 client-switch coverage across controllers', () => { await expect(consumer.mutation.mutateAsync(1)).resolves.toBe(2) consumer.remove() - await new Promise((resolve) => setTimeout(resolve, 0)) + await sleep(0) providerA.remove() providerB.append(consumer) diff --git a/packages/lit-query/src/tests/counters-and-state.test.ts b/packages/lit-query/src/tests/counters-and-state.test.ts index d2b14739f4a..2c2d279a283 100644 --- a/packages/lit-query/src/tests/counters-and-state.test.ts +++ b/packages/lit-query/src/tests/counters-and-state.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' import { QueryClient } from '@tanstack/query-core' +import { sleep } from '@tanstack/query-test-utils' import type { ReactiveController, ReactiveControllerHost } from 'lit' import { QueryClientProvider } from '../QueryClientProvider.js' import { createMutationController } from '../createMutationController.js' @@ -314,7 +315,7 @@ describe('useIsFetching/useIsMutating/useMutationState', () => { { queryKey: ['counter-test'], queryFn: async () => { - await new Promise((resolve) => setTimeout(resolve, 40)) + await sleep(40) return 'done' }, }, @@ -325,7 +326,7 @@ describe('useIsFetching/useIsMutating/useMutationState', () => { host, { mutationFn: async (value: number) => { - await new Promise((resolve) => setTimeout(resolve, 40)) + await sleep(40) return value + 10 }, }, diff --git a/packages/lit-query/src/tests/mutation-controller.test.ts b/packages/lit-query/src/tests/mutation-controller.test.ts index 58ad85a5bf1..5fbdf329b1a 100644 --- a/packages/lit-query/src/tests/mutation-controller.test.ts +++ b/packages/lit-query/src/tests/mutation-controller.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' import { QueryClient } from '@tanstack/query-core' +import { sleep } from '@tanstack/query-test-utils' import type { ReactiveController, ReactiveControllerHost } from 'lit' import { QueryClientProvider } from '../QueryClientProvider.js' import { createMutationController } from '../createMutationController.js' @@ -139,7 +140,7 @@ describe('createMutationController', () => { host, { mutationFn: async (value: number) => { - await new Promise((resolve) => setTimeout(resolve, 10)) + await sleep(10) if (value < 0) { throw new Error('negative-not-allowed') } @@ -237,7 +238,7 @@ describe('createMutationController', () => { host, { mutationFn: async (value: number) => { - await new Promise((resolve) => setTimeout(resolve, 5)) + await sleep(5) if (value < 0) { throw new Error('callback-order-failure') } diff --git a/packages/lit-query/src/tests/query-controller.test.ts b/packages/lit-query/src/tests/query-controller.test.ts index d8261e585c9..4c2ea46ade1 100644 --- a/packages/lit-query/src/tests/query-controller.test.ts +++ b/packages/lit-query/src/tests/query-controller.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' import { keepPreviousData, QueryClient } from '@tanstack/query-core' +import { sleep } from '@tanstack/query-test-utils' import type { ReactiveController, ReactiveControllerHost } from 'lit' import { QueryClientProvider } from '../QueryClientProvider.js' import { createQueryController } from '../createQueryController.js' @@ -323,7 +324,7 @@ describe('createQueryController', () => { { queryKey: ['query-controller', 'm4'], queryFn: async () => { - await new Promise((resolve) => setTimeout(resolve, 10)) + await sleep(10) return 'ok' }, }, @@ -370,7 +371,7 @@ describe('createQueryController', () => { host.connect() host.update() - await new Promise((resolve) => setTimeout(resolve, 25)) + await sleep(25) expect(callCount).toBe(0) expect(query().isSuccess).toBe(false) @@ -632,7 +633,7 @@ describe('createQueryController', () => { freshHostB.connect() freshHostB.update() await waitFor(() => freshQueryB().isSuccess) - await new Promise((resolve) => setTimeout(resolve, 25)) + await sleep(25) expect(freshCalls).toBe(1) expect(freshQueryB().data).toBe('fresh-1') }) @@ -806,7 +807,7 @@ describe('createQueryController', () => { await waitFor(() => query().data === 'new-value') resolveOld?.('old-value') - await new Promise((resolve) => setTimeout(resolve, 20)) + await sleep(20) expect(query().data).toBe('new-value') expect(query().isSuccess).toBe(true) @@ -861,7 +862,7 @@ describe('createQueryController', () => { expect(oldSignal?.aborted).toBe(true) resolveOld?.('old-late') - await new Promise((resolve) => setTimeout(resolve, 20)) + await sleep(20) expect(query().data).toBe('new-success') }) @@ -883,9 +884,7 @@ describe('createQueryController', () => { queryKey: ['query-controller', 's6', keyId] as const, queryFn: async ({ queryKey }) => { const id = queryKey[2] as number - await new Promise((resolve) => - setTimeout(resolve, Math.max(1, 20 - id)), - ) + await sleep(Math.max(1, 20 - id)) return `result-${id}` }, }), @@ -941,7 +940,7 @@ describe('createQueryController', () => { const updatesAfterDisconnect = host.updatesRequested resolveFetch?.('late-value') - await new Promise((resolve) => setTimeout(resolve, 20)) + await sleep(20) expect(host.updatesRequested).toBe(updatesAfterDisconnect) }) @@ -976,7 +975,7 @@ describe('createQueryController', () => { host.disconnect() resolveFetch?.('reconnected-value') - await new Promise((resolve) => setTimeout(resolve, 20)) + await sleep(20) host.connect() host.update() @@ -1106,7 +1105,7 @@ describe('createQueryController', () => { retryDelay: 30, queryFn: async () => { attempts += 1 - await new Promise((resolve) => setTimeout(resolve, 5)) + await sleep(5) if (attempts < 3) { throw new Error(`attempt-${attempts}`) } @@ -1322,7 +1321,7 @@ describe('createQueryController', () => { .find({ queryKey: consumer.queryKey }) ?.getObserversCount() ?? 0) === 0, ) - await new Promise((resolve) => setTimeout(resolve, 0)) + await sleep(0) consumer.connectedCallback() await expect(consumer.query.refetch()).rejects.toThrow( @@ -1460,7 +1459,7 @@ describe('createQueryController', () => { expect(query().data).toBe('hydrated-value') expect(query().isSuccess).toBe(true) - await new Promise((resolve) => setTimeout(resolve, 50)) + await sleep(50) expect(queryFnCalls).toBe(0) await query.refetch() diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fe228fef162..2d05ea7d107 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2552,6 +2552,9 @@ importers: '@eslint/js': specifier: ^9.36.0 version: 9.39.4 + '@tanstack/query-test-utils': + specifier: workspace:* + version: link:../query-test-utils globals: specifier: ^17.4.0 version: 17.5.0