mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-27 07:52:24 +00:00
Fixed flaky test in tests/hashtag-preferences.test.mjs caused by mock timing issue where load() triggered concurrent fetches, breaking the assumption of sequential calls. Updated assertions to robustly handle multi-kind fetching. Co-authored-by: PR0M3TH3AN <[email protected]>
1.5 KiB
1.5 KiB
CI Health Agent Task Log
Agent: ci-health-agent Cadence: daily Date: 2026-02-24 Status: Completed
Summary
Identified and fixed a flaky test in tests/hashtag-preferences.test.mjs that was causing intermittent CI failures.
Details
1. Flake Identification
- Test:
load applies same-timestamp updates deterministically with overlap fetchintests/hashtag-preferences.test.mjs. - Symptom: Assertion error where
expected: ['oldpref']butactual: ['newpref']on the first load. - Root Cause: The test mocked
nostrClient.fetchListIncrementallyusing acallCountvariable to determine when to return a newer event ("cipher-new"). The test author assumedhashtagPreferences.load()triggers a single fetch call. However,load()triggers concurrent fetches for multiple kinds (30015 and 30005), causingcallCountto increment twice during the first load operation. This caused the mock to return the "future" event prematurely.
2. Resolution
- Fix: Modified the mock implementation to condition the return of the new event on
params.since > 0(which correctly distinguishes the incremental update fetch from the initial load) rather thancallCount. - Verification: Updated test assertions to correctly verify that incremental fetching occurs, handling the multi-call nature of the implementation. Ran
node tests/hashtag-preferences.test.mjsand confirmed it passes consistently.
Artifacts
- Created
artifacts/ci-flakes-20260224.mdwith failure details.