refactor: use quartz event builders in CallManager test helpers

Replace manual tag assembly in test helpers (makeOffer, makeAnswer, etc.)
with the existing build() methods from quartz event classes. This keeps
test tag structures in sync with production code automatically.

https://claude.ai/code/session_01AfRYTRCvtKqqDxeKQujUrx
This commit is contained in:
Claude
2026-04-05 13:54:03 +00:00
parent 9854209843
commit fd42c7b725
@@ -98,6 +98,10 @@ class CallManagerTest {
} }
// ---- Event construction helpers ---- // ---- Event construction helpers ----
// These use the real event builders from quartz so that tag structures
// stay in sync with the production code. The builder returns an
// EventTemplate (no pubKey/id/sig); we wrap the template fields into
// a concrete event instance with a test pubKey and dummy id/sig.
private var eventCounter = 0 private var eventCounter = 0
@@ -109,14 +113,8 @@ class CallManagerTest {
sdp: String = sdpOffer, sdp: String = sdpOffer,
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
): CallOfferEvent { ): CallOfferEvent {
val tags = val t = CallOfferEvent.build(sdp, to, callId, callType)
arrayOf( return CallOfferEvent("offer${eventCounter++}", from, createdAt, t.tags, t.content, "sig")
arrayOf("p", to),
arrayOf("call-id", callId),
arrayOf("call-type", callType.value),
arrayOf("alt", "WebRTC call offer"),
)
return CallOfferEvent("offer${eventCounter++}", from, createdAt, tags, sdp, "sig")
} }
private fun makeGroupOffer( private fun makeGroupOffer(
@@ -127,15 +125,8 @@ class CallManagerTest {
sdp: String = sdpOffer, sdp: String = sdpOffer,
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
): CallOfferEvent { ): CallOfferEvent {
val pTags = members.map { arrayOf("p", it) }.toTypedArray() val t = CallOfferEvent.build(sdp, members, callId, callType)
val tags = return CallOfferEvent("offer${eventCounter++}", from, createdAt, t.tags, t.content, "sig")
pTags +
arrayOf(
arrayOf("call-id", callId),
arrayOf("call-type", callType.value),
arrayOf("alt", "WebRTC call offer"),
)
return CallOfferEvent("offer${eventCounter++}", from, createdAt, tags, sdp, "sig")
} }
private fun makeAnswer( private fun makeAnswer(
@@ -145,13 +136,8 @@ class CallManagerTest {
sdp: String = sdpAnswer, sdp: String = sdpAnswer,
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
): CallAnswerEvent { ): CallAnswerEvent {
val tags = val t = CallAnswerEvent.build(sdp, to, callId)
arrayOf( return CallAnswerEvent("answer${eventCounter++}", from, createdAt, t.tags, t.content, "sig")
arrayOf("p", to),
arrayOf("call-id", callId),
arrayOf("alt", "WebRTC call answer"),
)
return CallAnswerEvent("answer${eventCounter++}", from, createdAt, tags, sdp, "sig")
} }
private fun makeGroupAnswer( private fun makeGroupAnswer(
@@ -161,14 +147,8 @@ class CallManagerTest {
sdp: String = sdpAnswer, sdp: String = sdpAnswer,
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
): CallAnswerEvent { ): CallAnswerEvent {
val pTags = members.map { arrayOf("p", it) }.toTypedArray() val t = CallAnswerEvent.build(sdp, members, callId)
val tags = return CallAnswerEvent("answer${eventCounter++}", from, createdAt, t.tags, t.content, "sig")
pTags +
arrayOf(
arrayOf("call-id", callId),
arrayOf("alt", "WebRTC call answer"),
)
return CallAnswerEvent("answer${eventCounter++}", from, createdAt, tags, sdp, "sig")
} }
private fun makeHangup( private fun makeHangup(
@@ -178,13 +158,8 @@ class CallManagerTest {
reason: String = "", reason: String = "",
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
): CallHangupEvent { ): CallHangupEvent {
val tags = val t = CallHangupEvent.build(to, callId, reason)
arrayOf( return CallHangupEvent("hangup${eventCounter++}", from, createdAt, t.tags, t.content, "sig")
arrayOf("p", to),
arrayOf("call-id", callId),
arrayOf("alt", "WebRTC call hangup"),
)
return CallHangupEvent("hangup${eventCounter++}", from, createdAt, tags, reason, "sig")
} }
private fun makeReject( private fun makeReject(
@@ -194,13 +169,8 @@ class CallManagerTest {
reason: String = "", reason: String = "",
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
): CallRejectEvent { ): CallRejectEvent {
val tags = val t = CallRejectEvent.build(to, callId, reason)
arrayOf( return CallRejectEvent("reject${eventCounter++}", from, createdAt, t.tags, t.content, "sig")
arrayOf("p", to),
arrayOf("call-id", callId),
arrayOf("alt", "WebRTC call rejection"),
)
return CallRejectEvent("reject${eventCounter++}", from, createdAt, tags, reason, "sig")
} }
private fun makeIceCandidate( private fun makeIceCandidate(
@@ -209,14 +179,9 @@ class CallManagerTest {
callId: String = this.callId, callId: String = this.callId,
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
): CallIceCandidateEvent { ): CallIceCandidateEvent {
val json = """{"candidate":"candidate:1","sdpMid":"0","sdpMLineIndex":0}""" val json = CallIceCandidateEvent.serializeCandidate("candidate:1", "0", 0)
val tags = val t = CallIceCandidateEvent.build(json, to, callId)
arrayOf( return CallIceCandidateEvent("ice${eventCounter++}", from, createdAt, t.tags, t.content, "sig")
arrayOf("p", to),
arrayOf("call-id", callId),
arrayOf("alt", "WebRTC ICE candidate"),
)
return CallIceCandidateEvent("ice${eventCounter++}", from, createdAt, tags, json, "sig")
} }
private fun makeRenegotiate( private fun makeRenegotiate(
@@ -226,13 +191,8 @@ class CallManagerTest {
sdp: String = sdpOffer, sdp: String = sdpOffer,
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
): CallRenegotiateEvent { ): CallRenegotiateEvent {
val tags = val t = CallRenegotiateEvent.build(sdp, to, callId)
arrayOf( return CallRenegotiateEvent("renego${eventCounter++}", from, createdAt, t.tags, t.content, "sig")
arrayOf("p", to),
arrayOf("call-id", callId),
arrayOf("alt", "WebRTC call renegotiation"),
)
return CallRenegotiateEvent("renego${eventCounter++}", from, createdAt, tags, sdp, "sig")
} }
// ======================================================================== // ========================================================================