24 lines
939 B
TypeScript
24 lines
939 B
TypeScript
import { expect } from 'vitest'
|
|
import { prisma } from './prisma'
|
|
import { toMoneyNumber } from '@/lib/billing/money'
|
|
|
|
export async function expectBalance(userId: string, params: {
|
|
balance: number
|
|
frozenAmount: number
|
|
totalSpent: number
|
|
}) {
|
|
const row = await prisma.userBalance.findUnique({ where: { userId } })
|
|
expect(row).toBeTruthy()
|
|
expect(toMoneyNumber(row!.balance)).toBeCloseTo(params.balance, 8)
|
|
expect(toMoneyNumber(row!.frozenAmount)).toBeCloseTo(params.frozenAmount, 8)
|
|
expect(toMoneyNumber(row!.totalSpent)).toBeCloseTo(params.totalSpent, 8)
|
|
}
|
|
|
|
export async function expectNoNegativeLedger(userId: string) {
|
|
const row = await prisma.userBalance.findUnique({ where: { userId } })
|
|
expect(row).toBeTruthy()
|
|
expect(toMoneyNumber(row!.balance)).toBeGreaterThanOrEqual(0)
|
|
expect(toMoneyNumber(row!.frozenAmount)).toBeGreaterThanOrEqual(0)
|
|
expect(toMoneyNumber(row!.totalSpent)).toBeGreaterThanOrEqual(0)
|
|
}
|