import fs from 'fs'; import path from 'path'; const downloadRoutePath = path.resolve( __dirname, '..', '..', 'app', 'api', 'license', '[projectCode]', 'premium-modules', '[moduleId]', 'route.ts' ); const pullTokenRoutePath = path.resolve( __dirname, '..', '..', 'app', 'api', 'license', '[projectCode]', 'premium-modules', '[moduleId]', 'pull-token', 'route.ts' ); const registryAuthRoutePath = path.resolve( __dirname, '..', '..', 'app', 'api', 'registry', 'auth', 'route.ts' ); describe('授权模块凭证入口覆盖', () => { it('授权凭证接口必须保留请求签名、硬件指纹和模块权限校验', () => { const source = fs.readFileSync(downloadRoutePath, 'utf8'); expect(source).toContain("verifyLicenseRequestSignature('premium-module-download'"); expect(source).toContain('calculateFingerprintMatchScore'); expect(source).toContain('getAuthorizedModuleGrant'); expect(source).toContain('buildPremiumModuleEntitlement'); expect(source).toContain('当前许可证不允许使用该授权模块'); }); it('短期拉包凭证接口必须绑定模块授权、镜像仓库和审计记录', () => { const source = fs.readFileSync(pullTokenRoutePath, 'utf8'); expect(source).toContain("verifyLicenseRequestSignature('premium-module-pull-token'"); expect(source).toContain('getAuthorizedModuleGrant'); expect(source).toContain('parseRegistryImage'); expect(source).toContain('createModulePullCredential'); expect(source).toContain('modulePullTokenAudit.create'); }); it('Registry 鉴权入口必须校验短期 token、仓库路径和模块授权状态', () => { const source = fs.readFileSync(registryAuthRoutePath, 'utf8'); expect(source).toContain('verifyModulePullToken'); expect(source).toContain('requestedRepository !== payload.repository'); expect(source).toContain('isManifestDigestRequest'); expect(source).toContain('requestedReference !== payload.tag'); expect(source).toContain('modulePullTokenAudit.findFirst'); expect(source).toContain('activation.findFirst'); expect(source).toContain('getAuthorizedModuleGrant'); expect(source).toContain('lastValidatedAt'); }); });