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]

Reply via email to