import * as React from 'react';
import { Button } from '@/components/ui/button';
import { useDisclosure } from '@/hooks/use-disclosure';
import { rtlRender, screen, userEvent, waitFor } from '@/testing/test-utils';
import {
Dialog,
DialogContent,
DialogFooter,
DialogHeader,
DialogTitle,
DialogTrigger,
} from '../dialog';
const openButtonText = 'Open Modal';
const cancelButtonText = 'Cancel';
const titleText = 'Modal Title';
const TestDialog = () => {
const { close, open, isOpen } = useDisclosure();
const cancelButtonRef = React.useRef(null);
return (
);
};
test('should handle basic dialog flow', async () => {
rtlRender();
expect(screen.queryByText(titleText)).not.toBeInTheDocument();
await userEvent.click(screen.getByRole('button', { name: openButtonText }));
expect(await screen.findByText(titleText)).toBeInTheDocument();
await userEvent.click(screen.getByRole('button', { name: cancelButtonText }));
await waitFor(() =>
expect(screen.queryByText(titleText)).not.toBeInTheDocument(),
);
});