The GitHub Actions job "Required Checks" on texera.git/main has succeeded.
Run started by GitHub user github-merge-queue[bot] (triggered by 
github-merge-queue[bot]).

Head commit for run:
97e3585a6ac7aadbea629e7350a96d1a84f7b51c / Xinyuan Lin <[email protected]>
test(frontend): cover the time-travel poller and the feedback component (#7992)

### What changes were proposed in this PR?

Three small frontend components, measured from lcov with the same spec
filter on both sides.

| File | Codecov | lcov detail |
|---|---|---|
| `time-travel.component.ts` | 92.3% → **100%** | branches 20/22 →
22/22; functions 17/18 → 18/18 |
| `feedback.component.ts` | 85.2% → **100%** | branches 14/17 → 17/17;
functions 8/11 → 11/11 |
| `feedback.component.html` | 83.3% → **100%** | branches 2/4 → 4/4;
**functions 0/2 → 2/2** |
| `repeat-dnd.component.html` | 86.4% → **95.5%** | one arm left
deliberately — see below |
| `repeat-dnd.component.ts` (incidental) | 90.9% → **100%** | branches
17/18 → 18/18 |

**+14 fully-covered lines, +9 branch arms, +7 functions.**

The template's function counter is the one to notice:
`feedback.component.html` was at **zero of two functions covered**
behind an 83% line figure. That is the fifth time in this campaign the
function counter found what the line counter hid.
`time-travel.component.ts`'s zero-hit lines 84-88 were the entire
`ngOnInit` timer lambda body.

**`port-property-edit-frame.component.ts` was in scope and is absent.**
It is worth exactly zero: two of its three residual lines are dead Quill
config and the third is unreachable in practice. No tests were added
there and no mutations run.

### A production defect found while assessing it

Chasing those two Quill lines turned up a real bug rather than coverage:
the port-name editor's keyboard bindings use `key: 13`, which is **Quill
1 syntax that Quill 2 never dispatches**. So pressing Enter in the
port-name editor inserts a newline into the shared display name instead
of closing the editor. Reported, not pinned — pinning current behaviour
would cement it.

### One arm left uncovered on purpose

`repeat-dnd.component.html` line 48 is the **remove** button's
`[disabled]="field.templateOptions?.disabled"`, and issue **#7431**
records that the enclosing `*ngFor` shadows the outer `field`, so it
never disables. That arm is deliberately not pinned. The assertion added
in that spec is on the **add** button, and it carries a comment
explaining why an absent `templateOptions` object must not read as
disabled.

### Verification

28 mutations, **24 killed, 4 recorded.**

The first draft's headline was false: it claimed "survivors: NONE, every
one of the 14 new tests proven by a mutation actually applied and run".
**Eight mutants survived it** — seven found by review plus one found
here (deleting an `[nzLoading]` binding). All eight now die.

Its survivor-to-mutation mapping was also wrong in one place: two
separate mutations had been given the same number, so a kill was
credited to the wrong row.

The four recorded non-kills are: the #7431 arm above (refused), an
equivalent mutant (`[nzData]="[...feedbackList]"` →
`[nzData]="feedbackList"` — the spread produces an equal array), and two
entries covering `port-property-edit-frame`, where no tests were added.

One further correction worth making: `feedback.component.html` reaching
24/24 is **not** a quality claim on its own. At 24/24 the file is fully
*executed*; what makes it constrained is the mutations, not the
percentage.

No production file is touched. The worktree used a real yarn install
rather than a `node_modules` junction.

### Any related issues, documentation, discussions?

Closes #7990

### How was this PR tested?

```
npx ng test --watch=false --include="**/time-travel.component.spec.ts" 
--include="**/feedback.component.spec.ts" 
--include="**/repeat-dnd.component.spec.ts"
```

```
 Test Files  3 passed (3)
```

`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)

---------

Signed-off-by: Xinyuan Lin <[email protected]>
Co-authored-by: Copilot Autofix powered by AI 
<[email protected]>

Report URL: https://github.com/apache/texera/actions/runs/33040829196

With regards,
GitHub Actions via GitBox

Reply via email to