31f26655ba0d4d838df65ce1734f57d31bb678e2
The full-catalog regression test hardcoded "35 active packs as of 2026-05-23" but the controller filters by DateTime.UtcNow against each pack's commence/complete dates. When two packs (99047, 80047) crossed their complete_date of 2026-06-01 01:59:59 UTC, the test started failing with Expected: 35 / But was: 33 — which had been masked all along by NUnit's trx serializer OOMing on a different test. The hardcoded count conflated three things that happened to be equal on the day the test was written: packs in the seed file, packs active right now, and 35. The test's real intent (per its class docstring) is "every pack the importer ingests round-trips through /pack/info"; pinning the clock with TimeProvider would solve today's drift but re-break the moment someone regenerates the seed or retires a pack. Expected count now derives from the seed file at test time, filtered by the same predicate the controller uses (PackRepository .GetActivePacks: IsEnabled && commence <= now <= complete) via the shared ImporterBase.ParseWireDateTime parser so any date-string quirk parses identically on both sides. Spot-check on pack 99047 swapped for "any pack with non-default pack_category" — same schema-fidelity coverage (non-zero category survives JSON round trip) without pinning to an id that rotates. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Description
The SV Simulator server code, including the DCG Engine, SVSim content, and an entrypoint for the official game client.
Languages
C#
100%