fix: simplify balance billing and govern operation logs
This commit is contained in:
@@ -26,7 +26,7 @@ function createPrismaMock() {
|
||||
aggregate: jest.fn().mockResolvedValue({ _count: { _all: 2 }, _sum: { amountCents: 20, billingUnits: 2 } }),
|
||||
},
|
||||
accountTransaction: {
|
||||
aggregate: jest.fn().mockResolvedValue({ _count: { _all: 2 }, _sum: { amountCents: -20, smsUnits: -2 } }),
|
||||
aggregate: jest.fn().mockResolvedValue({ _count: { _all: 2 }, _sum: { amountCents: -20 } }),
|
||||
},
|
||||
tenantAccount: {
|
||||
findMany: jest.fn().mockResolvedValue([{ tenantId: 'tenant-1', balanceCents: 1000, tenant: { name: '租户A' } }]),
|
||||
@@ -331,6 +331,36 @@ describe('OperationsService', () => {
|
||||
);
|
||||
});
|
||||
|
||||
it('applies operation-log level filters before database pagination', async () => {
|
||||
const prisma = createPrismaMock();
|
||||
const service = new OperationsService(prisma as never);
|
||||
|
||||
await service.systemLogs({ level: 'error', page: 2, pageSize: 5 });
|
||||
|
||||
expect(prisma.operationLog.findMany).toHaveBeenCalledWith(expect.objectContaining({
|
||||
where: expect.objectContaining({
|
||||
AND: expect.objectContaining({ OR: expect.any(Array) }),
|
||||
}),
|
||||
skip: 5,
|
||||
take: 5,
|
||||
}));
|
||||
expect(prisma.operationLog.count).toHaveBeenCalledWith({
|
||||
where: expect.objectContaining({ AND: expect.objectContaining({ OR: expect.any(Array) }) }),
|
||||
});
|
||||
});
|
||||
|
||||
it('caps legacy audit-log reads with pagination', async () => {
|
||||
const prisma = createPrismaMock();
|
||||
const service = new OperationsService(prisma as never);
|
||||
|
||||
await expect(service.auditLogs({ page: 1, pageSize: 1_000 })).resolves.toEqual(expect.objectContaining({
|
||||
total: 1,
|
||||
page: 1,
|
||||
pageSize: 100,
|
||||
}));
|
||||
expect(prisma.operationLog.findMany).toHaveBeenCalledWith(expect.objectContaining({ take: 100 }));
|
||||
});
|
||||
|
||||
it('returns paginated gateway submit dead letters', async () => {
|
||||
const prisma = createPrismaMock();
|
||||
const service = new OperationsService(prisma as never);
|
||||
|
||||
Reference in New Issue
Block a user