Task #242 finish — UnsTab drag-drop interactive E2E tests un-skip + pass #201

Merged
dohertj2 merged 1 commits from task-242-finish-interactive-tests into v2 2026-04-21 02:33:28 -04:00
Owner

Closes the scope-out from PR #200. Two co-operating harness bugs were masking the interactive circuit: (1) UseStaticWebAssets was never called so the staticwebassets manifest had no composed file provider → blazor.web.js served zero bytes; (2) InMemory DB name was re-rolled on every DbContext construction so seed + circuit + assertion scopes had isolated stores → ClusterDetail rendered <p>Loading...</p> forever.

Fix is two small AdminWebAppFactory changes: ApplicationName + UseStaticWebAssets, plus capturing the dbName string. Both interactive tests now un-skip.

Test plan

  • Full E2E suite: 3 passed, 0 skipped, 0 failed (was 1 passed, 2 skipped).
Closes the scope-out from PR #200. Two co-operating harness bugs were masking the interactive circuit: (1) UseStaticWebAssets was never called so the staticwebassets manifest had no composed file provider → blazor.web.js served zero bytes; (2) InMemory DB name was re-rolled on every DbContext construction so seed + circuit + assertion scopes had isolated stores → ClusterDetail rendered `<p>Loading...</p>` forever. Fix is two small AdminWebAppFactory changes: ApplicationName + UseStaticWebAssets, plus capturing the dbName string. Both interactive tests now un-skip. ## Test plan - Full E2E suite: 3 passed, 0 skipped, 0 failed (was 1 passed, 2 skipped).
dohertj2 added 1 commit 2026-04-21 02:33:18 -04:00
Closes the scope-out left by the #242 partial. Root cause of the blazor.web.js
zero-byte response turned out to be two co-operating harness bugs:

1) The static-asset manifest was discoverable but the runtime needs
   UseStaticWebAssets to be called so the StaticWebAssetsLoader composes a
   PhysicalFileProvider per ContentRoot declared in
   staticwebassets.development.json (Admin source wwwroot + obj/compressed +
   the framework NuGet cache). Without that call MapStaticAssets resolves the
   route but has no ContentRoot map — so every asset serves zero bytes.

2) The EF InMemory DB name was being re-generated on every DbContext
   construction (the lambda body called Guid.NewGuid() inline), so the seed
   scope, Blazor circuit scope, and test-assertion scopes all got separate
   stores. Capturing the name as a stable string per fixture instance fixes
   the "cluster not found → page stays at Loading…" symptom.

Fixes:
  - AdminWebAppFactory:
      * ApplicationName set on WebApplicationOptions so UseStaticWebAssets
        discovers the manifest.
      * builder.WebHost.UseStaticWebAssets() wired explicitly (matches what
        `dotnet run` does via MSBuild targets).
      * dbName captured once per fixture; the options lambda reads the
        captured string instead of re-rolling a Guid.
  - UnsTabDragDropE2ETests: the two [Fact(Skip=...)] tests un-skip.

Suite state: 3 passed, 0 skipped, 0 failed. Task #242 closed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
dohertj2 merged commit ae07fea630 into v2 2026-04-21 02:33:28 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/lmxopcua#201