Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
bump to vitest 2
  • Loading branch information
EskiMojo14 committed Oct 29, 2025
commit 1f6379070a9f95863be188e857d0eed5df738701
2 changes: 1 addition & 1 deletion examples/query/react/infinite-queries/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"prettier": "^3.2.1",
"typescript": "^5.8.2",
"vite": "^5.0.0",
"vitest": "^1.2.0"
"vitest": "^2"
},
"resolutions": {
"@types/react": "18.3.12",
Expand Down
2 changes: 1 addition & 1 deletion packages/rtk-codemods/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^5.1.3",
"prettier": "^3.2.5",
"vitest": "^1.6.0"
"vitest": "^2"
},
"engines": {
"node": ">= 16"
Expand Down
2 changes: 1 addition & 1 deletion packages/rtk-query-graphql-request-base-query/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
"microbundle": "^0.13.3",
"rimraf": "^3.0.2",
"typescript": "^5.8.2",
"vitest": "^1.6.0"
"vitest": "^2"
},
"publishConfig": {
"access": "public"
Expand Down
2 changes: 1 addition & 1 deletion packages/toolkit/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@
"typescript": "^5.8.2",
"valibot": "^1.0.0",
"vite-tsconfig-paths": "^4.3.1",
"vitest": "^1.6.0",
"vitest": "^2",
"yargs": "^15.3.1"
},
"scripts": {
Expand Down
4 changes: 2 additions & 2 deletions packages/toolkit/src/query/tests/createApi.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1219,8 +1219,8 @@ describe('endpoint schemas', () => {
stack: expect.any(String),
} satisfies SerializedError

const onSchemaFailureGlobal = vi.fn<Parameters<SchemaFailureHandler>>()
const onSchemaFailureEndpoint = vi.fn<Parameters<SchemaFailureHandler>>()
const onSchemaFailureGlobal = vi.fn<SchemaFailureHandler>()
const onSchemaFailureEndpoint = vi.fn<SchemaFailureHandler>()
afterEach(() => {
onSchemaFailureGlobal.mockClear()
onSchemaFailureEndpoint.mockClear()
Expand Down
3 changes: 1 addition & 2 deletions packages/toolkit/src/query/tests/fetchBaseQuery.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@ const defaultHeaders: Record<string, string> = {

const baseUrl = 'https://example.com'

// @ts-ignore
const fetchFn = vi.fn<Promise<any>, any[]>(nodeFetch)
const fetchFn = vi.fn(nodeFetch)

const baseQuery = fetchBaseQuery({
baseUrl,
Expand Down
140 changes: 28 additions & 112 deletions packages/toolkit/src/query/tests/retry.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,7 @@ const loopTimers = async (max: number = 12) => {

describe('configuration', () => {
test('retrying without any config options', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery.mockResolvedValue({ error: 'rejected' })

const baseQuery = retry(baseBaseQuery)
Expand All @@ -44,10 +41,7 @@ describe('configuration', () => {
})

test('retrying with baseQuery config that overrides default behavior (maxRetries: 5)', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery.mockResolvedValue({ error: 'rejected' })

const baseQuery = retry(baseBaseQuery, { maxRetries: 3 })
Expand All @@ -71,10 +65,7 @@ describe('configuration', () => {
})

test('retrying with endpoint config that overrides baseQuery config', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery.mockResolvedValue({ error: 'rejected' })

const baseQuery = retry(baseBaseQuery, { maxRetries: 3 })
Expand Down Expand Up @@ -110,10 +101,7 @@ describe('configuration', () => {
})

test('stops retrying a query after a success', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery
.mockResolvedValueOnce({ error: 'rejected' })
.mockResolvedValueOnce({ error: 'rejected' })
Expand All @@ -140,10 +128,7 @@ describe('configuration', () => {
})

test('retrying also works with mutations', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery.mockResolvedValue({ error: 'rejected' })

const baseQuery = retry(baseBaseQuery, { maxRetries: 3 })
Expand All @@ -168,10 +153,7 @@ describe('configuration', () => {
})

test('retrying stops after a success from a mutation', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery
.mockRejectedValueOnce(new Error('rejected'))
.mockRejectedValueOnce(new Error('rejected'))
Expand All @@ -198,10 +180,7 @@ describe('configuration', () => {
expect(baseBaseQuery).toHaveBeenCalledTimes(3)
})
test('non-error-cases should **not** retry', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery.mockResolvedValue({ data: { success: true } })

const baseQuery = retry(baseBaseQuery, { maxRetries: 3 })
Expand All @@ -227,10 +206,7 @@ describe('configuration', () => {
test('calling retry.fail(error) will skip retrying and expose the error directly', async () => {
const error = { message: 'banana' }

const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery.mockImplementation((input) => {
retry.fail(error)
return { data: `this won't happen` }
Expand Down Expand Up @@ -275,10 +251,7 @@ describe('configuration', () => {
* Note:
* This will retry 16 total times because we try the initial + 3 retries (sum: 4), then retry that process 3 times (starting at 0 for a total of 4)... 4x4=16 (allegedly)
*/
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery.mockResolvedValue({ error: 'rejected' })

const baseQuery = retry(retry(baseBaseQuery, { maxRetries: 3 }), {
Expand All @@ -305,10 +278,7 @@ describe('configuration', () => {
})

test('accepts a custom backoff fn', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery.mockResolvedValue({ error: 'rejected' })

const baseQuery = retry(baseBaseQuery, {
Expand Down Expand Up @@ -341,10 +311,7 @@ describe('configuration', () => {
})

test('accepts a custom retryCondition fn', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery.mockResolvedValue({ error: 'rejected' })

const overrideMaxRetries = 3
Expand Down Expand Up @@ -372,10 +339,7 @@ describe('configuration', () => {
})

test('retryCondition with endpoint config that overrides baseQuery config', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery.mockResolvedValue({ error: 'rejected' })

const baseQuery = retry(baseBaseQuery, {
Expand Down Expand Up @@ -404,10 +368,7 @@ describe('configuration', () => {
})

test('retryCondition also works with mutations', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()

baseBaseQuery
.mockRejectedValueOnce(new Error('rejected'))
Expand Down Expand Up @@ -440,10 +401,7 @@ describe('configuration', () => {
})

test('Specifying maxRetries as 0 in RetryOptions prevents retries', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery.mockResolvedValue({ error: 'rejected' })

const baseQuery = retry(baseBaseQuery, { maxRetries: 0 })
Expand All @@ -470,10 +428,7 @@ describe('configuration', () => {
let capturedSignal: AbortSignal | undefined
let retryAttempts = 0

const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()

// Always return an error to trigger retries
baseBaseQuery.mockResolvedValue({ error: 'network error' })
Expand Down Expand Up @@ -551,10 +506,7 @@ describe('configuration', () => {

// Tests for issue #4079: Thrown errors should respect maxRetries
test('thrown errors (not HandledError) should respect maxRetries', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
// Simulate network error that keeps throwing
baseBaseQuery.mockRejectedValue(new Error('Network timeout'))

Expand Down Expand Up @@ -589,10 +541,7 @@ describe('configuration', () => {
}
}

const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
// Simulate graphql-request throwing ClientError
baseBaseQuery.mockImplementation(() => {
throw new ClientError('GraphQL network error')
Expand Down Expand Up @@ -622,10 +571,7 @@ describe('configuration', () => {
})

test('handles mix of returned errors and thrown errors', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery
.mockResolvedValueOnce({ error: 'returned error' }) // HandledError
.mockRejectedValueOnce(new Error('thrown error')) // Not HandledError
Expand Down Expand Up @@ -655,10 +601,7 @@ describe('configuration', () => {
})

test('thrown errors with mutations should respect maxRetries', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
// Simulate persistent network error
baseBaseQuery.mockRejectedValue(new Error('Connection refused'))

Expand Down Expand Up @@ -688,10 +631,7 @@ describe('configuration', () => {
// These tests validate the abort signal handling implementation
describe('abort signal handling', () => {
test('retry loop exits immediately when signal is aborted before retry', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery.mockResolvedValue({ error: 'network error' })

const baseQuery = retry(baseBaseQuery, { maxRetries: 10 })
Expand Down Expand Up @@ -723,10 +663,7 @@ describe('configuration', () => {

test('abort during active request prevents retry', async () => {
let requestInProgress = false
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()

baseBaseQuery.mockImplementation(async () => {
requestInProgress = true
Expand Down Expand Up @@ -763,10 +700,7 @@ describe('configuration', () => {
})

test('custom backoff without signal parameter still works', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery.mockResolvedValue({ error: 'network error' })

// Custom backoff that doesn't accept signal (backward compatibility)
Expand Down Expand Up @@ -799,10 +733,7 @@ describe('configuration', () => {

test('abort signal is checked before each retry attempt', async () => {
const attemptNumbers: number[] = []
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery.mockImplementation(async () => {
attemptNumbers.push(attemptNumbers.length + 1)
return { error: 'network error' }
Expand Down Expand Up @@ -836,10 +767,7 @@ describe('configuration', () => {
})

test('mutations respect abort signal during retry', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery.mockResolvedValue({ error: 'network error' })

const baseQuery = retry(baseBaseQuery, { maxRetries: 5 })
Expand Down Expand Up @@ -870,10 +798,7 @@ describe('configuration', () => {
})

test('abort after successful retry does not affect result', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery
.mockResolvedValueOnce({ error: 'network error' })
.mockResolvedValue({ data: { success: true } })
Expand Down Expand Up @@ -906,10 +831,7 @@ describe('configuration', () => {
})

test('multiple aborts are handled gracefully', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery.mockResolvedValue({ error: 'network error' })

const baseQuery = retry(baseBaseQuery, { maxRetries: 10 })
Expand Down Expand Up @@ -939,10 +861,7 @@ describe('configuration', () => {
})

test('abort signal already aborted before retry starts', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery.mockResolvedValue({ error: 'network error' })

const baseQuery = retry(baseBaseQuery, { maxRetries: 5 })
Expand All @@ -969,10 +888,7 @@ describe('configuration', () => {
})

test('resetApiState aborts retrying queries', async () => {
const baseBaseQuery = vi.fn<
Parameters<BaseQueryFn>,
ReturnType<BaseQueryFn>
>()
const baseBaseQuery = vi.fn<BaseQueryFn>()
baseBaseQuery.mockResolvedValue({ error: 'network error' })

const baseQuery = retry(baseBaseQuery, { maxRetries: 10 })
Expand Down
Loading