Files
orca/src/preload/usage-provider-api.test.ts
T

34 lines
1.3 KiB
TypeScript

import { describe, expect, it, vi } from 'vitest'
import { createUsageProviderApi } from './usage-provider-api'
describe('usage provider preload API', () => {
it('keeps every provider on its existing IPC channels', async () => {
const invoke = vi.fn().mockResolvedValue(undefined)
const query = { scope: 'orca' as const, range: '30d' as const }
for (const prefix of ['claudeUsage', 'codexUsage', 'openCodeUsage'] as const) {
const api = createUsageProviderApi({ invoke } as never, prefix)
await api.getScanState()
await api.setEnabled({ enabled: true })
await api.refresh()
await api.getSnapshot({ ...query, limit: 7 })
await api.getSummary(query)
await api.getDaily(query)
await api.getBreakdown({ ...query, kind: 'project' })
await api.getRecentSessions({ ...query, limit: 4 })
expect(invoke.mock.calls).toEqual([
[`${prefix}:getScanState`],
[`${prefix}:setEnabled`, { enabled: true }],
[`${prefix}:refresh`, undefined],
[`${prefix}:getSnapshot`, { ...query, limit: 7 }],
[`${prefix}:getSummary`, query],
[`${prefix}:getDaily`, query],
[`${prefix}:getBreakdown`, { ...query, kind: 'project' }],
[`${prefix}:getRecentSessions`, { ...query, limit: 4 }]
])
invoke.mockClear()
}
})
})