mirror of
https://github.com/netbirdio/netbird.git
synced 2026-08-27 01:51:30 +02:00
31 lines
675 B
Go
31 lines
675 B
Go
package client
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/netbirdio/netbird/client/netstate"
|
|
)
|
|
|
|
func TestWaitForNetworkSettlesAfterOutage(t *testing.T) {
|
|
ns := netstate.New()
|
|
ns.Set(false)
|
|
g := NewGuard(nil, 0, ns)
|
|
|
|
const outage = 2 * verdictSettleWindow
|
|
start := time.Now()
|
|
go func() {
|
|
time.Sleep(outage)
|
|
ns.Set(true)
|
|
}()
|
|
|
|
ok := g.waitForNetwork(context.Background())
|
|
elapsed := time.Since(start)
|
|
|
|
assert.True(t, ok, "recovered network must let the quick reconnect proceed")
|
|
assert.GreaterOrEqual(t, elapsed, outage+verdictSettleWindow, "reconnect must wait a full settle window after the network returns")
|
|
}
|