summaryrefslogtreecommitdiff
path: root/src/components/ui/input.test.tsx
diff options
context:
space:
mode:
authorNorton <2773923088@qq。>2026-04-06 14:32:33 +0800
committerNorton <2773923088@qq。>2026-04-06 14:32:33 +0800
commit18fc18761dbefc2ab2fbaf93e1fe433eb0b47b37 (patch)
tree8c5c83f9e45387123e79f3431d1eb1ab66a020ea /src/components/ui/input.test.tsx
parentf247a8c4a863ec430f4a705b5c493d652c8429bd (diff)
A small portion of newly added unit testing code
Diffstat (limited to 'src/components/ui/input.test.tsx')
-rw-r--r--src/components/ui/input.test.tsx16
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);
+ });
});