mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-08-08 06:56:10 +00:00
Enforce MessageDeduplicator count bound
This commit is contained in:
parent
1f59e814f9
commit
b896dd3f61
@ -61,6 +61,7 @@ final class MessageDeduplicator {
|
||||
let now = Date()
|
||||
entries.append(Entry(id: id, timestamp: now))
|
||||
lookup[id] = now
|
||||
trimIfNeeded()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
28
bitchatTests/MessageDeduplicatorTests.swift
Normal file
28
bitchatTests/MessageDeduplicatorTests.swift
Normal 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"))
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user