mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-24 22:45:19 +00:00
Centralize PTT and voice audio-session ownership, harden courier/bridge/outbox delivery and recovery, correct location and delivery-state races, add privacy/release metadata, and ship reproducible universal Arti slices with Release CI coverage. Validated by the full iOS suite, repeated audio/fragment/performance regressions, BitFoundation tests, strict lint and dead-code analysis, universal iOS Release builds, and iOS/macOS archives.
53 lines
1.8 KiB
Swift
53 lines
1.8 KiB
Swift
import Foundation
|
|
import Testing
|
|
@testable import bitchat
|
|
|
|
struct BLEAnnounceThrottleTests {
|
|
@Test
|
|
func firstAnnounceIsAllowed() {
|
|
var throttle = BLEAnnounceThrottle(normalMinimumInterval: 10, forcedMinimumInterval: 2)
|
|
|
|
let shouldSend = throttle.shouldSend(force: false, now: Date(timeIntervalSince1970: 100))
|
|
|
|
#expect(shouldSend)
|
|
}
|
|
|
|
@Test
|
|
func regularAnnounceUsesNormalMinimumInterval() {
|
|
let now = Date(timeIntervalSince1970: 100)
|
|
var throttle = BLEAnnounceThrottle(normalMinimumInterval: 10, forcedMinimumInterval: 2)
|
|
|
|
let first = throttle.shouldSend(force: false, now: now)
|
|
let suppressed = throttle.shouldSend(force: false, now: now.addingTimeInterval(9.9))
|
|
let afterInterval = throttle.shouldSend(force: false, now: now.addingTimeInterval(10))
|
|
|
|
#expect(first)
|
|
#expect(!suppressed)
|
|
#expect(afterInterval)
|
|
}
|
|
|
|
@Test
|
|
func forcedAnnounceUsesShorterMinimumInterval() {
|
|
let now = Date(timeIntervalSince1970: 100)
|
|
var throttle = BLEAnnounceThrottle(normalMinimumInterval: 10, forcedMinimumInterval: 2)
|
|
|
|
let first = throttle.shouldSend(force: false, now: now)
|
|
let suppressed = throttle.shouldSend(force: true, now: now.addingTimeInterval(1.9))
|
|
let afterInterval = throttle.shouldSend(force: true, now: now.addingTimeInterval(2))
|
|
|
|
#expect(first)
|
|
#expect(!suppressed)
|
|
#expect(afterInterval)
|
|
}
|
|
|
|
@Test
|
|
func elapsedReportsTimeSinceAcceptedSend() {
|
|
let now = Date(timeIntervalSince1970: 100)
|
|
var throttle = BLEAnnounceThrottle(normalMinimumInterval: 10, forcedMinimumInterval: 2)
|
|
|
|
_ = throttle.shouldSend(force: false, now: now)
|
|
|
|
#expect(throttle.elapsed(since: now.addingTimeInterval(3)) == 3)
|
|
}
|
|
}
|