diff --git a/job-tracker-ui/src/confirm-flow.test.tsx b/job-tracker-ui/src/confirm-flow.test.tsx new file mode 100644 index 0000000..7aa407a --- /dev/null +++ b/job-tracker-ui/src/confirm-flow.test.tsx @@ -0,0 +1,23 @@ +import React from 'react'; +import '@testing-library/jest-dom'; +import { fireEvent, render, screen } from '@testing-library/react'; +import { ConfirmProvider } from './confirm'; +import { useConfirm } from './confirm'; + +function DeleteDemo() { + const { confirm } = useConfirm(); + return ; +} + +test('destructive confirm dialog shows warning state', async () => { + render( + + + , + ); + + fireEvent.click(screen.getByRole('button', { name: /delete attachment/i })); + + expect(await screen.findByText(/this action may be hard to undo/i)).toBeInTheDocument(); + expect(screen.getByRole('button', { name: /^delete$/i })).toBeInTheDocument(); +}); diff --git a/job-tracker-ui/src/dialog-flow.test.tsx b/job-tracker-ui/src/dialog-flow.test.tsx new file mode 100644 index 0000000..827fd5f --- /dev/null +++ b/job-tracker-ui/src/dialog-flow.test.tsx @@ -0,0 +1,30 @@ +import React from 'react'; +import '@testing-library/jest-dom'; +import { render, screen, fireEvent } from '@testing-library/react'; +import { ConfirmProvider } from './confirm'; +import { PromptProvider, usePrompt } from './prompt'; + +function RenameDemo() { + const { prompt } = usePrompt(); + return ( + + ); +} + +test('prompt dialog opens with default rename value', async () => { + render( + + + + + , + ); + + fireEvent.click(screen.getByRole('button', { name: /rename attachment/i })); + + expect(await screen.findByDisplayValue('resume.pdf')).toBeInTheDocument(); + expect(screen.getByText(/choose a new name/i)).toBeInTheDocument(); + expect(screen.getByText(/10\/180/i)).toBeInTheDocument(); +});