76 lines
2.2 KiB
TypeScript
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');
|
|
});
|
|
});
|