diff --git a/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.test.tsx b/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.test.tsx
index 8041cbd1..67873be0 100644
--- a/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.test.tsx
+++ b/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.test.tsx
@@ -1,9 +1,10 @@
import { render, screen, fireEvent } from '@testing-library/react';
import { beforeEach, describe, expect, it, vi } from 'vitest';
+// Ensure the path is correct for import
import { useMessageStore } from "../../../core/stores/messageStore/index.ts";
import { DeleteMessagesDialog } from "@components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.tsx";
-vi.mock('@core/stores/messageStore.ts', () => ({
+vi.mock('@core/stores/messageStore', () => ({
useMessageStore: vi.fn(() => ({
deleteAllMessages: vi.fn(),
})),
@@ -14,17 +15,36 @@ describe('DeleteMessagesDialog', () => {
const mockClearAllMessages = vi.fn();
beforeEach(() => {
- vi.mocked(useMessageStore).mockReturnValue({ deleteAllMessages: mockClearAllMessages });
mockOnOpenChange.mockClear();
mockClearAllMessages.mockClear();
+
+ const mockedUseMessageStore = vi.mocked(useMessageStore);
+ mockedUseMessageStore.mockImplementation(() => ({
+ deleteAllMessages: mockClearAllMessages
+ }));
+ mockedUseMessageStore.mockClear();
+
+ });
+
+ it('calls onOpenChange with false when the close button (X) is clicked', () => {
+ render();
+ const closeButton = screen.queryByTestId('dialog-close-button');
+ if (!closeButton) {
+ throw new Error("Dialog close button with data-testid='dialog-close-button' not found. Did you add it to the component?");
+ }
+ fireEvent.click(closeButton);
+ expect(mockOnOpenChange).toHaveBeenCalledTimes(1);
+ expect(mockOnOpenChange).toHaveBeenCalledWith(false);
});
+
+
it('renders the dialog when open is true', () => {
render();
- expect(screen.getByText('Clear All Messages')).toBeVisible();
- expect(screen.getByText(/This action will clear all message history./)).toBeVisible();
- expect(screen.getByRole('button', { name: 'Dismiss' })).toBeVisible();
- expect(screen.getByRole('button', { name: 'Clear Messages' })).toBeVisible();
+ expect(screen.getByText('Clear All Messages')).toBeInTheDocument();
+ expect(screen.getByText(/This action will clear all message history./)).toBeInTheDocument();
+ expect(screen.getByRole('button', { name: 'Dismiss' })).toBeInTheDocument();
+ expect(screen.getByRole('button', { name: 'Clear Messages' })).toBeInTheDocument();
});
it('does not render the dialog when open is false', () => {
@@ -32,15 +52,10 @@ describe('DeleteMessagesDialog', () => {
expect(screen.queryByText('Clear All Messages')).toBeNull();
});
- it('calls onOpenChange with false when the close button is clicked', () => {
- render();
- fireEvent.click(screen.getByRole('button', { name: 'Close' }));
- expect(mockOnOpenChange).toHaveBeenCalledWith(false);
- });
-
it('calls onOpenChange with false when the dismiss button is clicked', () => {
render();
fireEvent.click(screen.getByRole('button', { name: 'Dismiss' }));
+ expect(mockOnOpenChange).toHaveBeenCalledTimes(1); // Add count check
expect(mockOnOpenChange).toHaveBeenCalledWith(false);
});
@@ -48,6 +63,7 @@ describe('DeleteMessagesDialog', () => {
render();
fireEvent.click(screen.getByRole('button', { name: 'Clear Messages' }));
expect(mockClearAllMessages).toHaveBeenCalledTimes(1);
+ expect(mockOnOpenChange).toHaveBeenCalledTimes(1); // Add count check
expect(mockOnOpenChange).toHaveBeenCalledWith(false);
});
});
\ No newline at end of file
diff --git a/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.tsx b/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.tsx
index 20cf9ade..47fe0b92 100644
--- a/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.tsx
+++ b/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.tsx
@@ -29,7 +29,7 @@ export const DeleteMessagesDialog = ({
return (