aglinxinyuan opened a new pull request, #7893:
URL: https://github.com/apache/texera/pull/7893

   ### What changes were proposed in this PR?
   
   Two dashboard templates. 77 tests → 94.
   
   Measured from `frontend/` with `ng test --coverage 
--coverage-reporters=lcovonly`, the same spec-file filter on both sides, `rm 
-rf coverage` between runs, and the "before" run taken from HEAD's specs rather 
than inherited from a report.
   
   | Template | Before | After |
   |---|---|---|
   | `admin-execution.component.html` | 77/82 = 93.9% (5 missed) | **81/82 = 
98.8%** (1 missed) |
   | `user-dataset.component.html` | 32/37 = 86.5% (5 missed) | **37/37 = 
100%**, branches **6/6** |
   
   +9 fully-covered lines, +2 branch arms. Both "before" figures reproduce 
Codecov's published numbers exactly.
   
   New tests cover the duration and end-time fallbacks, the filter and 
pagination wiring, and the dataset list's empty and populated states.
   
   ### Verification
   
   29 mutations, **28 killed, 1 equivalent mutant.** Every mutant was run twice 
— once against the pre-review tree and once against the repaired tree — so the 
"now dies" claims are differences I observed rather than inferred.
   
   The first draft reported `"survivors": []`. That was false: **17 distinct 
mutants survived at 87/87 on its own tree.** Its *numbers* were right — I 
reproduced 93.90%/5-missed, 86.49%/5-missed, +9 lines and +2 arms — but its 
closing claim that "the assessment was accurate on every number I checked" 
papered over the fact that the assertions behind those numbers did not 
constrain much.
   
   Three of its test comments described separations the tests did not achieve:
   
   - "The duration and end-time cells have independent fallbacks, so assert 
them separately" — each `ngIf` guard was in fact pinned in only one direction.
   - An `EXCHANGE` of the pause and resume `[disabled]` predicates was framed 
as pinning the pair; it pins only pause-on-RUNNING and resume-on-PAUSED, not 
the converse.
   - A comment claimed a template statement's assign-then-search ordering was 
observable; the test could not see it.
   
   ### This repair pass added zero coverage
   
   The 7 new tests and 7 strengthenings buy **mutation strength, not lines** — 
the Codecov delta is identical before and after this pass. Said plainly so the 
diff size is not read as coverage.
   
   ### Deliberately not included, and honestly bounded
   
   **This is not a claim that these templates are mutation-complete.** It is a 
claim about 29 specific mutants. Five wirings remain unpinned and are listed 
rather than hidden:
   
   - `(nzQueryParams)` on line 43 and `(nzFilterChange)` on line 83 of 
`admin-execution.component.html` are both still `FNDA:0`. Deleting either would 
silently break every page click or filter change and nothing in the 53 tests 
would notice, because the pagination and filter suites call the handlers 
directly. Worth 0 Codecov lines either way.
   - `(click)="setViewType('card')"` on `user-dataset.component.html:53` is 
still `FNDA:0` — the page starts in card view, so the existing toggle test only 
ever clicks the list button.
   - `(refresh)="ngAfterViewInit()"` on line 100 is left unpinned 
**deliberately**: pinning it would cement a duplicate-subscription defect.
   - Line 90's `(refresh)` has no `DA` record in the lcov at all, so it can 
never count toward the Codecov metric in either direction.
   
   **`admin-execution.component.html:128` is the one remaining miss and it is 
dead markup**: `#endTimeNotAvailable` is declared twice, at lines 118 and 127, 
so lines 127-129 are unreachable. Re-verified from my own after-run lcov rather 
than inherited.
   
   No production file is touched.
   
   ### Any related issues, documentation, discussions?
   
   Closes #7892
   
   ### How was this PR tested?
   
   ```
   npx ng test --watch=false --include="**/admin-execution.component.spec.ts" 
--include="**/user-dataset.component.spec.ts"
   ```
   
   ```
    Test Files  2 passed (2)
         Tests  94 passed (94)
   ```
   
   `frontend/junit.xml` and `frontend/coverage/` are regenerated by every run 
and are not committed. `yarn format:ci` passes.
   
   ### Was this PR authored or co-authored using generative AI tooling?
   
   Generated-by: Claude Code (Opus 5)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to