The GitHub Actions job "Comment commands" on texera.git/main has succeeded.
Run started by GitHub user Musxeto (triggered by Musxeto).

Head commit for run:
35346629ce00493927556df92fc839cb79b78dfa / Meng Wang <[email protected]>
test(frontend): extend UserProjectListItemComponent template coverage (#7418)

### What changes were proposed in this PR?

Rebased onto `main` after #7415 landed on the same file, and reduced to
what that
PR left uncovered. #7415 pins what each template branch *looks like* by
putting the
component into the state directly; this PR pins the wiring that produces
those
states, so a control losing its handler fails here. Together they take
`user-project-list-item.component.html` to 100% (110/110 statements, no
uncovered
branches — it was 77/110 after #7415).

8 new tests:

- **colour panel** — the `[(colorPicker)]` / `(colorPickerSelect)`
outputs, and the
`cpExtraTemplate` menu, whose markup exists only while the picker is
open: its
Save action, and its Delete action in both states (disabled while the
project has
no colour, enabled and wired once one is set). None of this was
previously
  rendered — it is the bulk of the gap #7410 describes.
- **name** — the edit button opens the input, `keyup.enter` saves,
`focusout` closes.
- **description** — the expand/collapse controls, the edit button,
`focusout`
  saving, and the suffix save icon closing the editor.
- **actions** — the share button and the delete popconfirm's
`nzOnConfirm`.
- three class-level gaps: the `entry` getter's guard, `ngOnInit`
adopting a stored
colour, and `updateProjectColor` skipping the service when the colour is
  unchanged (class 63/67 -> 66/67).

This block queries with `By.css` + `triggerEventHandler` rather than
`querySelector`: `nzOnConfirm`, `keyup.enter` and `colorPickerSelect`
are directive
outputs, not DOM events, so a native dispatch cannot reach them. #7415's
`MarkdownModule.forRoot()` is kept as-is. No production code was
changed.

Tests that #7415 already covers (the creation date, the `editable`
gating, the
read-only delete branch) were dropped from this PR rather than
duplicated.

One statement stays uncovered: the `if (!this.entry) throw` guard inside
`saveProjectName`'s subscribe. The `entry` getter already throws when no
entry was
provided, so that branch cannot be reached — it is dead code rather than
a coverage
gap, and removing it felt out of scope for a test-only PR.

### Any related issues, documentation, discussions?

Closes #7410. Builds on #7415 (#7412), which covers the same template
from the
rendering side.

### How was this PR tested?

`ng test --watch=false --include
src/app/dashboard/component/user/user-project/user-project-list-item/user-project-list-item.component.spec.ts`
— 28 passed (20 existing + 8 new), run 3x for determinism. Coverage
(`--coverage`)
confirms `user-project-list-item.component.html` at 110/110 statements
with no
uncovered branches, and the class at 66/67. The failure path was
verified by
breaking an assertion (red, non-zero exit); eslint and prettier are
clean.

### 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/31301391662

With regards,
GitHub Actions via GitBox

Reply via email to