diff --git a/contracts/cultnet/interop/carrier-vectors.cs-written.json b/contracts/cultnet/interop/carrier-vectors.cs-written.json index 49f12ed0..394724cf 100644 --- a/contracts/cultnet/interop/carrier-vectors.cs-written.json +++ b/contracts/cultnet/interop/carrier-vectors.cs-written.json @@ -16,8 +16,7 @@ "projection": "header", "descending": false, "limit": null, - "cursor": null, - "hasHop": false + "cursor": null }, "shardId": null, "shardEpoch": null @@ -70,8 +69,7 @@ "projection": "document", "descending": true, "limit": 200, - "cursor": "opaque-cursor", - "hasHop": true + "cursor": "opaque-cursor" }, "shardId": "shard-1", "shardEpoch": 7 @@ -94,8 +92,7 @@ "projection": "header", "descending": false, "limit": null, - "cursor": null, - "hasHop": false + "cursor": null }, "includeSnapshot": true, "consumerRuntimeId": null, @@ -151,8 +148,7 @@ "projection": "document", "descending": true, "limit": 200, - "cursor": "opaque-cursor", - "hasHop": true + "cursor": "opaque-cursor" }, "includeSnapshot": false, "consumerRuntimeId": "consumer", diff --git a/tests/GameCult.Networking.Tests/CarrierVectorTests.cs b/tests/GameCult.Networking.Tests/CarrierVectorTests.cs index f294bc0f..8d50bb76 100644 --- a/tests/GameCult.Networking.Tests/CarrierVectorTests.cs +++ b/tests/GameCult.Networking.Tests/CarrierVectorTests.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.Json; +using System.Text.Json.Nodes; using MessagePack; using NUnit.Framework; @@ -120,10 +121,26 @@ namespace GameCult.Networking.Tests name, schemaVersion = message.SchemaVersion, messagePackBase64 = Convert.ToBase64String(bytes), - expected = JsonSerializer.SerializeToElement(message, message.GetType(), JsonOptions) + expected = WithoutDerivedMembers(JsonSerializer.SerializeToNode(message, message.GetType(), JsonOptions)) }; } + // CultNetSelection.HasHop is an [IgnoreMember] convenience, not wire; System.Text.Json would emit it. + private static JsonNode? WithoutDerivedMembers(JsonNode? node) + { + switch (node) + { + case JsonObject obj: + obj.Remove("hasHop"); + foreach (var child in obj.Select(pair => pair.Value).ToArray()) WithoutDerivedMembers(child); + break; + case JsonArray array: + foreach (var child in array) WithoutDerivedMembers(child); + break; + } + return node; + } + private static string VectorPath() { var directory = new DirectoryInfo(TestContext.CurrentContext.TestDirectory);