"""Detector tests (SPECIFICATION ยง6). Detector implementations land in Phase 1.""" from datetime import datetime, timezone from opcda_diagnozer.monitor.detectors import PollOutcome from opcda_diagnozer.opc.base import ReadResult def test_poll_outcome_holds_one_cycle() -> None: result = ReadResult( tag="Channel1.Device1.Level", value=1.5, quality_raw=0xC0, device_time=None ) outcome = PollOutcome( started_at=datetime.now(timezone.utc), rtt_ms=12.5, results=(result,), ) assert outcome.rtt_ms == 12.5 assert outcome.error is None assert outcome.results[0].tag == "Channel1.Device1.Level"