The GitHub Actions job "Required Checks" on texera.git/gh-readonly-queue/main/pr-7470-dafccec7990fb3aec6b2b07b919051eccc115176 has succeeded. Run started by GitHub user mengw15 (triggered by mengw15).
Head commit for run: ab4d25eb16fdd4b1b4ac74a890ea3eaba62b5e0a / Meng Wang <[email protected]> test(frontend): cover HuggingFaceImageUploadComponent template preview and error states (#7470) ### What changes were proposed in this PR? Extends `HuggingFaceImageUploadComponent`'s spec to render the template. The class file is already at 100%, but the existing tests only drive the handlers directly, so the preview panel never rendered and `hugging-face-image-upload.component.html` sat at ~32%. 7 added tests render the component and assert on the DOM: - No preview panel while no image is selected. - The preview `<img>` is bound to the stored data URL (`src`, `alt`). - The panel's label falls back to `"Uploaded image"` when no file name is known, and shows the selected file name once one is. - The **Clear** button clears the control and removes the panel. - The error block renders the current `errorMessage`. - A `change` event with no file selected leaves the control untouched — this also covers the file input's `(change)` binding while staying fully synchronous (the guard returns before any `FileReader`/canvas work). This lifts the template from **~32% to 100% statements**. Branches land at 50%, which is the maximum reachable — see below. **The `"Selected image"` fallback is unreachable.** The issue asks for a test where `displayFileName` is empty so `{{ displayFileName || "Selected image" }}` renders the fallback, but that state cannot occur: - the panel only renders when `previewSrc` is truthy, which requires `hasImage`; - `displayFileName` returns `fileName` when set, otherwise `"Uploaded image"` when `hasImage` — so with `hasImage` true it is never empty. So whenever the fallback could be shown, the left-hand side is already truthy. I did not force it with a fabricated getter override, since that would assert a state the component cannot reach. If desired, the template could simply become `{{ displayFileName }}` in a follow-up — left out here because this change is test-only. **Determinism:** no fake timers and no async image pipeline in the added tests (the no-file `change` path returns synchronously); no layout/geometry assertions. No production code was changed. ### Any related issues, documentation, discussions? Closes #7467 ### How was this PR tested? Extended unit tests, run locally in `frontend/`: ``` ng test --watch=false --include src/app/workspace/component/hugging-face-image-upload/hugging-face-image-upload.component.spec.ts # Test Files 1 passed (1) | Tests 42 passed (42) — 3 consecutive runs, 0 flakes # hugging-face-image-upload.component.html: ~32% -> 100% statements prettier --write <spec> # formatted eslint <spec> # clean ``` The failure path was verified by deliberately breaking a new assertion and confirming the suite exits non-zero. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Code (Opus 4.8 [1M context]) Report URL: https://github.com/apache/texera/actions/runs/31341732035 With regards, GitHub Actions via GitBox
