From fc992f5abe6943a11cfb909dd4fba104aee097ff Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sun, 18 Oct 2026 18:40:09 +0200 Subject: [PATCH] Boss tests store Loadouts through the cache batch at Loadouts.KeyOf (the cache has no keyed Upsert) Co-Authored-By: Claude Sonnet 5.5 --- .../LoadoutCommitCommandTests.cs | 2 +- tests/Aetheria.Shared.Tests/RunGoalTests.cs | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/tests/Aetheria.Shared.Tests/LoadoutCommitCommandTests.cs b/tests/Aetheria.Shared.Tests/LoadoutCommitCommandTests.cs index 5158b0983..45f64e1e0 100644 --- a/tests/Aetheria.Shared.Tests/LoadoutCommitCommandTests.cs +++ b/tests/Aetheria.Shared.Tests/LoadoutCommitCommandTests.cs @@ -139,7 +139,7 @@ public sealed class LoadoutCommitCommandTests : IDisposable case "mod-design": var mod = Copy(cache.GetAll().Single(d => d.Name == fit.designName)); mod.Name = "Mod gadget"; - cache.Upsert(mod.GetType(), mod, new CultRecordKey("mod-ship:mod.gadget")); + Assert.True(cache.Commit(batch => batch.Upsert(mod.GetType(), mod, new CultRecordKey("mod-ship:mod.gadget")))); break; } cache.FlushAsync().Wait(); diff --git a/tests/Aetheria.Shared.Tests/RunGoalTests.cs b/tests/Aetheria.Shared.Tests/RunGoalTests.cs index ccaea485d..d60261a56 100644 --- a/tests/Aetheria.Shared.Tests/RunGoalTests.cs +++ b/tests/Aetheria.Shared.Tests/RunGoalTests.cs @@ -94,10 +94,14 @@ public sealed partial class RunStartTests if (openIf != null) fit.Slots.First(slot => openIf(_cache.Get(slot.Design))).Product = default; fit.Hull = _cache.RefOf(boss); fit.HullProduct = _cache.RefOf(_cache.GetAll().Single(product => _cache.Get(product.Design) == boss && _cache.Get(product.Manufacturer) == maker)); - _cache.Upsert(typeof(Loadout), fit, Loadouts.KeyOf(name)); + StoreLoadout(fit); return fit; } + // A Loadout record at Loadouts.KeyOf(Name), the key Loadouts.Commit writes it under. + private void StoreLoadout(Loadout loadout) => + Assert.True(_cache.Commit(batch => batch.Upsert(typeof(Loadout), loadout, Loadouts.KeyOf(loadout.Name)))); + // The demo's antagonist gets a Boss hull and its Loadout: the shipped catalog has neither. private HullData GiveAntagonistABoss(Galaxy galaxy) { @@ -147,11 +151,11 @@ public sealed partial class RunStartTests MakeBossLoadout(c, antagonist, "Aab loadout of Boss C"); MakeBossLoadout(a, antagonist, "Zz second loadout of Boss A"); MakeBossLoadout(a, antagonist, "Zz first loadout of Boss A"); - _cache.Upsert(typeof(Loadout), new Loadout + StoreLoadout(new Loadout { Name = "Aac loadout of the decoy", Hull = _cache.RefOf(priciest), HullProduct = new CultRecordRef(decoyRef.Key) - }, Loadouts.KeyOf("Aac loadout of the decoy")); + }); Assert.Equal(new[] { "Boss A", "Boss B", "Boss C" }, LoadoutGenerator.BossHullsOf(_cache, antagonist).Select(entry => entry.hull.Name)); var loadout = Loadouts.BossOf(_cache, antagonist, out var refusal); @@ -535,7 +539,7 @@ public sealed partial class RunStartTests var hull = MakeBoss("Boss A", 100, antagonist); var loadout = MakeBossLoadout(hull, antagonist, "Unfittable loadout"); loadout.Slots[0].Position = new int2(999, 999); - _cache.Upsert(typeof(Loadout), loadout, Loadouts.KeyOf(loadout.Name)); + StoreLoadout(loadout); Assert.Equal("Unfittable loadout", Loadouts.BossOf(_cache, antagonist, out _).Name); var log = new List();