fix(batch-image): allow access lookup retries after request failures

This commit is contained in:
chihao.ou
2026-09-30 02:45:26 +08:00
parent a60a29549f
commit 8bc375b592
2 changed files with 33 additions and 1 deletions
@@ -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(() => {