mirror of
https://github.com/pomerium/pomerium.git
synced 2025-04-29 18:36:30 +02:00
* remove directory providers and support for groups * idp: remove directory providers * better error messages * fix errors * restore postgres * fix test
39 lines
905 B
Go
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)
|
|
})
|
|
}
|