diff --git a/frontend/app/components/comment/comment-actions.spec.tsx b/frontend/app/components/comment/comment-actions.spec.tsx
index e9dd25a0..75229111 100644
--- a/frontend/app/components/comment/comment-actions.spec.tsx
+++ b/frontend/app/components/comment/comment-actions.spec.tsx
@@ -2,7 +2,7 @@ import { h } from 'preact';
import '@testing-library/jest-dom';
import { CommentActions, Props } from './comment-actions';
import { render } from 'tests/utils';
-import { screen, waitFor } from '@testing-library/preact';
+import { fireEvent, screen, waitFor } from '@testing-library/preact';
function getProps(): Props {
return {
@@ -14,14 +14,15 @@ function getProps(): Props {
readOnly: false,
editing: false,
replying: false,
- onCopy() {},
- onDelete() {},
- onTogglePin() {},
- onToggleReplying() {},
- onHideUser() {},
- onBlockUser() {},
- onUnblockUser() {},
- onDisableEditing() {},
+ onCopy: jest.fn(),
+ onDelete: jest.fn(),
+ onToggleEditing: jest.fn(),
+ onTogglePin: jest.fn(),
+ onToggleReplying: jest.fn(),
+ onHideUser: jest.fn(),
+ onBlockUser: jest.fn(),
+ onUnblockUser: jest.fn(),
+ onDisableEditing: jest.fn(),
editable: false,
editDeadline: undefined,
};
@@ -32,6 +33,9 @@ describe('', () => {
beforeEach(() => {
props = getProps();
});
+ afterEach(() => {
+ jest.resetAllMocks();
+ })
it('should render "Reply"', () => {
render();
@@ -139,5 +143,13 @@ describe('', () => {
expect(screen.getByTestId('comment-actions-additional').children[3]).toHaveTextContent('Block');
expect(screen.getByTestId('comment-actions-additional').children[4]).toHaveTextContent('Delete');
});
+
+ it('calls `onToggleEditing` when edit button is pressed', () => {
+ render();
+ fireEvent(screen.getByText('Edit'), new MouseEvent('click', { bubbles: true }));
+ expect(props.onToggleEditing).toHaveBeenCalledTimes(1);
+ fireEvent(screen.getByText('Cancel'), new MouseEvent('click', { bubbles: true }));
+ expect(props.onToggleEditing).toHaveBeenCalledTimes(2);
+ })
});
});
diff --git a/frontend/app/components/comment/comment-actions.tsx b/frontend/app/components/comment/comment-actions.tsx
index a89337cb..fdfa7f01 100644
--- a/frontend/app/components/comment/comment-actions.tsx
+++ b/frontend/app/components/comment/comment-actions.tsx
@@ -22,6 +22,7 @@ export type Props = {
editable: boolean;
editDeadline: number | undefined;
onCopy(): void;
+ onToggleEditing(): void;
onDelete(): void;
onTogglePin(): void;
onToggleReplying(): void;
@@ -43,6 +44,7 @@ export function CommentActions({
bannedUser,
editDeadline,
onCopy,
+ onToggleEditing,
onDelete,
onTogglePin,
onToggleReplying,
@@ -68,7 +70,7 @@ export function CommentActions({
)}
{editable && editDeadline && (
<>
-