fix(guild): emblem_list wire shape — add wire-shape test locking shape (b)
GuildEmblemListTask.Parse reads jsonData[i][emblem_id].ToLong(), confirming shape (b): array of objects with emblem_id. The existing List<GuildEmblemEntry> DTO was already correct. Add EmblemList_serializes_as_array_of_objects_with_emblem_id test to GuildWireShape to lock the shape in. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -13,6 +13,28 @@ public class GuildWireShape
|
||||
DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull,
|
||||
};
|
||||
|
||||
[Test]
|
||||
public void EmblemList_serializes_as_array_of_objects_with_emblem_id()
|
||||
{
|
||||
// GuildEmblemListTask.Parse() reads jsonData[i]["emblem_id"].ToLong()
|
||||
// → wire must be an array of objects, each with an "emblem_id" string field.
|
||||
var resp = new GuildEmblemListResponse
|
||||
{
|
||||
EmblemList = new() { new GuildEmblemEntry { EmblemId = 100_000_001L }, new GuildEmblemEntry { EmblemId = 100_000_002L } }
|
||||
};
|
||||
var json = JsonSerializer.Serialize(resp, Opts);
|
||||
using var doc = JsonDocument.Parse(json);
|
||||
var arr = doc.RootElement.GetProperty("guild_emblem_list");
|
||||
|
||||
Assert.That(arr.ValueKind, Is.EqualTo(JsonValueKind.Array));
|
||||
Assert.That(arr.GetArrayLength(), Is.EqualTo(2));
|
||||
|
||||
var first = arr[0];
|
||||
Assert.That(first.ValueKind, Is.EqualTo(JsonValueKind.Object));
|
||||
Assert.That(first.GetProperty("emblem_id").ValueKind, Is.EqualTo(JsonValueKind.String));
|
||||
Assert.That(first.GetProperty("emblem_id").GetString(), Is.EqualTo("100000001"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GuildInfo_non_joined_serializes_to_prod_shape()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user