From 0336111c459eaef633fa834e7422c2e0a3f60a8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Flc=E3=82=9B?= Date: Wed, 22 May 2024 00:10:14 +0800 Subject: [PATCH] refactor(context): refactor keys to `map[any]any` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Flcă‚› --- context_test.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/context_test.go b/context_test.go index 8bbf270086..d0cc17fc9b 100644 --- a/context_test.go +++ b/context_test.go @@ -217,6 +217,34 @@ func TestContextSetGet(t *testing.T) { assert.Equal(t, "bar", c.MustGet("foo")) assert.Panics(t, func() { c.MustGet("no_exist") }) + + // other types + type key struct{} + tests := []struct { + key any + }{ + {1}, + {int32(1)}, + {int64(1)}, + {uint(1)}, + {float32(1)}, + {key{}}, + {&key{}}, + } + + for _, tt := range tests { + t.Run(reflect.TypeOf(tt.key).String(), func(t *testing.T) { + c.Set(tt.key, 1) + assert.Equal(t, 1, c.MustGet(tt.key)) + }) + } + + // no comparable + assert.Panics(t, func() { + c.Set([]int{1}, 1) + c.Set(func() {}, 1) + c.Set(make(chan int), 1) + }) } func TestContextSetGetValues(t *testing.T) {