diff options
Diffstat (limited to 'src/components/ui/input.test.tsx')
| -rw-r--r-- | src/components/ui/input.test.tsx | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/components/ui/input.test.tsx b/src/components/ui/input.test.tsx index aabe76f..036352b 100644 --- a/src/components/ui/input.test.tsx +++ b/src/components/ui/input.test.tsx @@ -1,6 +1,8 @@ import { render, screen } from '@testing-library/react'; import { describe, expect, test } from 'vitest'; import { Input } from './input'; +import userEvent from '@testing-library/user-event'; +import { vi } from 'vitest'; describe('Input', () => { test('renders an input with the expected slot attribute', () => { @@ -18,5 +20,19 @@ describe('Input', () => { expect(input).toHaveAttribute('type', 'password'); expect(input).toBeDisabled(); }); + + test('handles user typing and triggers onChange event', async () => { + const user = userEvent.setup(); + const handleChange = vi.fn(); + + render(<Input aria-label="Username" onChange={handleChange} />); + const input = screen.getByLabelText('Username'); + + await user.type(input, 'hello world'); + + expect(input).toHaveValue('hello world'); + expect(handleChange).toHaveBeenCalled(); + expect(handleChange).toHaveBeenCalledTimes(11); + }); }); |
