mirror of
https://github.com/fawney19/Aether.git
synced 2026-10-09 02:47:45 +08:00
feat(frontend): improve provider detail drawer and pool actions
This commit is contained in:
@@ -8,7 +8,7 @@ vi.mock('@/api/client', () => ({
|
||||
},
|
||||
}))
|
||||
|
||||
import { getProviderMappingPreview, getProvidersSummary } from '@/api/endpoints/providers'
|
||||
import { getProvider, getProviderMappingPreview, getProvidersSummary } from '@/api/endpoints/providers'
|
||||
|
||||
const provider = {
|
||||
id: 'provider-1',
|
||||
@@ -45,6 +45,30 @@ describe('getProvidersSummary', () => {
|
||||
})
|
||||
})
|
||||
|
||||
describe('getProvider', () => {
|
||||
beforeEach(() => {
|
||||
getMock.mockReset()
|
||||
})
|
||||
|
||||
it('deduplicates concurrent detail requests without caching the settled result', async () => {
|
||||
let resolveRequest: ((value: { data: typeof provider }) => void) | undefined
|
||||
getMock.mockImplementation(() => new Promise((resolve) => {
|
||||
resolveRequest = resolve
|
||||
}))
|
||||
|
||||
const firstRequest = getProvider('provider-1')
|
||||
const secondRequest = getProvider('provider-1')
|
||||
|
||||
expect(getMock).toHaveBeenCalledTimes(1)
|
||||
resolveRequest?.({ data: provider })
|
||||
await expect(Promise.all([firstRequest, secondRequest])).resolves.toHaveLength(2)
|
||||
|
||||
getMock.mockResolvedValue({ data: provider })
|
||||
await getProvider('provider-1')
|
||||
expect(getMock).toHaveBeenCalledTimes(2)
|
||||
})
|
||||
})
|
||||
|
||||
describe('getProviderMappingPreview', () => {
|
||||
beforeEach(() => {
|
||||
getMock.mockReset()
|
||||
|
||||
Reference in New Issue
Block a user