From ac59ed24d3620f9759581ff392c9e9f803f48b4f Mon Sep 17 00:00:00 2001 From: flc1125 Date: Wed, 21 May 2025 19:26:38 +0800 Subject: [PATCH] test(context): improve context.Set and context.Get tests - Split existing test into separate functions for different scenarios - Add test for setting and getting values with any key type - Add test for handling non-comparable keys - Improve assertions to check for key existence and value correctness Signed-off-by: flc1125 --- context_test.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/context_test.go b/context_test.go index 5309a0ab..8a75126d 100644 --- a/context_test.go +++ b/context_test.go @@ -255,8 +255,13 @@ func TestContextSetGet(t *testing.T) { assert.Equal(t, "bar", c.MustGet("foo")) assert.Panics(t, func() { c.MustGet("no_exist") }) - // other types +} + +func TestContextSetGetAnyKey(t *testing.T) { + c, _ := CreateTestContext(httptest.NewRecorder()) + type key struct{} + tests := []struct { key any }{ @@ -272,11 +277,16 @@ func TestContextSetGet(t *testing.T) { 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)) + value, ok := c.Get(tt.key) + assert.True(t, ok) + assert.Equal(t, 1, value) }) } +} + +func TestContextSetGetPanicsWhenKeyNotComparable(t *testing.T) { + c, _ := CreateTestContext(httptest.NewRecorder()) - // no comparable assert.Panics(t, func() { c.Set([]int{1}, 1) c.Set(func() {}, 1)