From 7302b1a561b71fa9dbe86eb2368fb5fbe2fd70f9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 1 Apr 2025 21:25:07 +0000 Subject: [PATCH] chore(internal): codegen related update --- packages/param/encoder_test.go | 34 ++++++++++++++++++++++++++++++++++ packages/param/param.go | 2 +- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/packages/param/encoder_test.go b/packages/param/encoder_test.go index f3be2fc2..1f77efbb 100644 --- a/packages/param/encoder_test.go +++ b/packages/param/encoder_test.go @@ -157,3 +157,37 @@ func TestUnionDateMarshal(t *testing.T) { }) } } + +func TestOverride(t *testing.T) { + tests := map[string]struct { + value param.OverridableObject + expected string + }{ + "param_struct": { + param.OverrideObj[FieldStruct](map[string]any{ + "a": "hello", + "b": 12, + "c": nil, + }), + `{"a":"hello","b":12,"c":null}`, + }, + "param_struct_primitive": { + param.OverrideObj[FieldStruct](12), + `12`, + }, + } + for name, test := range tests { + t.Run(name, func(t *testing.T) { + b, err := json.Marshal(test.value) + if err != nil { + t.Fatalf("didn't expect error %v, expected %s", err, test.expected) + } + if string(b) != test.expected { + t.Fatalf("expected %s, received %s", test.expected, string(b)) + } + if _, ok := test.value.IsOverridden(); !ok { + t.Fatalf("expected to be overridden") + } + }) + } +} diff --git a/packages/param/param.go b/packages/param/param.go index 4ffce959..cafcafac 100644 --- a/packages/param/param.go +++ b/packages/param/param.go @@ -18,7 +18,7 @@ func NullObj[T NullableObject, PT Settable[T]]() T { func OverrideObj[T OverridableObject, PT Settable[T]](v any) T { var t T pt := PT(&t) - pt.setMetadata(nil) + pt.setMetadata(v) return *pt }