/
githubmirror
/
grafana
Обзор
Документация
Войти
/
githubmirror
/
grafana
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
pkg/util/contextutil_test.go
46 строк
1 KB
Yuriy Tseretyan
Chore: Add context util that allow to provide cause of cancellation (#53918)
24 авг 2022, 17:24
Не верифицирован
24 авг 2022, 17:24
736d035
Код
Авторство
О чём код?
package util import ( "context" "errors" "testing" "github.com/stretchr/testify/require" ) func TestWithCancelWithReason(t *testing.T) { t.Run("should add custom reason to the standard error", func(t *testing.T) { expected := errors.New("test-err") ctx, fn := WithCancelCause(context.Background()) fn(expected) select { case <-ctx.Done(): default: require.Fail(t, "the context was not cancelled") } require.ErrorIs(t, ctx.Err(), expected) require.ErrorIs(t, ctx.Err(), context.Canceled) }) t.Run("should return only the first reason if called multiple times", func(t *testing.T) { expected := errors.New("test-err") ctx, fn := WithCancelCause(context.Background()) fn(expected) fn(errors.New("other error")) require.ErrorIs(t, ctx.Err(), expected) }) t.Run("should return only the first reason if called multiple times", func(t *testing.T) { expected := errors.New("test-err") ctx, fn := WithCancelCause(context.Background()) fn(expected) fn(errors.New("other error")) require.ErrorIs(t, ctx.Err(), expected) }) t.Run("should return context.Canceled if no reason provided", func(t *testing.T) { ctx, fn := WithCancelCause(context.Background()) fn(nil) require.Equal(t, ctx.Err(), context.Canceled) }) }