flnxi-Wu/license-server/lib/__tests__/premium-module-route-coverage.test.ts
2026-06-02 19:25:48 +08:00

76 lines
2.2 KiB
TypeScript

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');
});
});