from pypos.modules.scanner.services.scanner_event_guard_service import ScannerEventGuardService


def test_scanner_event_guard_accept_first_event():
    svc = ScannerEventGuardService(dedup_window_ms=300)
    assert svc.should_accept("8991234567890", "rawinput_poll") is True


def test_scanner_event_guard_reject_cross_source_duplicate_within_window():
    svc = ScannerEventGuardService(dedup_window_ms=1000)
    assert svc.should_accept("8991234567890", "rawinput_poll") is True
    assert svc.should_accept("8991234567890", "manual_barcode") is False


def test_scanner_event_guard_accept_same_source_repeated():
    svc = ScannerEventGuardService(dedup_window_ms=1000)
    assert svc.should_accept("8991234567890", "manual_barcode") is True
    assert svc.should_accept("8991234567890", "manual_barcode") is True
