// 已读取AGENTS.md import * as fs from 'fs'; import * as path from 'path'; /** * 第七十五批回归闸门:后台登录态吊销 + 依赖清理。 */ describe('第七十五批后台令牌吊销闸门', () => { const root = path.resolve(__dirname, '../../'); const indexCode = fs.readFileSync(path.join(root, 'server/src/index.ts'), 'utf-8'); const pkg = JSON.parse(fs.readFileSync(path.join(root, 'server/package.json'), 'utf-8')); const navbar = fs.readFileSync(path.join(root, 'admin/arco-design-pro-vite/src/components/navbar/index.vue'), 'utf-8'); it('令牌携带版本号,版本不符即失效', () => { expect(indexCode).toContain('ver: adminTokenEpoch'); expect(indexCode).toContain('if (Number(data.ver) !== adminTokenEpoch) return false;'); expect(indexCode).toContain('let adminTokenEpoch = 1;'); }); it('提供吊销接口并持久化版本号', () => { expect(indexCode).toContain("app.post('/api/admin/session/revoke-all', requireAdmin"); expect(indexCode).toContain("repo.updatePlatformConfig('admin_token_epoch'"); expect(indexCode).toContain('loadAdminTokenEpoch'); }); it('令牌有效期可配置(默认 24 小时)', () => { expect(indexCode).toContain('ADMIN_TOKEN_TTL_HOURS'); expect(indexCode).toContain('ADMIN_TOKEN_TTL_MS'); }); it('后台提供「吊销所有后台登录态」入口', () => { expect(navbar).toContain('handleRevokeAll'); expect(navbar).toContain('revokeAllAdminSessions'); }); it('已移除未使用的 prisma 依赖(消除全部依赖漏洞)', () => { expect(pkg.dependencies['@prisma/client']).toBeUndefined(); expect(pkg.devDependencies['prisma']).toBeUndefined(); }); });