The GitHub Actions job "Required Checks" on texera.git/gh-readonly-queue/main/pr-7957-0af18e0b013b64650bf34ffd5dcf3ae1cc2637d6 has succeeded. Run started by GitHub user aglinxinyuan (triggered by aglinxinyuan).
Head commit for run: d7dc698c54ca18e99cb89c98d2e0d3ccc537a875 / Xinyuan Lin <[email protected]> test(frontend): cover the dataset detail component's upload-progress paths (#7957) ### What changes were proposed in this PR? `dataset-detail.component.spec.ts` goes from 195 tests to 203, closing the residue left after an earlier pass — mostly the upload-progress paths. Measured from raw lcov counters, same spec filter on both sides, `rm -rf coverage` between runs: | Counter | Before | After | |---|---|---| | Lines hit | 412/414 | **414/414 = 100%** | | Branch arms | 193/203 = 95.1% | **200/203 = 98.5%** (10 missed → 3) | | Functions | 120/120 | 120/120 | | Codecov's metric | 411/422 = 97.4% | **420/422 = 99.5%** | Functions were already 120/120 with zero `FNDA:0` records both before and after — worth stating, because twice in this campaign a file sat at high line coverage with functions uncovered and a binding whose handler the spec called directly stayed `FNDA:0` while looking covered. Not the case here. ### Verification 16 mutations, **all 16 killed**, each named in the mutation table with its exact failure message. The first draft reported no survivors. **Seven mutants survived its 202-test suite with exit 0** — including `.pop()` → `.shift()`, replacing a computed time-zone name with `""`, and several progress-index substitutions. All now die, and the search space additionally includes one mutant added on a fresh axis (the `", "` separator). Stated with the scope the reviewer correctly insisted on: **this reports the search space, not a proof about the file.** Sixteen mutants died; that is not the same claim as "the file is mutation-complete". Three repairs are worth naming because the original tests looked fine: - **The time-zone test was degenerate**, asserting on whatever the runner's ambient `Intl` formatter produced. It now stubs the formatter, so the assertion is about the component's own `.split(", ").pop()` parsing rather than the platform's output — and a second test covers the separator. - **Two single-index tests passed trivially.** "Ignores a hide request for a row that is gone" and the basename test each now assert a valid-index half alongside the invalid one, so an index substitution cannot slip through. - One reported failure mode was simply wrong and is rewritten: a mutant was described as surfacing a `TypeError` through a `.not.toThrow()` assertion, when the emission actually carries a valid percentage. ### Deliberately not included Two lines with three branch arms remain, and both are refused for the same reason: `percentage: progress.percentage ?? this.uploadTasks[taskIndex].percentage ?? 0` (line 647) and its twin in the error handler (line 678) fall through a `??` whose right operand no caller can produce. Verified in the final lcov — line 647 is hit 28 times with both arms at zero. After this bundle those are the **only** two lines in the file still carrying a missed arm, and the zero-hit set is empty. Also recorded honestly: **three** of the tests pin defensive paths production cannot reach (the first draft said two). They are kept because they document the guards, not because they earn coverage. No production file is touched, and the `node_modules` junction used for the run was removed before committing. ### Any related issues, documentation, discussions? Closes #7955 ### How was this PR tested? ``` npx ng test --watch=false --include="**/dataset-detail.component.spec.ts" ``` ``` Test Files 1 passed (1) ``` `yarn format:ci` passes. `frontend/junit.xml` and `frontend/coverage/` are regenerated by every run and are not committed. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Code (Opus 5) Report URL: https://github.com/apache/texera/actions/runs/32900656130 With regards, GitHub Actions via GitBox
