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
