coder/testutil/eventually_test.go

44 lines
887 B
Go

package testutil_test
import (
"context"
"testing"
"github.com/stretchr/testify/assert"
"go.uber.org/goleak"
"github.com/coder/coder/v2/testutil"
)
func TestMain(m *testing.M) {
goleak.VerifyTestMain(m)
}
func TestEventually(t *testing.T) {
t.Parallel()
t.Run("OK", func(t *testing.T) {
t.Parallel()
state := 0
condition := func(_ context.Context) bool {
defer func() {
state++
}()
return state > 2
}
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
defer cancel()
testutil.Eventually(ctx, t, condition, testutil.IntervalFast)
})
t.Run("Panic", func(t *testing.T) {
t.Parallel()
panicky := func() {
mockT := new(testing.T)
condition := func(_ context.Context) bool { return true }
testutil.Eventually(context.Background(), mockT, condition, testutil.IntervalFast)
}
assert.Panics(t, panicky)
})
}