T-JPFC-ontological-desktop-real-backend-e2e
State: planning/proposed · Impact: medium · Complexity: medium
Give SDF (solutions/ontological/desktop) its first e2e suite: the web build against sdf-serve
in a scratch root, through the harness. It replaces the fake SDF fixture server in Determined’s
tests.
| Location | Role today |
|---|---|
solutions/ontological/desktop/src-tauri/src/bin/sdf-serve.rs | Headless bin: serves the generated entity routes (token-guarded), proxies other /api/* to the sdlc dashboard server, serves the SPA. Port from SDF_HTTP_PORT, default 16175 |
solutions/ontological/desktop/src-tauri/src/lib.rs | SDF_FLEET_ROOT roots fleet for integration tests; otherwise Fleet::new() |
solutions/ontological/desktop/src-nuxt/app/plugins/transport.client.ts | Picks the generated HTTP transport in the browser |
solutions/ontological/desktop/moon.yml (sdf) | serve runs sdlc dashboard start --port 16174 then sdf-serve. No Playwright config, no e2e task |
solutions/determined/tests/ui/serve-sdf.ts | A fake server with canned /api reads for SDF’s SPA (15094) |
solutions/ontological/products/suspenders | Separate Tauri shell over the same sdf_lib backend |
Proposed
Section titled “Proposed”A Playwright suite under solutions/ontological/desktop boots sdf-serve and the dashboard server
it proxies to, both in one scratch root, through a small SDF adapter over withScratchApp. It runs
as moon run sdf:e2e with a smoke spec per top-level view. SDF_FLEET_ROOT is removed in favour of
FLEET_ROOT. sdf-serve reports resolved paths. serve-sdf.ts and its Determined spec are deleted
or moved here.
Approach
Section titled “Approach”- Replace
SDF_FLEET_ROOTwith fleet’sFLEET_ROOT; update the integration tests. - Add a resolved-paths route to
sdf-serve, or reuse the shared helper fromT-UU4Jif it has landed. - Decide how the harness starts the dashboard server: a second process in the same root, or
sdf-servestarting it. Record the choice in the PR. - Add the Playwright config, the adapter and smoke specs; add the moon
e2etask. - Move or delete
serve-sdf.tsand its spec.
| Area | Note |
|---|---|
solutions/ontological/desktop/src-tauri/ | FLEET_ROOT, resolved paths |
solutions/ontological/desktop/src-nuxt/ | Playwright suite |
solutions/ontological/desktop/moon.yml | E2e task |
solutions/determined/tests/ui/serve-sdf.ts | Removed |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1:
moon run sdf:e2epasses in a scratch root with the isolation check on, coveringsdf-serveand the dashboard server. - AC-2:
SDF_FLEET_ROOTno longer appears in the repo. - AC-3:
solutions/determined/tests/ui/serve-sdf.tsis gone.
Out of scope
Section titled “Out of scope”- Suspenders’ own shell; it shares the backend tested here.
- Desktop smoke.
Dependencies
Section titled “Dependencies”T-NNAGforFLEET_ROOT.T-4HBCfor the harness.
Discovery context
Section titled “Discovery context”- SDF was out of scope in the first plan. It already has a headless bin and an HTTP client, so the gap is the suite, the dashboard dependency and one root override.
Depends on
Section titled “Depends on”T-NNAG, T-4HBC