Files
NapCatQQ/.pnpm-store/v3/files/e3/08cfc31cc4b3b807604b889600e4e55e0de214020293dd81bcee0a51d10ddd06e449100e5e9ab94be53640cb1a20103eb888e7b1241593dcb828f48aebb54d
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

53 lines
1.5 KiB
Plaintext

import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
import { useState } from 'react'
const mockSuccessResponse = { value: 'success' }
const api = createApi({
baseQuery: fetchBaseQuery({ baseUrl: 'https://example.com' }),
endpoints: (build) => ({
update: build.mutation<typeof mockSuccessResponse, any>({
query: () => ({ url: 'success' }),
}),
failedUpdate: build.mutation<typeof mockSuccessResponse, any>({
query: () => ({ url: 'error' }),
}),
}),
})
describe('type tests', () => {
test('a mutation is unwrappable and has the correct types', () => {
function User() {
const [manualError, setManualError] = useState<any>()
const [update, { isLoading, data, error }] =
api.endpoints.update.useMutation()
return (
<div>
<div data-testid="isLoading">{String(isLoading)}</div>
<div data-testid="data">{JSON.stringify(data)}</div>
<div data-testid="error">{JSON.stringify(error)}</div>
<div data-testid="manuallySetError">
{JSON.stringify(manualError)}
</div>
<button
onClick={() => {
update({ name: 'hello' })
.unwrap()
.then((result) => {
expectTypeOf(result).toEqualTypeOf(mockSuccessResponse)
setManualError(undefined)
})
.catch(setManualError)
}}
>
Update User
</button>
</div>
)
}
})
})