Files
bitchat/bitchatTests/Services/BLEPeerSenderDisplayNameTests.swift
T
193cfdc06a [codex] Extract BLE service policy helpers (#1321)
* Extract BLE service policy helpers

* Stabilize image media transfer test

---------

Co-authored-by: jack <jackjackbits@users.noreply.github.com>
2026-06-01 14:16:44 +02:00

79 lines
2.4 KiB
Swift

import BitFoundation
import Foundation
import Testing
@testable import bitchat
@Suite("BLE peer sender display name tests")
struct BLEPeerSenderDisplayNameTests {
@Test("local peer resolves to local nickname")
func localPeerUsesLocalNickname() {
let local = PeerID(str: "1122334455667788")
#expect(BLEPeerSenderDisplayName.resolveKnownPeer(
peerID: local,
localPeerID: local,
localNickname: "me",
peers: [:],
allowConnectedUnverified: false
) == "me")
}
@Test("verified nickname collisions add peer suffix")
func verifiedCollisionAddsSuffix() {
let local = PeerID(str: "1122334455667788")
let peer = PeerID(str: "8877665544332211")
let peers = [
peer: makeInfo(peerID: peer, nickname: "sam", isConnected: false, isVerifiedNickname: true)
]
#expect(BLEPeerSenderDisplayName.resolveKnownPeer(
peerID: peer,
localPeerID: local,
localNickname: "sam",
peers: peers,
allowConnectedUnverified: false
) == "sam#8877")
}
@Test("connected unverified fallback is opt in")
func connectedUnverifiedFallbackIsOptIn() {
let local = PeerID(str: "1122334455667788")
let peer = PeerID(str: "8877665544332211")
let peers = [
peer: makeInfo(peerID: peer, nickname: "", isConnected: true, isVerifiedNickname: false)
]
#expect(BLEPeerSenderDisplayName.resolveKnownPeer(
peerID: peer,
localPeerID: local,
localNickname: "me",
peers: peers,
allowConnectedUnverified: false
) == nil)
#expect(BLEPeerSenderDisplayName.resolveKnownPeer(
peerID: peer,
localPeerID: local,
localNickname: "me",
peers: peers,
allowConnectedUnverified: true
) == "anon8877")
}
private func makeInfo(
peerID: PeerID,
nickname: String,
isConnected: Bool,
isVerifiedNickname: Bool
) -> BLEPeerInfo {
BLEPeerInfo(
peerID: peerID,
nickname: nickname,
isConnected: isConnected,
noisePublicKey: nil,
signingPublicKey: nil,
isVerifiedNickname: isVerifiedNickname,
lastSeen: Date(timeIntervalSince1970: 0)
)
}
}