ci(frontend): execute node --test suite in forgejo actions CI workflow #239

Closed
opened 2026-10-03 08:11:12 +00:00 by gabogg · 2 comments
Owner

Goal

Add execution of the 242 frontend unit tests (tests/frontend/*.test.js) to the Forgejo Actions continuous integration workflow (.forgejo/workflows/ci.yml).

Background & Research Findings

From the testing research in docs/research/test-performance-and-agent-workflows.md (ref #217):

  • There are 12 frontend test suites in tests/frontend/*.test.js covering 242 assertions across navigation, deck views, calibration controls, and telemetry modules.
  • They run via native node --test in ~5.7s with zero external dependencies.
  • Currently, neither .pre-commit-config.yaml nor .forgejo/workflows/ci.yml runs these tests.
  • Regressions in frontend reactive logic can pass CI unnoticed if only pytest is executed.

Requirements

  1. Update .forgejo/workflows/ci.yml to include a job step running node --test tests/frontend/*.test.js (or npm test if defined in package.json).
  2. Verify node version compatibility in the CI container environment.
  3. Ensure CI reports any frontend test failures alongside Python test failures.
## Goal Add execution of the 242 frontend unit tests (`tests/frontend/*.test.js`) to the Forgejo Actions continuous integration workflow (`.forgejo/workflows/ci.yml`). ## Background & Research Findings From the testing research in `docs/research/test-performance-and-agent-workflows.md` (ref #217): - There are 12 frontend test suites in `tests/frontend/*.test.js` covering 242 assertions across navigation, deck views, calibration controls, and telemetry modules. - They run via native `node --test` in ~5.7s with zero external dependencies. - Currently, neither `.pre-commit-config.yaml` nor `.forgejo/workflows/ci.yml` runs these tests. - Regressions in frontend reactive logic can pass CI unnoticed if only pytest is executed. ## Requirements 1. Update `.forgejo/workflows/ci.yml` to include a job step running `node --test tests/frontend/*.test.js` (or `npm test` if defined in `package.json`). 2. Verify node version compatibility in the CI container environment. 3. Ensure CI reports any frontend test failures alongside Python test failures.
Author
Owner

This was generated by AI during triage.

Triage: ready-for-agent → needs-triage (premise looks already implemented)

The frontend node --test suite already runs in CI and pre-commit, through pytest. tests/test_frontend_modules.py::test_telemetry_frontend_modules globs tests/frontend/*.test.js and runs node --test on them. Its docstring states the invariant: "running pytest acts as the single 100% green verification gate for all backend and frontend units". The #218 findings document lists that test among the slowest (5.20 s) but still concludes the frontend suite isn't wired anywhere, because it only grepped ci.yml and .pre-commit-config.yaml for node.

Implementing this issue as written would run the frontend suite twice per CI run.

Recommendation: close as already implemented, unless the maintainer wants the frontend suite as a separate CI step (separate reporting, or running without the Python environment). In that case, drop the pytest wrapper in the same change, so the suite still runs exactly once.

> *This was generated by AI during triage.* ## Triage: `ready-for-agent` → `needs-triage` (premise looks already implemented) The frontend `node --test` suite **already runs in CI and pre-commit, through pytest**. `tests/test_frontend_modules.py::test_telemetry_frontend_modules` globs `tests/frontend/*.test.js` and runs `node --test` on them. Its docstring states the invariant: "running `pytest` acts as the single 100% green verification gate for all backend and frontend units". The #218 findings document lists that test among the slowest (5.20 s) but still concludes the frontend suite isn't wired anywhere, because it only grepped `ci.yml` and `.pre-commit-config.yaml` for `node`. Implementing this issue as written would run the frontend suite twice per CI run. **Recommendation:** close as already implemented, unless the maintainer wants the frontend suite as a *separate* CI step (separate reporting, or running without the Python environment). In that case, drop the pytest wrapper in the same change, so the suite still runs exactly once.
Author
Owner

Closing as redundant: pytest already runs node --test through tests/test_frontend_modules.py::test_telemetry_frontend_modules, so the frontend tests are already in the suite and the pre-commit hook. The finding in PR #218 that produced this issue was wrong; that is pass 1 finding 1 on #218.

Closing as redundant: pytest already runs `node --test` through `tests/test_frontend_modules.py::test_telemetry_frontend_modules`, so the frontend tests are already in the suite and the pre-commit hook. The finding in PR #218 that produced this issue was wrong; that is pass 1 finding 1 on #218.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gabogg/hikcentral#239
No description provided.