From c8deb15b380287ee17e820bc7061c168281792cc Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sat, 17 Oct 2026 16:14:06 +0200 Subject: [PATCH] Tests: null-safe role filter in the gear invariant; scratch roleless design drops its role-naming behaviors The first full Yggdrasil run at 446c1325 failed these two tests (a design with null Roles; the store refusing Radiator's behaviors once its roles were cleared). Builds: yes. Co-Authored-By: Claude Opus 5.5 --- tests/Aetheria.Shared.Tests/ProductLinesCatalogTests.cs | 2 +- tests/Aetheria.Shared.Tests/ProductLinesCommandTests.cs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/Aetheria.Shared.Tests/ProductLinesCatalogTests.cs b/tests/Aetheria.Shared.Tests/ProductLinesCatalogTests.cs index 408d06826..307c5c915 100644 --- a/tests/Aetheria.Shared.Tests/ProductLinesCatalogTests.cs +++ b/tests/Aetheria.Shared.Tests/ProductLinesCatalogTests.cs @@ -58,7 +58,7 @@ public sealed class ProductLinesCatalogTests { using var cache = RestoredHullsTests.OpenCatalog(); var products = cache.GetAll().ToArray(); - var gear = cache.GetAll().Where(d => d is not WeaponItemData && d.Roles.Count > 0).ToArray(); + var gear = cache.GetAll().Where(d => d is not WeaponItemData && (d.Roles?.Count ?? 0) > 0).ToArray(); Assert.All(OneMakerGear, name => Assert.Contains(gear, d => d.Name == name)); var sold = 0; foreach (var design in gear.Where(d => !OneMakerGear.Contains(d.Name))) diff --git a/tests/Aetheria.Shared.Tests/ProductLinesCommandTests.cs b/tests/Aetheria.Shared.Tests/ProductLinesCommandTests.cs index 648813261..a036138f2 100644 --- a/tests/Aetheria.Shared.Tests/ProductLinesCommandTests.cs +++ b/tests/Aetheria.Shared.Tests/ProductLinesCommandTests.cs @@ -283,6 +283,7 @@ public sealed class GearLineCommandTests : ProductLinesCommandTests using (var cache = Open()) { var radiator = cache.GetAll().Single(g => g.Name == "Radiator"); + radiator.Behaviors.Clear(); // the store refuses a behavior that names a role the design lacks radiator.Roles.Clear(); cache.Upsert(radiator); cache.FlushAsync().Wait();