Skip to content

test(web): add Stovepipe coverage and align E2E suites - #838

Merged
mnoah1 merged 1 commit into
mnoah1/stovepipe-webfrom
mnoah1/stovepipe-web-e2e
Oct 14, 2026
Merged

mnoah1 merged 1 commit into
mnoah1/stovepipe-webfrom
mnoah1/stovepipe-web-e2e

Conversation

@mnoah1

@mnoah1 mnoah1 commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Why?

The new Stovepipe UI needs browser coverage against a real backend, in addition to its unit and component tests. Align both services' browser suites under web/test/e2e/<domain> so they follow the repository layout and reuse stack setup helpers.

What?

  • Move the existing SubmitQueue browser suite into web/test/e2e/submitqueue, preserving its browser spec and Compose overlay.
  • Add web/test/e2e/stovepipe with real ingestion and seeded pagination data. Cover queue navigation and cursors, request-ID links and reloads, backend status summaries above history, refresh, empty queues, and accessibility. A summary with a newer state than the history verifies that the UI does not reconstruct status from events.
  • Share image loading, schema application, and port lookup helpers. Both browser runners use the Bazel-pinned Compose executable from chore(docker): supply docker compose via Bazel #830.
  • Update Bazel targets and visibility, workspace entries, runner commands, and test documentation for the new layout. Tests emit queue and request-page screenshots as Bazel test outputs.

Test Plan

Latest validation passed all 32 targets, including both services' real-stack browser suites:

./tool/bazel test //web:check //web/test/e2e/submitqueue:web_test //web/test/e2e/stovepipe:web_test --test_output=errors

Repository formatting, lint, module tidy, and Gazelle checks also passed. Browser tests require a running Docker daemon; Bazel supplies Compose and the browser.

Stack

  1. refactor(web): extract shared UI and host packages #842 — shared-package refactoring
  2. feat(web): add Stovepipe request status UI #837 — Stovepipe frontend
  3. test(web): add Stovepipe coverage and align E2E suites #838 — browser coverage and E2E organization
  4. refactor(web): let hosts handle request logging #844 — host logging integration

@mnoah1
mnoah1 added this pull request to stack #839 October 12, 2026 14:22
@mnoah1
mnoah1 force-pushed the mnoah1/stovepipe-web-e2e branch from 95f5825 to 99bb189 Compare October 12, 2026 14:51
@mnoah1
mnoah1 force-pushed the mnoah1/stovepipe-web-e2e branch from 99bb189 to 2df95bd Compare October 12, 2026 15:00
@mnoah1
mnoah1 force-pushed the mnoah1/stovepipe-web-e2e branch from 2df95bd to 9e37974 Compare October 12, 2026 15:13
@mnoah1
mnoah1 removed this pull request from stack #839 October 12, 2026 15:29
@mnoah1
mnoah1 added this pull request to stack #843 October 12, 2026 15:29
@mnoah1
mnoah1 force-pushed the mnoah1/stovepipe-web-e2e branch from 9e37974 to 96605a6 Compare October 12, 2026 15:44
@mnoah1
mnoah1 marked this pull request as ready for review October 12, 2026 15:50
@mnoah1
mnoah1 requested review from a team, behinddwalls and sbalabanov as code owners October 12, 2026 15:50
mnoah1 added a commit that referenced this pull request Oct 12, 2026
Send web logs through per-request callbacks so hosts can use their own logging context. Keep Pino in the reference hosts, preserve original errors and structured fields, and isolate callback failures from page results.

Builds on the web E2E layer in #838.
@mnoah1
mnoah1 removed this pull request from stack #843 October 12, 2026 20:08
@mnoah1
mnoah1 added this pull request to stack #847 October 12, 2026 20:08
@mnoah1 mnoah1 changed the title test(web): add Stovepipe coverage and align E2E suites [DRAFT/WIP] test(web): add Stovepipe coverage and align E2E suites Oct 12, 2026
@mnoah1
mnoah1 marked this pull request as draft October 12, 2026 22:05
mnoah1 added a commit that referenced this pull request Oct 13, 2026
Send web logs through per-request callbacks so hosts can use their own logging context. Keep Pino in the reference hosts, preserve original errors and structured fields, and isolate callback failures from page results.

Builds on the web E2E layer in #838.
@mnoah1
mnoah1 force-pushed the mnoah1/stovepipe-web-e2e branch from 96605a6 to 7f394f9 Compare October 13, 2026 13:41
mnoah1 added a commit that referenced this pull request Oct 13, 2026
Send web logs through per-request callbacks so hosts can use their own logging context. Keep Pino in the reference hosts, preserve original errors and structured fields, and isolate callback failures from page results.

Builds on the web E2E layer in #838.
@mnoah1
mnoah1 force-pushed the mnoah1/stovepipe-web-e2e branch from 7f394f9 to c1ce012 Compare October 13, 2026 17:10
mnoah1 added a commit that referenced this pull request Oct 13, 2026
Send web logs through per-request callbacks so hosts can use their own logging context. Keep Pino in the reference hosts, preserve original errors and structured fields, and isolate callback failures from page results.

Builds on the web E2E layer in #838.
@mnoah1
mnoah1 force-pushed the mnoah1/stovepipe-web-e2e branch from c1ce012 to 0469e2e Compare October 13, 2026 17:24
@mnoah1 mnoah1 changed the title [DRAFT/WIP] test(web): add Stovepipe coverage and align E2E suites test(web): add Stovepipe coverage and align E2E suites Oct 13, 2026
@mnoah1
mnoah1 marked this pull request as ready for review October 13, 2026 17:38
mnoah1 added a commit that referenced this pull request Oct 13, 2026
Send web logs through per-request callbacks so hosts can use their own logging context. Keep Pino in the reference hosts, preserve original errors and structured fields, and isolate callback failures from page results.

Builds on the web E2E layer in #838.
@mnoah1
mnoah1 force-pushed the mnoah1/stovepipe-web-e2e branch from 0469e2e to 9786a7b Compare October 13, 2026 19:31
@mnoah1
mnoah1 added this pull request to the merge queue Oct 14, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue because a pull request earlier in the stack was removed Oct 14, 2026
mnoah1 added a commit that referenced this pull request Oct 14, 2026
Send web logs through per-request callbacks so hosts can use their own logging context. Keep Pino in the reference hosts, preserve original errors and structured fields, and isolate callback failures from page results.

Builds on the web E2E layer in #838.
@mnoah1
mnoah1 force-pushed the mnoah1/stovepipe-web-e2e branch from 9786a7b to e87cd11 Compare October 14, 2026 15:21
@mnoah1
mnoah1 added this pull request to the merge queue Oct 14, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue because a pull request earlier in the stack was removed Oct 14, 2026
@mnoah1
mnoah1 added this pull request to the merge queue Oct 14, 2026
Merged via the queue into main with commit 2e78f60 Oct 14, 2026
21 checks passed
@mnoah1
mnoah1 deleted the mnoah1/stovepipe-web-e2e branch October 14, 2026 16:00
DivyanshGarg380 pushed a commit to DivyanshGarg380/submitqueue that referenced this pull request Oct 14, 2026
## Why?

Much of the structure around the new SubmitQueue UI is reusable for a
Stovepipe UI as well. This PR pulls out common components into shared
packages that can be used across both services to minimize duplication.

## What?

- Move shared React navigation, polling, timestamp formatting,
path-segment helpers, and styles into `web/platform`
(`@submitqueue/web-platform`).
- Move common Basic auth, Node gRPC transport, Next.js navigation, and
readiness checks into `web/service/shared`
(`@submitqueue/web-service-shared`). Service-specific configuration
stays in the host.
- Update SubmitQueue to import the shared implementations directly,
preserving its public exports and existing behavior.
- Share the Bazel library build, packaging, and lint setup, and update
workspace and package-consumer checks.

## Test Plan

Shared-package checks and the existing SubmitQueue browser suite passed;
the latest rebased stack passed all 32 targets with `./tool/bazel test
//web:check //web/test/e2e/submitqueue:web_test
//web/test/e2e/stovepipe:web_test --test_output=errors`. To validate
this PR independently:

```sh
./tool/bazel test //web:check //web/test/e2e:web_test --test_output=errors
```

Repository formatting, lint, module tidy, and Gazelle checks also
passed.

## Revert Plan

Revert dependent PRs uber#844, uber#838, and uber#837 first if merged, then revert
this PR to restore the original SubmitQueue package layout.

## Stack

1. uber#842 — shared-package refactoring 
2. uber#837 — Stovepipe frontend 
3. uber#838 — browser coverage and E2E organization 
4. uber#844 — host logging integration
DivyanshGarg380 pushed a commit to DivyanshGarg380/submitqueue that referenced this pull request Oct 14, 2026
## Why?

Stovepipe exposes request lists, status summaries, and history through
RPCs, but has no browser view for inspecting them. Add a basic UI
mirroring the same structure as the SubmitQueue UI: a core component
that can be deployed internally via FusionJS that includes the pages /
contents, and a NextJS wrapper for external use.



https://github.com/user-attachments/assets/0bdf1fd9-36ea-4bea-b540-826d8047e6a2



## What?

- Add `web/stovepipe`, a React library with a request list for each
configured queue and a request page showing the backend status summary
followed by request history.
- Load the summary and events together through `GetRequestHistoryByID`.
Request IDs link to `/<queue>/request/<id>`; change URIs remain
displayed as text. Display the backend summary directly, including
state, change and baseline URIs, timestamps, and outcome reason.
- Provide manual refresh and optional polling, retaining successful
sections when a refresh fails on the same page.
- Add a thin Next.js host under `web/service/stovepipe` for
authentication, configuration, server-side RPC transport, and logging,
plus TypeScript bindings for the existing API and Bazel build/image
targets.
- Add the local Compose overlay and `make local-stovepipe-web-start`,
along with library, component, host, and package tests.

## Test Plan

Latest validation passed all 32 targets with `./tool/bazel test
//web:check //web/test/e2e/submitqueue:web_test
//web/test/e2e/stovepipe:web_test --test_output=errors`, including
real-backend coverage of request-ID navigation, status summaries,
history, and refresh.

Frontend and package checks passed as part of the validation above,
which also built the Stovepipe image. On this PR:

```sh
./tool/bazel test //web:check --test_output=errors
./tool/bazel build //web/service/stovepipe:image
```

For manual review, run `make local-stovepipe-web-start`, open the
printed URL, and sign in with username `test` and password `test` (or
the configured `STOVEPIPE_WEB_TOKEN`).

## Stack

1. uber#842 — shared-package refactoring
2. uber#837 — Stovepipe frontend 
3. uber#838 — browser coverage and E2E organization
4. uber#844 — host logging integration

This PR's diff contains the Stovepipe additions; review the preparatory
refactoring in uber#842. Merge in this order.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants