From 35607515e41ed49f0cfa65262267230106e3cfdb Mon Sep 17 00:00:00 2001 From: Glen Date: Wed, 3 Jun 2026 09:57:41 +0200 Subject: [PATCH] Serialize sbyte values as JSON numbers in StrawberryShake --- .../Client/src/Core/Json/JsonSerializationHelper.cs | 4 ++++ .../Json/JsonOperationRequestSerializerTests.cs | 1 + .../test/Core.Tests/Json/JsonSerializationHelperTests.cs | 8 ++++++++ ...SerializerTests.Serialize_Request_With_Extensions.snap | 1 + 4 files changed, 14 insertions(+) diff --git a/src/StrawberryShake/Client/src/Core/Json/JsonSerializationHelper.cs b/src/StrawberryShake/Client/src/Core/Json/JsonSerializationHelper.cs index 44956800f23..73db9d9f490 100644 --- a/src/StrawberryShake/Client/src/Core/Json/JsonSerializationHelper.cs +++ b/src/StrawberryShake/Client/src/Core/Json/JsonSerializationHelper.cs @@ -46,6 +46,10 @@ public static void WriteValue(object? value, Utf8JsonWriter writer) writer.WriteStringValue(s); break; + case sbyte sb: + writer.WriteNumberValue(sb); + break; + case byte b: writer.WriteNumberValue(b); break; diff --git a/src/StrawberryShake/Client/test/Core.Tests/Json/JsonOperationRequestSerializerTests.cs b/src/StrawberryShake/Client/test/Core.Tests/Json/JsonOperationRequestSerializerTests.cs index d36ca78c9d6..12ce4d3d894 100644 --- a/src/StrawberryShake/Client/test/Core.Tests/Json/JsonOperationRequestSerializerTests.cs +++ b/src/StrawberryShake/Client/test/Core.Tests/Json/JsonOperationRequestSerializerTests.cs @@ -98,6 +98,7 @@ public void Serialize_Request_With_Extensions() operationRequest.Extensions.Add(nameof(String), "def"); operationRequest.Extensions.Add("null", null); + operationRequest.Extensions.Add(nameof(SByte), (sbyte)123); operationRequest.Extensions.Add(nameof(Byte), (byte)123); operationRequest.Extensions.Add(nameof(Int16), (short)123); operationRequest.Extensions.Add(nameof(UInt16), (ushort)123); diff --git a/src/StrawberryShake/Client/test/Core.Tests/Json/JsonSerializationHelperTests.cs b/src/StrawberryShake/Client/test/Core.Tests/Json/JsonSerializationHelperTests.cs index de4773491a8..8c2b3235f36 100644 --- a/src/StrawberryShake/Client/test/Core.Tests/Json/JsonSerializationHelperTests.cs +++ b/src/StrawberryShake/Client/test/Core.Tests/Json/JsonSerializationHelperTests.cs @@ -15,6 +15,14 @@ public void ReadScalarList() item => Assert.Equal(4, Assert.IsType(item))); } + [Fact] + public void WriteSByteAsNumber() + { + var json = JsonSerializationHelper.WriteValue((sbyte)2); + + Assert.Equal("2", json); + } + [Fact] public void ReadNestedScalarList() { diff --git a/src/StrawberryShake/Client/test/Core.Tests/Json/__snapshots__/JsonOperationRequestSerializerTests.Serialize_Request_With_Extensions.snap b/src/StrawberryShake/Client/test/Core.Tests/Json/__snapshots__/JsonOperationRequestSerializerTests.Serialize_Request_With_Extensions.snap index 27e901a5ac3..9aaccfeff21 100644 --- a/src/StrawberryShake/Client/test/Core.Tests/Json/__snapshots__/JsonOperationRequestSerializerTests.Serialize_Request_With_Extensions.snap +++ b/src/StrawberryShake/Client/test/Core.Tests/Json/__snapshots__/JsonOperationRequestSerializerTests.Serialize_Request_With_Extensions.snap @@ -4,6 +4,7 @@ "extensions": { "String": "def", "null": null, + "SByte": 123, "Byte": 123, "Int16": 123, "UInt16": 123,