From 93e3206653208ce175813ce1b14d8ab5efed6dac Mon Sep 17 00:00:00 2001 From: AmirHossein Fallah Date: Tue, 17 Feb 2026 16:12:36 +0330 Subject: [PATCH] test(render): make msgpack tests deterministic Decode the rendered msgpack output and assert values instead of comparing raw bytes (which can vary with map iteration order). Enable MsgpackHandle.RawToString so msgpack strings decode as Go strings. --- render/render_msgpack_test.go | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/render/render_msgpack_test.go b/render/render_msgpack_test.go index b0eaac1b..48b23870 100644 --- a/render/render_msgpack_test.go +++ b/render/render_msgpack_test.go @@ -7,7 +7,6 @@ package render import ( - "bytes" "errors" "net/http/httptest" "testing" @@ -30,14 +29,12 @@ func TestRenderMsgPack(t *testing.T) { require.NoError(t, err) - h := new(codec.MsgpackHandle) - assert.NotNil(t, h) - buf := bytes.NewBuffer([]byte{}) - assert.NotNil(t, buf) - err = codec.NewEncoder(buf, h).Encode(data) - + var decoded map[string]any + var mh codec.MsgpackHandle + mh.RawToString = true + err = codec.NewDecoderBytes(w.Body.Bytes(), &mh).Decode(&decoded) require.NoError(t, err) - assert.Equal(t, w.Body.String(), buf.String()) + assert.Equal(t, data, decoded) assert.Equal(t, "application/msgpack; charset=utf-8", w.Header().Get("Content-Type")) } @@ -53,13 +50,14 @@ func TestWriteMsgPack(t *testing.T) { assert.Equal(t, "application/msgpack; charset=utf-8", w.Header().Get("Content-Type")) - // Verify the encoded data is correct - h := new(codec.MsgpackHandle) - buf := bytes.NewBuffer([]byte{}) - err = codec.NewEncoder(buf, h).Encode(data) + var decoded map[string]any + var mh codec.MsgpackHandle + mh.RawToString = true + err = codec.NewDecoderBytes(w.Body.Bytes(), &mh).Decode(&decoded) require.NoError(t, err) - - assert.Equal(t, buf.String(), w.Body.String()) + assert.Len(t, decoded, 2) + assert.Equal(t, "bar", decoded["foo"]) + assert.EqualValues(t, 42, decoded["num"]) } type failWriter struct {