mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-10-14 03:52:26 +08:00
Merge pull request #7723 from ouchihao/codex/bug-batch-image-access-retry
fix(batch-image): allow access lookup retries after request failures
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
|
||||
const list = vi.hoisted(() => vi.fn())
|
||||
vi.mock('@/api/keys', () => ({ keysAPI: { list } }))
|
||||
vi.mock('@/stores/auth', () => ({ useAuthStore: () => ({ isAuthenticated: true }) }))
|
||||
|
||||
beforeEach(() => { vi.resetModules(); list.mockReset() })
|
||||
|
||||
describe('batch image access lookup', () => {
|
||||
it('retries a failed lookup when another consumer requests access', async () => {
|
||||
list.mockRejectedValueOnce(new Error('offline')).mockResolvedValueOnce({
|
||||
items: [{ status: 'active', group: { platform: 'gemini', allow_batch_image_generation: true } }], pages: 1,
|
||||
})
|
||||
const { useBatchImageAccess } = await import('../useBatchImageAccess')
|
||||
const access = useBatchImageAccess()
|
||||
expect(await access.refreshBatchImageAccess()).toBe(false)
|
||||
expect(access.batchImageAccessLoaded.value).toBe(false)
|
||||
expect(await useBatchImageAccess().refreshBatchImageAccess()).toBe(true)
|
||||
expect(list).toHaveBeenCalledTimes(2)
|
||||
expect(access.canUseBatchImage.value).toBe(true)
|
||||
})
|
||||
|
||||
it('continues caching a successful lookup with no eligible keys', async () => {
|
||||
list.mockResolvedValue({ items: [], pages: 1 })
|
||||
const { useBatchImageAccess } = await import('../useBatchImageAccess')
|
||||
const access = useBatchImageAccess()
|
||||
expect(await access.refreshBatchImageAccess()).toBe(false)
|
||||
expect(access.batchImageAccessLoaded.value).toBe(true)
|
||||
expect(await access.refreshBatchImageAccess()).toBe(false)
|
||||
expect(list).toHaveBeenCalledTimes(1)
|
||||
})
|
||||
})
|
||||
@@ -60,7 +60,7 @@ async function loadBatchImageAccess(force = false): Promise<boolean> {
|
||||
})()
|
||||
.catch(() => {
|
||||
hasAllowedBatchImageKey.value = false
|
||||
loaded.value = true
|
||||
loaded.value = false
|
||||
return false
|
||||
})
|
||||
.finally(() => {
|
||||
|
||||
Reference in New Issue
Block a user