review(bp): drop fragile cast, thread CT, internalize cache reset

- IndexResponse.BattlePassLevelInfo widened to IReadOnlyDictionary<string,BattlePassLevel>?
  so any IReadOnlyDictionary impl (FrozenDictionary, wrapper, etc.) serializes correctly
  instead of silently null-ing via a failed as-cast
- LoadController.Index now takes CancellationToken ct and threads it to GetLevelCurveAsync
  instead of CancellationToken.None
- BattlePassRepository.ResetLevelCurveCache changed from public to internal; added
  InternalsVisibleTo("SVSim.UnitTests") to SVSim.Database.csproj (was absent)
This commit is contained in:
gamer147
2026-05-26 23:01:26 -04:00
parent 9bec1df52f
commit 7abdfe27cb
4 changed files with 8 additions and 5 deletions

View File

@@ -56,5 +56,5 @@ public sealed class BattlePassRepository : IBattlePassRepository
/// cache has already been populated (by an earlier test's HTTP call) must call this before
/// re-seeding so the next read fetches fresh rows.
/// </summary>
public static void ResetLevelCurveCache() => _curveCache = null;
internal static void ResetLevelCurveCache() => _curveCache = null;
}

View File

@@ -6,6 +6,10 @@
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<InternalsVisibleTo Include="SVSim.UnitTests" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="CsvHelper" Version="33.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.8" />