test(master): wait for the replacement connection to register (#7)

This commit is contained in:
2026-10-12 19:15:24 +02:00
parent caa6c81716
commit 961ddd275c
+7 -3
View File
@@ -2,6 +2,7 @@ package hub
import (
"context"
"errors"
"strconv"
"strings"
"sync"
@@ -106,9 +107,12 @@ func TestHub_StartJobOnReplacedConnectionFails(t *testing.T) {
require.NoError(t, err)
defer second.CloseNow()
// Until the new connection says hello, nothing is routable and the old
// route is refused.
assert.ErrorIs(t, h.StartJob(old, 1, protocol.JobStart{}), model.ErrAgentOffline)
// dial returns before the hub has registered the connection, so wait for
// the replacement to take effect: the old route is then refused. Until the
// new connection says hello, nothing is routable.
require.Eventually(t, func() bool {
return errors.Is(h.StartJob(old, 1, protocol.JobStart{}), model.ErrAgentOffline)
}, 2*time.Second, 5*time.Millisecond)
send(t, second, protocol.TypeHello, protocol.Hello{ProtocolVersion: 2})
fresh := waitRoute(t, h)
require.NotEqual(t, old.ConnID, fresh.ConnID)