Skip to content

[FLINK-40117][runtime-web] Extend Vitest smoke-test coverage to more web-dashboard views#28742

Open
spuru9 wants to merge 1 commit into
apache:masterfrom
spuru9:FLINK-40117
Open

[FLINK-40117][runtime-web] Extend Vitest smoke-test coverage to more web-dashboard views#28742
spuru9 wants to merge 1 commit into
apache:masterfrom
spuru9:FLINK-40117

Conversation

@spuru9

@spuru9 spuru9 commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

What is the purpose of the change

FLINK-40035 added a Vitest test setup with smoke tests for three web-dashboard views. This PR extends that baseline coverage to the remaining high-traffic pages, so more of the dashboard is guarded against regressions during Angular / ng-zorro upgrades. Tests run in jsdom through the existing @angular/build:unit-test builder, so no browser is required.

Brief change log

  • Add smoke specs for the Job views: overview, checkpoints, timeline, data skew, rescales and configuration
  • Add smoke specs for Task Manager metrics and logs, Job Manager metrics, and the Application (cluster) overview
  • Each spec mocks the view's services through TestBed and asserts that the component loads its data and populates its key bindings. Chart- and graph-backed views (timeline, job overview) drive the component logic directly and stub the rendering layer, which relies on browser APIs jsdom does not implement
  • Add a no-op Web Worker stub to src/test-setup.ts: @antv/g2 creates a worker at module load for its label layout, and Worker is undefined in jsdom

Verifying this change

This change adds tests and can be verified as follows:

  • cd flink-runtime-web/web-dashboard && npm ci
  • npm run test:ci — 13 test files / 29 specs pass (the 10 new spec files plus the 3 from FLINK-40035)
  • npm run lint passes

Does this pull request potentially affect one of the following parts:

  • Dependencies (does it add or upgrade a dependency): no
  • The public API, i.e., is any changed class annotated with @Public(Evolving): no
  • The serializers: no
  • The runtime per-record code paths (performance sensitive): no
  • Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
  • The S3 file system connector: no

Documentation

  • Does this pull request introduce a new feature? no
  • If yes, how is the feature documented? not applicable

Was generative AI tooling used to co-author this PR?
  • Yes (Claude Code)

Generated-by: Claude Code (claude-opus-4-8)

@flinkbot

flinkbot commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

CI report:

Bot commands The @flinkbot bot supports the following commands:
  • @flinkbot run azure re-run the last Azure build

@spuru9

spuru9 commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

@MartijnVisser Can you take a look. Have added additional tests to cover most of the component tests.
Let me know if I should break the PR to smaller onces.

…web-dashboard views

FLINK-40035 introduced a Vitest setup with smoke tests for three views.
Extend that coverage to the remaining high-traffic pages so more of the
dashboard is guarded against breakage during Angular/ng-zorro upgrades.

Add smoke specs for:
- Job: overview, checkpoints, timeline, data skew, rescales, configuration
- Task Manager: metrics, logs
- Job Manager: metrics
- Application (cluster) overview

Each spec mocks the view's services through TestBed and asserts that the
component loads its data and populates its key bindings. Chart- and
graph-backed views (timeline, job overview) drive the component logic
directly and stub the rendering layer, which relies on browser APIs jsdom
does not implement.

Also add a no-op Web Worker stub to src/test-setup.ts: @antv/g2 creates a
worker at module load for its label layout, and Worker is undefined in jsdom.

Generated-by: Claude Code (claude-opus-4-8)
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