mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-10-31 00:24:38 +00:00
54 lines
1.9 KiB
TypeScript
54 lines
1.9 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
|
|
const { get, post, put } = vi.hoisted(() => ({
|
|
get: vi.fn(),
|
|
post: vi.fn(),
|
|
put: vi.fn()
|
|
}))
|
|
|
|
vi.mock('@/api/client', () => ({
|
|
apiClient: { get, post, put }
|
|
}))
|
|
|
|
import {
|
|
getUpstreamBillingProbeSettings,
|
|
probeUpstreamBilling,
|
|
probeUpstreamBillingBatch,
|
|
setUpstreamBillingProbeEnabled,
|
|
updateUpstreamBillingProbeSettings
|
|
} from '@/api/admin/accounts'
|
|
|
|
describe('admin account upstream billing probe API', () => {
|
|
beforeEach(() => {
|
|
get.mockReset()
|
|
post.mockReset()
|
|
put.mockReset()
|
|
})
|
|
|
|
it('reads and updates global settings', async () => {
|
|
const settings = { enabled: true, interval_minutes: 30 }
|
|
get.mockResolvedValueOnce({ data: settings })
|
|
put.mockResolvedValueOnce({ data: settings })
|
|
|
|
await expect(getUpstreamBillingProbeSettings()).resolves.toEqual(settings)
|
|
await expect(updateUpstreamBillingProbeSettings(settings)).resolves.toEqual(settings)
|
|
expect(get).toHaveBeenCalledWith('/admin/accounts/upstream-billing-probe/settings')
|
|
expect(put).toHaveBeenCalledWith('/admin/accounts/upstream-billing-probe/settings', settings)
|
|
})
|
|
|
|
it('uses dedicated account and batch endpoints', async () => {
|
|
const result = { account_id: 7, snapshot: { status: 'unsupported' } }
|
|
put.mockResolvedValueOnce({ data: {} })
|
|
post.mockResolvedValueOnce({ data: result })
|
|
post.mockResolvedValueOnce({ data: { results: [result] } })
|
|
|
|
await setUpstreamBillingProbeEnabled(7, true)
|
|
await expect(probeUpstreamBilling(7)).resolves.toEqual(result)
|
|
await expect(probeUpstreamBillingBatch([7])).resolves.toEqual([result])
|
|
|
|
expect(put).toHaveBeenCalledWith('/admin/accounts/7/upstream-billing-probe', { enabled: true })
|
|
expect(post).toHaveBeenNthCalledWith(1, '/admin/accounts/7/upstream-billing-probe')
|
|
expect(post).toHaveBeenNthCalledWith(2, '/admin/accounts/upstream-billing-probe/batch', { account_ids: [7] })
|
|
})
|
|
})
|