From f0a53d56a248bfbcec17bfc129ef5b44057a20b4 Mon Sep 17 00:00:00 2001 From: Jonas Plum Date: Tue, 23 Dec 2025 07:10:40 +0100 Subject: [PATCH] fix: setting details (#1175) --- app/service/service.go | 2 +- app/service/service_test.go | 29 ++++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/app/service/service.go b/app/service/service.go index dc6f83f..135a941 100644 --- a/app/service/service.go +++ b/app/service/service.go @@ -1881,7 +1881,7 @@ func marshal(state map[string]any) json.RawMessage { func marshalPointer(state *map[string]any) json.RawMessage { if state == nil { - return json.RawMessage("{}") + return nil } b, _ := json.Marshal(*state) //nolint:errchkjson diff --git a/app/service/service_test.go b/app/service/service_test.go index 0acb02b..29756a4 100644 --- a/app/service/service_test.go +++ b/app/service/service_test.go @@ -68,7 +68,7 @@ func Test_marshalPointer(t *testing.T) { m := map[string]any{"x": 1} assert.JSONEq(t, `{"x":1}`, string(marshalPointer(&m))) - assert.JSONEq(t, "{}", string(marshalPointer(nil))) + assert.Nil(t, marshalPointer(nil)) } func Test_generateID(t *testing.T) { @@ -130,3 +130,30 @@ func TestService_DownloadFile_Errors(t *testing.T) { _, err = s.DownloadFile(t.Context(), openapi.DownloadFileRequestObject{Id: "f_invalid_base64"}) require.Error(t, err) } + +func TestService_UpdateTicket_PreservesStateOnNil(t *testing.T) { + t.Parallel() + + s := newTestService(t) + + before, err := s.queries.Ticket(t.Context(), "test-ticket") + require.NoError(t, err) + + open := false + resp, err := s.UpdateTicket(t.Context(), openapi.UpdateTicketRequestObject{ + Id: "test-ticket", + Body: &openapi.TicketUpdate{ + Open: &open, + }, + }) + require.NoError(t, err) + + updated, ok := resp.(openapi.UpdateTicket200JSONResponse) + require.True(t, ok) + + assert.Equal(t, unmarshal(before.State), updated.State) + + after, err := s.queries.Ticket(t.Context(), "test-ticket") + require.NoError(t, err) + assert.Equal(t, before.State, after.State) +}