From 42ac19af488f5b11821488184d465e80013ad023 Mon Sep 17 00:00:00 2001 From: Mos Date: Fri, 7 Aug 2026 05:33:38 +0000 Subject: [PATCH] test(gateway): size the enrollment clamp tolerance to CI jitter, not to a fast machine (closes #1090) (#1094) --- .../__tests__/enrollment.service.spec.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/apps/gateway/src/federation/__tests__/enrollment.service.spec.ts b/apps/gateway/src/federation/__tests__/enrollment.service.spec.ts index 558f6da8..3a26dd22 100644 --- a/apps/gateway/src/federation/__tests__/enrollment.service.spec.ts +++ b/apps/gateway/src/federation/__tests__/enrollment.service.spec.ts @@ -245,9 +245,21 @@ describe('EnrollmentService.createToken', () => { const after = Date.now(); const expiresMs = new Date(result.expiresAt).getTime(); - // Should be at most 900s from now - expect(expiresMs - before).toBeLessThanOrEqual(900_000 + 100); + + // The property under test is CLAMPING: a 9999s request must come back as 900s. + // The gap between clamped and unclamped is 9_099_000 ms, so the tolerance below + // only has to exceed CI scheduling jitter — it does not need to be tight to keep + // the assertion discriminating. A 5s allowance consumes 0.05% of that margin and + // an unclamped result still misses by three orders of magnitude. + // + // It was 100ms and failed on a loaded agent at 900_106 — 6ms over (#1090). A + // wall-clock budget sized to a fast machine is a flake, not a tighter test. + const CI_JITTER_MS = 5_000; + expect(expiresMs - before).toBeLessThanOrEqual(900_000 + CI_JITTER_MS); expect(expiresMs - after).toBeGreaterThanOrEqual(0); + // Explicitly pin the clamp itself, independent of any timing allowance: + // unclamped (9999s) would exceed this by ~9_099_000 ms. + expect(expiresMs - before).toBeLessThan(1_000_000); }); });