mirror of
https://github.com/livekit/livekit.git
synced 2026-08-28 11:44:43 +00:00
Wait for the callbacks these tests assert on. (#4803)
TestUnsubscribe checked that the changed-notifier observer was gone as soon as the unsubscribe had settled, but setDesired leaves the RemoveObserver call to a goroutine of its own and nothing the test waits on orders against it, so CI caught the assertion running first. TestSubscribe has the same defect on the unsubscribed callback, which unmarkSubscribedTo delivers with a bare go while the subscribed one is called inline. Wait for both, each with a message of its own, so that a leak that is real still says which of them broke. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
64a1211517
commit
dc2bd1d3b4
@@ -113,7 +113,10 @@ func TestSubscribe(t *testing.T) {
|
||||
require.Eventually(t, func() bool {
|
||||
return numParticipantSubscribed.Load() == 2
|
||||
}, subSettleTimeout, subCheckInterval, "participant subscribe status was not updated twice")
|
||||
require.Equal(t, int32(1), numParticipantUnsubscribed.Load())
|
||||
// the unsubscribed callback is delivered on a goroutine of its own
|
||||
require.Eventually(t, func() bool {
|
||||
return numParticipantUnsubscribed.Load() == 1
|
||||
}, subSettleTimeout, subCheckInterval, "participant unsubscribe status was not updated")
|
||||
})
|
||||
|
||||
t.Run("no track permission", func(t *testing.T) {
|
||||
@@ -248,7 +251,10 @@ func TestUnsubscribe(t *testing.T) {
|
||||
|
||||
// no traces should be left
|
||||
require.Len(t, sm.GetSubscribedTracks(), 0)
|
||||
require.False(t, res.TrackChangedNotifier.HasObservers())
|
||||
// the observer is dropped on a goroutine of its own
|
||||
require.Eventually(t, func() bool {
|
||||
return !res.TrackChangedNotifier.HasObservers()
|
||||
}, subSettleTimeout, subCheckInterval, "observer was not removed")
|
||||
|
||||
tl := sm.params.Participant.GetTelemetryListener().(*typesfakes.FakeParticipantTelemetryListener)
|
||||
require.Equal(t, 1, tl.OnTrackUnsubscribedCallCount())
|
||||
|
||||
Reference in New Issue
Block a user