// 已读取AGENTS.md import * as fs from 'fs'; import * as path from 'path'; /** * 第二十四批回归闸门:组局报名费用服务端权威 + 真实扣款 */ describe('第二十四批组局报名资金闸门', () => { const rootDir = path.resolve(__dirname, '../../'); const repoCode = fs.readFileSync(path.join(rootDir, 'server/src/db/repository.ts'), 'utf-8'); const joinBlock = () => { const start = repoCode.indexOf('async joinActivity('); expect(start).toBeGreaterThan(-1); return repoCode.slice(start, start + 6200); }; it('报名费以服务端活动配置为准(AA=人均分摊,房主请客=0)', () => { const block = joinBlock(); expect(block).toContain('per_person_fee_cents'); expect(block).toContain('const joinFeeCents = Number(actRows[0].pay_type) === 1'); }); it('报名从钱包真实扣款', () => { const block = joinBlock(); expect(block).toContain("'活动报名扣款'"); expect(block).toContain('UPDATE users SET balance = balance - ?'); expect(block).toContain('钱包余额不足,报名需支付'); }); it('入账/参与者金额均使用服务端权威值', () => { const block = joinBlock(); expect(block).not.toContain('params.payAmountCents / 100'); expect(block).not.toContain('params.userId, params.payAmountCents, verifyCode'); expect(block).toContain('payAmountCents: joinFeeCents'); }); });