yavsc/src/Yavsc.Org.Tests
Paul Schneider e940a241c9 ClientController: split LoadClientAsync into per-collection subqueries
LoadClientAsync chains 9 .Include() calls on dbContext.Clients.
On Postgres (and InMemory for some IdentityServer8 nav types), the
resulting cartesian product trips the query shaper with
IndexOutOfRangeException at IncludeCollection materialisation time.
Bug reproduces in production on the Blog admin pages that load a
Client by id.

AsSplitQuery() rewrites the load as 9 separate SELECTs joined by
client id, which sidesteps the cartesian explosion and any shaper
ambiguity between Claims/Properties/ClientSecrets (which share
Type/Value column names across some IdentityServer8 versions).

Tests:
- EditRedirectUris_GET_after_add_lists_both_uris: end-to-end
  reproducer that adds a second RedirectUri via POST then re-GETs
  the editor. Guards the fix on the integration path.
- Bisect_*_alone: nine unit tests that exercise the same
  .SingleOrDefaultAsync(c => c.Id == id).Include(nav) on the
  InMemory provider, one nav at a time. Pinpointed three
  problematic navs (RedirectUris, AllowedScopes, AllowedGrantTypes)
  on InMemory; kept as a regression net for any future shaper
  regressions on the InMemory provider (not the Postgres path).
2026-07-12 01:15:02 +01:00
..
Controllers ClientController: split LoadClientAsync into per-collection subqueries 2026-07-12 01:15:02 +01:00
Fakes Introduce Yavsc.Interfaces.ISmtpClient and a recording test fake 2026-06-22 02:09:02 +01:00
Mandatory refactoring 2026-06-19 19:59:15 +01:00
NonRegression Blog: add test guarding the display-template fix + document test architecture 2026-07-11 19:59:03 +01:00
Resources Relocate test project: test/yavscTests -> src/Yavsc.Org.Tests 2026-06-19 17:52:54 +01:00
Smoke tests: smoke tests for Account and Blog BCs 2026-06-27 21:03:16 +01:00
appsettings.json Relocate test project: test/yavscTests -> src/Yavsc.Org.Tests 2026-06-19 17:52:54 +01:00
ComputeKidTests.cs test(yavsc.org): cover the kid derivation in ComputeKid 2026-07-09 20:28:58 +01:00
Directory.Packages.props refactor: extract WebHostFixture + TestAuthPolicyProvider to shared lib 2026-07-06 21:33:57 +01:00
DumpHtml.cs refactoring 2026-06-19 19:59:15 +01:00
EstimateSignatureFileHelperTests.cs feat(api): POST /api/bill/estimate/{id}/sign — JSON signature capture 2026-07-04 15:47:55 +01:00
StaticAssetsPathsTests.cs fix(client-controller): single constructor with IHtmlLocalizer 2026-06-21 21:14:20 +01:00
test.runsettings fix(client-controller): single constructor with IHtmlLocalizer 2026-06-21 21:14:20 +01:00
TestUserMiddleware.cs refactor: extract WebHostFixture + TestAuthPolicyProvider to shared lib 2026-07-06 21:33:57 +01:00
TestUserStartupFilter.cs test(client): refactor InjectTestUser as a real IMiddleware 2026-06-21 21:24:44 +01:00
TestWebApplicationFactory.cs Revert "repoduces the bug" 2026-07-11 22:17:58 +01:00
WebServerFixture.cs Revert "repoduces the bug" 2026-07-11 22:17:58 +01:00
xunit.runner.json Relocate test project: test/yavscTests -> src/Yavsc.Org.Tests 2026-06-19 17:52:54 +01:00
Yavsc.Org.Tests.csproj Revert "repoduces the bug" 2026-07-11 22:17:58 +01:00