test: strengthen launch security and capacity gates

This commit is contained in:
Codex
2026-07-01 04:54:07 +08:00
parent 69b4d3b62d
commit 1eb5a13df7
13 changed files with 452 additions and 31 deletions

View File

@@ -153,6 +153,29 @@ assert.ok(
'slow API benchmark should be reported as a blocker',
);
const missingMixedBenchmark = runGate(tempDir => {
const evidence = createEvidence(tempDir);
evidence.checks = evidence.checks.filter(item => item.id !== 'performance.api-real-data-mixed');
return evidence;
});
assert.notEqual(missingMixedBenchmark.status, 0, 'missing mixed read/write benchmark should fail launch gate');
assert.ok(
missingMixedBenchmark.payload.checks?.some(item => item.id === 'check.performance.api-real-data-mixed' && item.status === 'blocker'),
'missing mixed benchmark should be reported as a blocker',
);
const slowMixedBenchmark = runGate(tempDir => {
const evidence = createEvidence(tempDir);
const item = evidence.checks.find(check => check.id === 'performance.api-real-data-mixed');
item.summary.p95Ms = 501;
return evidence;
});
assert.notEqual(slowMixedBenchmark.status, 0, 'slow mixed API benchmark should fail launch gate');
assert.ok(
slowMixedBenchmark.payload.checks?.some(item => item.id === 'check.performance.api-real-data-mixed.summary' && item.status === 'blocker'),
'slow mixed benchmark should be reported as a blocker',
);
const missingBusinessSampling = runGate(tempDir => {
const evidence = createEvidence(tempDir);
evidence.checks = evidence.checks.filter(item => item.id !== 'migration.pb-import-sample');
@@ -186,6 +209,17 @@ assert.ok(
'missing H5 interaction smoke should be reported as a blocker',
);
const missingRepoSecurityScan = runGate(tempDir => {
const evidence = createEvidence(tempDir);
evidence.checks = evidence.checks.filter(item => item.id !== 'security.repo-scan');
return evidence;
});
assert.notEqual(missingRepoSecurityScan.status, 0, 'missing repository security scan should fail launch gate');
assert.ok(
missingRepoSecurityScan.payload.checks?.some(item => item.id === 'check.security.repo-scan' && item.status === 'blocker'),
'missing repository security scan should be reported as a blocker',
);
const missingAttestation = runGate(tempDir => {
const evidence = createEvidence(tempDir);
evidence.attestations = evidence.attestations.filter(item => item.id !== 'backup.snapshot');