release: opensource snapshot 2026-02-27 19:25:00
This commit is contained in:
68
tests/helpers/billing-fixtures.ts
Normal file
68
tests/helpers/billing-fixtures.ts
Normal file
@@ -0,0 +1,68 @@
|
||||
import { randomUUID } from 'node:crypto'
|
||||
import type { TaskBillingInfo, TaskType } from '@/lib/task/types'
|
||||
import { TASK_STATUS } from '@/lib/task/types'
|
||||
import { Prisma } from '@prisma/client'
|
||||
import { prisma } from './prisma'
|
||||
|
||||
export async function createTestUser() {
|
||||
const suffix = randomUUID().slice(0, 8)
|
||||
return await prisma.user.create({
|
||||
data: {
|
||||
name: `billing_user_${suffix}`,
|
||||
email: `billing_${suffix}@example.com`,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
export async function createTestProject(userId: string) {
|
||||
const suffix = randomUUID().slice(0, 8)
|
||||
return await prisma.project.create({
|
||||
data: {
|
||||
name: `Billing Project ${suffix}`,
|
||||
userId,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
export async function seedBalance(userId: string, balance: number) {
|
||||
return await prisma.userBalance.upsert({
|
||||
where: { userId },
|
||||
create: {
|
||||
userId,
|
||||
balance,
|
||||
frozenAmount: 0,
|
||||
totalSpent: 0,
|
||||
},
|
||||
update: {
|
||||
balance,
|
||||
frozenAmount: 0,
|
||||
totalSpent: 0,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
export async function createQueuedTask(params: {
|
||||
id: string
|
||||
userId: string
|
||||
projectId: string
|
||||
type: TaskType
|
||||
targetType: string
|
||||
targetId: string
|
||||
billingInfo?: TaskBillingInfo | null
|
||||
payload?: Record<string, unknown> | null
|
||||
}) {
|
||||
return await prisma.task.create({
|
||||
data: {
|
||||
id: params.id,
|
||||
userId: params.userId,
|
||||
projectId: params.projectId,
|
||||
type: params.type,
|
||||
targetType: params.targetType,
|
||||
targetId: params.targetId,
|
||||
status: TASK_STATUS.QUEUED,
|
||||
billingInfo: (params.billingInfo ?? Prisma.JsonNull) as unknown as Prisma.InputJsonValue,
|
||||
payload: (params.payload ?? Prisma.JsonNull) as unknown as Prisma.InputJsonValue,
|
||||
queuedAt: new Date(),
|
||||
},
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user