Enforce MessageDeduplicator count bound

This commit is contained in:
vekovius 2026-08-05 12:43:44 -05:00
parent 1f59e814f9
commit b896dd3f61
2 changed files with 29 additions and 0 deletions

View File

@ -61,6 +61,7 @@ final class MessageDeduplicator {
let now = Date()
entries.append(Entry(id: id, timestamp: now))
lookup[id] = now
trimIfNeeded()
}
}

View File

@ -0,0 +1,28 @@
//
// MessageDeduplicatorTests.swift
// bitchatTests
//
// Tests for MessageDeduplicator.
// This is free and unencumbered software released into the public domain.
//
import Foundation
import Testing
@testable import bitchat
@Suite("Message Deduplicator")
struct MessageDeduplicatorTests {
@Test func markProcessed_enforcesMaximumCount() {
let deduplicator = MessageDeduplicator(maxAge: 300, maxCount: 4)
for id in ["a", "b", "c", "d", "e"] {
deduplicator.markProcessed(id)
}
#expect(!deduplicator.contains("a"))
#expect(!deduplicator.contains("b"))
#expect(deduplicator.contains("c"))
#expect(deduplicator.contains("d"))
#expect(deduplicator.contains("e"))
}
}