test: use a common fake clock baseline - #15052
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe PR centralizes Vitest’s fake-clock baseline and updates time-dependent tests to use ChangesTest clock migration
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: Important Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 inconclusive)
✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
🎭 Playwright: ✅ 1802 passed, 0 failed · 2 flaky📊 Browser Reports
🎨 Storybook: ✅ Built — View Storybook📦 Bundle: 8.69 MB gzip ⚪ 0 BDetailsSummary
Category Glance App Entry Points — 3.67 kB (baseline 3.67 kB) • ⚪ 0 BMain entry bundles and manifests Status: 1 unchanged Graph Workspace — 1.36 MB (baseline 1.36 MB) • ⚪ 0 BGraph editor runtime, canvas, workflow orchestration Status: 3 unchanged Views & Navigation — 124 kB (baseline 124 kB) • ⚪ 0 BTop-level views, pages, and routed surfaces Status: 17 unchanged Panels & Settings — 565 kB (baseline 565 kB) • ⚪ 0 BConfiguration panels, inspectors, and settings screens Status: 26 unchanged User & Accounts — 27 kB (baseline 27 kB) • ⚪ 0 BAuthentication, profile, and account management bundles Status: 10 unchanged Editors & Dialogs — 125 kB (baseline 125 kB) • ⚪ 0 BModals, dialogs, drawers, and in-app editors Status: 8 unchanged UI Components — 67.1 kB (baseline 67.1 kB) • ⚪ 0 BReusable component library chunks Status: 14 unchanged Data & Services — 3.5 MB (baseline 3.5 MB) • ⚪ 0 BStores, services, APIs, and repositories Status: 17 unchanged Utilities & Hooks — 550 kB (baseline 550 kB) • ⚪ 0 BHelpers, composables, and utility bundles Status: 38 unchanged Vendor & Third-Party — 16.3 MB (baseline 16.3 MB) • ⚪ 0 BExternal libraries and shared vendor chunks Status: 17 unchanged Other — 14 MB (baseline 14 MB) • ⚪ 0 BBundles that do not match a named category Status: 285 unchanged ⚡ Performance Report
Show regressions
All metrics
Historical variance (last 15 runs)
Trend (last 15 commits on main)
Raw data{
"timestamp": "2026-08-11T22:32:33.078Z",
"gitSha": "436e04df2e01032bbc184b33e2e94a34828b64e1",
"branch": "test/global-vitest-clock-baseline",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2068.263999999971,
"styleRecalcs": 10,
"styleRecalcDurationMs": 9.228,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 601.3159999999999,
"heapDeltaBytes": 5751640,
"heapUsedBytes": 70275512,
"domNodes": 20,
"jsHeapTotalBytes": 23855104,
"scriptDurationMs": 27.235,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-idle",
"durationMs": 2021.235000000047,
"styleRecalcs": 8,
"styleRecalcDurationMs": 7.802999999999997,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 611.682,
"heapDeltaBytes": 5884848,
"heapUsedBytes": 70206652,
"domNodes": 16,
"jsHeapTotalBytes": 24903680,
"scriptDurationMs": 24.612999999999996,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1886.1739999999827,
"styleRecalcs": 74,
"styleRecalcDurationMs": 40.412000000000006,
"layouts": 12,
"layoutDurationMs": 3.9050000000000002,
"taskDurationMs": 1008.623,
"heapDeltaBytes": -17408332,
"heapUsedBytes": 47080872,
"domNodes": -284,
"jsHeapTotalBytes": 23306240,
"scriptDurationMs": 131.025,
"eventListeners": -153,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1933.6939999999458,
"styleRecalcs": 76,
"styleRecalcDurationMs": 42.805,
"layouts": 12,
"layoutDurationMs": 3.6629999999999994,
"taskDurationMs": 991.816,
"heapDeltaBytes": -15785420,
"heapUsedBytes": 48559052,
"domNodes": -282,
"jsHeapTotalBytes": 23306240,
"scriptDurationMs": 128.237,
"eventListeners": -153,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1735.1830000000064,
"styleRecalcs": 30,
"styleRecalcDurationMs": 16.791,
"layouts": 6,
"layoutDurationMs": 0.616,
"taskDurationMs": 460.536,
"heapDeltaBytes": 8733756,
"heapUsedBytes": 73301956,
"domNodes": 75,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 27.822,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1739.7540000000618,
"styleRecalcs": 32,
"styleRecalcDurationMs": 21.029,
"layouts": 6,
"layoutDurationMs": 0.6719999999999998,
"taskDurationMs": 455.25300000000004,
"heapDeltaBytes": 8821112,
"heapUsedBytes": 73213840,
"domNodes": 79,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 27.610000000000003,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 675.5380000000173,
"styleRecalcs": 13,
"styleRecalcDurationMs": 9.823000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 415.485,
"heapDeltaBytes": -10924532,
"heapUsedBytes": 53579896,
"domNodes": 22,
"jsHeapTotalBytes": 25165824,
"scriptDurationMs": 64.27,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-clipping",
"durationMs": 617.0550000000503,
"styleRecalcs": 10,
"styleRecalcDurationMs": 7.019999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 412.412,
"heapDeltaBytes": -11216464,
"heapUsedBytes": 53136468,
"domNodes": 16,
"jsHeapTotalBytes": 25165824,
"scriptDurationMs": 61.772999999999996,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-idle",
"durationMs": 2052.1870000000035,
"styleRecalcs": 8,
"styleRecalcDurationMs": 8.035,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 833.2060000000001,
"heapDeltaBytes": 7522836,
"heapUsedBytes": 67254120,
"domNodes": -284,
"jsHeapTotalBytes": 4034560,
"scriptDurationMs": 127.13499999999999,
"eventListeners": -149,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2035.532000000103,
"styleRecalcs": 7,
"styleRecalcDurationMs": 7.741999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 853.7180000000001,
"heapDeltaBytes": 7572368,
"heapUsedBytes": 68218188,
"domNodes": -283,
"jsHeapTotalBytes": 3510272,
"scriptDurationMs": 125.23799999999999,
"eventListeners": -147,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2211.6809999999987,
"styleRecalcs": 67,
"styleRecalcDurationMs": 14.683000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1419.02,
"heapDeltaBytes": 5262448,
"heapUsedBytes": 66150096,
"domNodes": -287,
"jsHeapTotalBytes": 3702784,
"scriptDurationMs": 463.70700000000005,
"eventListeners": -147,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2293.638000000101,
"styleRecalcs": 68,
"styleRecalcDurationMs": 15.498999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1426.725,
"heapDeltaBytes": 3733408,
"heapUsedBytes": 64675048,
"domNodes": -287,
"jsHeapTotalBytes": 3440640,
"scriptDurationMs": 452.042,
"eventListeners": -151,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-zoom",
"durationMs": 3349.905000000035,
"styleRecalcs": 64,
"styleRecalcDurationMs": 16.054000000000002,
"layouts": 60,
"layoutDurationMs": 8.812999999999999,
"taskDurationMs": 1627.015,
"heapDeltaBytes": 25453620,
"heapUsedBytes": 87763800,
"domNodes": 10,
"jsHeapTotalBytes": 8126464,
"scriptDurationMs": 570.678,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "large-graph-zoom",
"durationMs": 3429.8840000000155,
"styleRecalcs": 64,
"styleRecalcDurationMs": 16.363,
"layouts": 60,
"layoutDurationMs": 8.775,
"taskDurationMs": 1726.261,
"heapDeltaBytes": 7901272,
"heapUsedBytes": 70345168,
"domNodes": -290,
"jsHeapTotalBytes": 6393856,
"scriptDurationMs": 592.9519999999999,
"eventListeners": -151,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666636,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2041.6169999999738,
"styleRecalcs": 6,
"styleRecalcDurationMs": 5.977000000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 825.017,
"heapDeltaBytes": 6934784,
"heapUsedBytes": 68206332,
"domNodes": -284,
"jsHeapTotalBytes": 3510272,
"scriptDurationMs": 129.531,
"eventListeners": -151,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2059.1550000000325,
"styleRecalcs": 7,
"styleRecalcDurationMs": 6.165,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 853.9200000000001,
"heapDeltaBytes": 7156484,
"heapUsedBytes": 67577804,
"domNodes": -285,
"jsHeapTotalBytes": 3510272,
"scriptDurationMs": 129.23499999999999,
"eventListeners": -147,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 627.8130000000033,
"styleRecalcs": 46,
"styleRecalcDurationMs": 11.025999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 442.57699999999994,
"heapDeltaBytes": -10715768,
"heapUsedBytes": 53900540,
"domNodes": 18,
"jsHeapTotalBytes": 25952256,
"scriptDurationMs": 127.72899999999998,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 644.4330000000491,
"styleRecalcs": 47,
"styleRecalcDurationMs": 11.971,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 438.955,
"heapDeltaBytes": -10622380,
"heapUsedBytes": 53886108,
"domNodes": 20,
"jsHeapTotalBytes": 26476544,
"scriptDurationMs": 128.852,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 2038.98700000002,
"styleRecalcs": 9,
"styleRecalcDurationMs": 8.480000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 548.5770000000001,
"heapDeltaBytes": 5871808,
"heapUsedBytes": 70060484,
"domNodes": 18,
"jsHeapTotalBytes": 24903680,
"scriptDurationMs": 21.575999999999997,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 2009.9299999999403,
"styleRecalcs": 9,
"styleRecalcDurationMs": 8.340000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 591.3439999999999,
"heapDeltaBytes": 5822180,
"heapUsedBytes": 70297900,
"domNodes": 18,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 21.801,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1752.1939999999745,
"styleRecalcs": 78,
"styleRecalcDurationMs": 39.891,
"layouts": 16,
"layoutDurationMs": 4.805,
"taskDurationMs": 876.654,
"heapDeltaBytes": -18770352,
"heapUsedBytes": 45762976,
"domNodes": 63,
"jsHeapTotalBytes": 23306240,
"scriptDurationMs": 103.128,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1739.6110000000817,
"styleRecalcs": 77,
"styleRecalcDurationMs": 41.793000000000006,
"layouts": 16,
"layoutDurationMs": 4.864,
"taskDurationMs": 873.1329999999999,
"heapDeltaBytes": -3288844,
"heapUsedBytes": 61040588,
"domNodes": 63,
"jsHeapTotalBytes": 24379392,
"scriptDurationMs": 102.70499999999998,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-transition-enter",
"durationMs": 1418.057000000033,
"styleRecalcs": 17,
"styleRecalcDurationMs": 30.732999999999997,
"layouts": 13,
"layoutDurationMs": 11.862000000000002,
"taskDurationMs": 1037.0539999999999,
"heapDeltaBytes": 3841756,
"heapUsedBytes": 76939384,
"domNodes": 13673,
"jsHeapTotalBytes": 15466496,
"scriptDurationMs": 39.081,
"eventListeners": 2375,
"totalBlockingTimeMs": 138,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8616.59800000001,
"styleRecalcs": 250,
"styleRecalcDurationMs": 45.028,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 5020.58,
"heapDeltaBytes": 12758708,
"heapUsedBytes": 72164632,
"domNodes": -280,
"jsHeapTotalBytes": 6062080,
"scriptDurationMs": 1448.683,
"eventListeners": -131,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "viewport-pan-sweep",
"durationMs": 8819.549999999936,
"styleRecalcs": 250,
"styleRecalcDurationMs": 44.514,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 5001.968,
"heapDeltaBytes": 10723360,
"heapUsedBytes": 70122672,
"domNodes": -281,
"jsHeapTotalBytes": 5013504,
"scriptDurationMs": 1457.9569999999999,
"eventListeners": -161,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 18415.542000000016,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 18399.128999999997,
"heapDeltaBytes": -39610544,
"heapUsedBytes": 166472428,
"domNodes": -8312,
"jsHeapTotalBytes": -9117696,
"scriptDurationMs": 558.1039999999999,
"eventListeners": -16385,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.779999999999927,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 18658.15699999996,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 18626.89,
"heapDeltaBytes": -50998596,
"heapUsedBytes": 155426900,
"domNodes": -8312,
"jsHeapTotalBytes": -8065024,
"scriptDurationMs": 604.8580000000002,
"eventListeners": -16387,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "vue-large-graph-pan",
"durationMs": 23419.992000000035,
"styleRecalcs": 176,
"styleRecalcDurationMs": 29.437999999999963,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 23399.358,
"heapDeltaBytes": -27722744,
"heapUsedBytes": 179125244,
"domNodes": -8312,
"jsHeapTotalBytes": -8663040,
"scriptDurationMs": 981.437,
"eventListeners": -16377,
"totalBlockingTimeMs": 761,
"frameDurationMs": 18.333333333333332,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "vue-large-graph-pan",
"durationMs": 23310.29699999999,
"styleRecalcs": 172,
"styleRecalcDurationMs": 28.057,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 23264.291,
"heapDeltaBytes": -30208876,
"heapUsedBytes": 176724884,
"domNodes": -8312,
"jsHeapTotalBytes": -9416704,
"scriptDurationMs": 941.729,
"eventListeners": -16381,
"totalBlockingTimeMs": 794,
"frameDurationMs": 18.330000000000048,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "workflow-execution",
"durationMs": 460.56799999996656,
"styleRecalcs": 13,
"styleRecalcDurationMs": 19.546999999999993,
"layouts": 3,
"layoutDurationMs": 0.6709999999999999,
"taskDurationMs": 120.254,
"heapDeltaBytes": 5060156,
"heapUsedBytes": 68541228,
"domNodes": 126,
"jsHeapTotalBytes": 4718592,
"scriptDurationMs": 10.789,
"eventListeners": 99,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "workflow-execution",
"durationMs": 516.8690000000424,
"styleRecalcs": 18,
"styleRecalcDurationMs": 22.98,
"layouts": 3,
"layoutDurationMs": 1.5459999999999998,
"taskDurationMs": 151.26000000000002,
"heapDeltaBytes": 5172016,
"heapUsedBytes": 68614692,
"domNodes": 145,
"jsHeapTotalBytes": 4980736,
"scriptDurationMs": 12.527999999999999,
"eventListeners": 99,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
}
]
} |
ff72059 to
42eada6
Compare
ddf670f to
1114a71
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## main #15052 +/- ##
========================================
Coverage 80.81% 80.81%
========================================
Files 1873 1873
Lines 121954 121954
Branches 37495 37954 +459
========================================
Hits 98557 98557
+ Misses 22860 22850 -10
- Partials 537 547 +10
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
The base branch was changed.
ea7aee6 to
95a43cd
Compare
AustinMroz
left a comment
There was a problem hiding this comment.
Minor additional nit: There's some inconsistency with adding a thousands seperator (1_000 vs 1000), but usage is generally in line with surrounding code.
## Summary Child of Comfy-Org#15052. Give every test a clean localStorage baseline through the shared Vitest setup. ```ts beforeEach(() => { globalThis.localStorage?.clear() }) ``` The optional access keeps the shared setup compatible with the website and object-parser projects, which use Vitest's Node environment and do not expose localStorage. ## Audit results | Classification | Calls | Outcome | |---|---:|---| | Test-boundary setup/teardown | 50 | Removed as globally redundant | | Intra-test fast-check run isolation | 1 | Retained | | **Total audited** | **51** | **30 test files** | The retained call separates generated command sequences and shrink attempts inside a single Vitest test. A global `beforeEach` cannot replace it. The cleanup also removes empty hooks, stale comments, and unused lifecycle imports. Net diff: 10 additions and 106 deletions across 31 files. ## Validation | Project | Test files | Passed | Skipped | Failed | |---|---:|---:|---:|---:| | Root | 1,159 | 15,896 | 8 | 0 | | Desktop UI | 16 | 125 | 0 | 0 | | Website | 41 | 387 | 0 | 0 | | Object info parser | 4 | 33 | 0 | 0 | Also passed: - `pnpm typecheck` - `pnpm lint` (six pre-existing warnings, zero errors) - oxfmt and type-aware Oxlint on all changed files - pre-push `pnpm knip --cache` Co-authored-by: Amp <amp@ampcode.com>
Summary
Child of #15050. Give every root Vitest test the same named fake-clock baseline and express scenario time as relative movement from that baseline.
vi.setSystemTime()calls from 44 to 7Date.now()-relative fixturesvi.advanceTimersByTime()when elapsed time, rather than a wall-clock jump, is the behavior under testBaseline choice
The most frequent exact timestamp was
1_000_000ms (five calls), equivalent to1970-01-01T00:16:40Z. That value was common but arbitrary.June 15, 2024 was the most common meaningful calendar anchor: four date-oriented setups used that day. Noon UTC is explicit, stable, and compatible with the root project's existing
TZ=UTCconfiguration.Results
vi.setSystemTime()callsThe first full run exposed one hidden real-date dependency in
templateRankingStore.test.ts: a hardcoded January 2024 template was only “very old” relative to the present day. It is now represented as three years beforeDate.now(), matching the behavior the assertion describes.Validation
pnpm test:unit: 1,159 files passed; 15,892 tests passed; 8 skippedpnpm lintpnpm typecheckpnpm knip --cache