// 已读取AGENTS.md import * as fs from 'fs'; import * as path from 'path'; /** * 第三十六批回归闸门:买家取消订单的状态安全 */ describe('第三十六批买家取消订单闸门', () => { const rootDir = path.resolve(__dirname, '../../'); const indexCode = fs.readFileSync(path.join(rootDir, 'server/src/index.ts'), 'utf-8'); const repoCode = fs.readFileSync(path.join(rootDir, 'server/src/db/repository.ts'), 'utf-8'); it('仓储层提供 buyerCancelOrder 且拒绝已履约订单', () => { const start = repoCode.indexOf('async buyerCancelOrder('); expect(start).toBeGreaterThan(-1); const block = repoCode.slice(start, start + 2600); expect(block).toContain('不可直接取消,请发起退款申诉'); expect(block).toContain("status = \"已退款\", refund_amount"); expect(block).toContain("'买家取消订单退款'"); }); it('取消路由:管理员直改状态,买家走安全取消', () => { const start = indexCode.indexOf("app.post('/api/orders/:id/cancel'"); const block = indexCode.slice(start, start + 1200); expect(block).toContain('role.isAdmin'); expect(block).toContain('repo.buyerCancelOrder(orderId)'); }); });