{"id":"time-injection-is-a-complete-testing-strategy","text":"Time injection enables fully deterministic testing by making wall-clock time an explicit parameter across notification, rate limiting, and crawling — unless the inconsistent fallback defaults (rate limiter falls back to `time.time()` while chat defaults to `0.0`) mean that tests omitting the time parameter exercise fundamentally different behavior depending on which module's convention they inherit.","truth_value":"IN","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["time-injection-enables-deterministic-testing"],"outlist":["current-time-fallback-inconsistent"],"label":"Time injection is sound but inconsistent defaults create divergent untested fallback behavior"}],"dependents":[],"metadata":{"last_reviewed":"2026-06-06T06:26:57","review_result":"pass"},"created_at":"","updated_at":"","reviewed_at":"","verified_at":"","retracted_at":"","explanation":{"steps":[{"node":"time-injection-is-a-complete-testing-strategy","truth_value":"IN","reason":"SL justification valid","antecedents":["time-injection-enables-deterministic-testing"],"label":"Time injection is sound but inconsistent defaults create divergent untested fallback behavior","outlist":["current-time-fallback-inconsistent"]},{"node":"time-injection-enables-deterministic-testing","truth_value":"IN","reason":"SL justification valid","antecedents":["notif-caller-controls-time","rate-limiter-time-injectable","crawl-uses-simulated-clock"],"label":""},{"node":"notif-caller-controls-time","truth_value":"IN","reason":"premise"},{"node":"rate-limiter-time-injectable","truth_value":"IN","reason":"premise"},{"node":"crawl-uses-simulated-clock","truth_value":"IN","reason":"premise"}]}}