test(viewer): verify delete button click does not bubble to onclick
Documents the stopPropagation guarantee: clicking the trash button must not trigger the annotation's onclick (which opens the block detail panel) while the delete confirm is in progress. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -113,6 +113,28 @@ describe('AnnotationShape', () => {
|
|||||||
expect(onDeleteRequest).toHaveBeenCalledOnce();
|
expect(onDeleteRequest).toHaveBeenCalledOnce();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('does not call onclick when delete button is clicked', async () => {
|
||||||
|
const onclick = vi.fn();
|
||||||
|
const onDeleteRequest = vi.fn();
|
||||||
|
|
||||||
|
render(AnnotationShape, {
|
||||||
|
annotation: makeAnnotation(),
|
||||||
|
isHovered: true,
|
||||||
|
isActive: false,
|
||||||
|
showDelete: true,
|
||||||
|
onDeleteRequest,
|
||||||
|
onclick,
|
||||||
|
onpointerenter: () => {},
|
||||||
|
onpointerleave: () => {}
|
||||||
|
});
|
||||||
|
|
||||||
|
const deleteBtn = page.getByTestId('annotation-delete-ann-1');
|
||||||
|
await deleteBtn.click();
|
||||||
|
|
||||||
|
expect(onclick).not.toHaveBeenCalled();
|
||||||
|
expect(onDeleteRequest).toHaveBeenCalledOnce();
|
||||||
|
});
|
||||||
|
|
||||||
it('calls onDeleteRequest when Delete key is pressed on the annotation', async () => {
|
it('calls onDeleteRequest when Delete key is pressed on the annotation', async () => {
|
||||||
const onDeleteRequest = vi.fn();
|
const onDeleteRequest = vi.fn();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user