pomerium/pkg/contextutil/contextutil_test.go
Caleb Doxsey c178819875
move directory providers (#3633)
* remove directory providers and support for groups

* idp: remove directory providers

* better error messages

* fix errors

* restore postgres

* fix test
2022-11-03 11:33:56 -06:00

39 lines
905 B
Go

package contextutil
import (
"context"
"testing"
"time"
"github.com/stretchr/testify/assert"
)
func TestMerge(t *testing.T) {
type key string
t.Run("value", func(t *testing.T) {
type contextKey string
k1 := contextKey("key1")
k2 := contextKey("key2")
ctx1 := context.WithValue(context.Background(), k1, "value1")
ctx2 := context.WithValue(context.Background(), k2, "value2")
ctx3, _ := Merge(ctx1, ctx2)
assert.Equal(t, "value1", ctx3.Value(k1))
assert.Equal(t, "value2", ctx3.Value(k2))
})
t.Run("cancel", func(t *testing.T) {
ctx1, cancel1 := context.WithCancel(context.Background())
defer cancel1()
ctx2, cancel2 := context.WithCancel(context.Background())
ctx3, _ := Merge(ctx1, ctx2)
cancel2()
assert.Eventually(t, func() bool {
select {
case <-ctx3.Done():
return true
default:
return false
}
}, time.Second, time.Millisecond*100)
})
}