eugenegujing opened a new pull request, #7148: URL: https://github.com/apache/texera/pull/7148
### What changes were proposed in this PR? `ContextMenuComponent` backs the canvas right-click menu, but its existing 13 tests only cover `canExecuteOperator` and its helpers; none of the action methods was invoked by any test. This PR extends `context-menu.component.spec.ts` with 16 tests covering the remaining public surface: - `onCopy` / `onPaste`: delegate to `OperatorMenuService`, each also asserting the sibling method is not called. - `onCut`: copy happens before delete (asserted via mock invocation order). - `onDelete` (mocked): all three deletion kinds are issued with the snapshotted id lists inside exactly one `bundleActions` call; nothing is deleted when the `bundleActions` callback is not run; the `hasLinkWithID` guard skips links no longer in the graph; highlighted ids are snapshotted before deletion mutates the live highlight arrays. - `onDelete` (real `WorkflowActionService` on a seeded graph): deleting an operator together with its attached highlighted link does not double-delete the link (the real `deleteLinkWithID` throws on a missing link); a standalone highlighted link is deleted while its endpoint operators survive; highlighted comment boxes are deleted; the whole mixed deletion is a single undo stack entry that one undo fully restores. - `hasHighlightedLinks`: false/true per link highlight state. - `onClickExportHighlightedExecutionResult`: modal opens with `ResultExportationComponent`, the workflow name, and the `context-menu` source marker. - Constructor subscriptions: `highlightedOperatorIds` / `highlightedCommentBoxIds` follow the service stream emissions. No production code is changed. The only shared-stub change is the `OperatorMenuService` stub's two highlight streams becoming `BehaviorSubject`s instead of `of([])` so the subscription tests can push emissions; both emit `[]` on subscribe, so the pre-existing tests are unaffected. ### Any related issues, documentation, discussions? Closes #7147 ### How was this PR tested? This PR only adds tests. From `frontend/`, `npx ng test --watch=false --include='**/context-menu.component.spec.ts'` passes 29/29 (13 pre-existing + 16 new); prettier and eslint are clean. With coverage enabled, `context-menu.component.ts` reaches 100% statements, functions and branches. ### Was this PR authored or co-authored using generative AI tooling? Co-authored by: Claude Code (Claude Fable 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]
