diff --git a/bit-components/design/patterns/form/form.spec.tsx b/bit-components/design/patterns/form/form.spec.tsx index a6b844d..56383d0 100644 --- a/bit-components/design/patterns/form/form.spec.tsx +++ b/bit-components/design/patterns/form/form.spec.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { render, screen, fireEvent } from '@testing-library/react'; +import { render, screen, fireEvent, act } from '@testing-library/react'; import { vi } from 'vitest'; import { Form } from './form.js'; @@ -40,7 +40,9 @@ describe('Form', () => { render(
); const submitButton = screen.getByTestId('submit-button'); - fireEvent.click(submitButton); + act(() => { + fireEvent.click(submitButton); + }); expect(screen.getByTestId('name-error')).toHaveTextContent('This field is required'); expect(screen.getByTestId('email-error')).toHaveTextContent('This field is required'); @@ -52,10 +54,14 @@ describe('Form', () => { render(); const emailInput = screen.getByTestId('email-input'); - fireEvent.change(emailInput, { target: { value: 'invalid-email' } }); + act(() => { + fireEvent.change(emailInput, { target: { value: 'invalid-email' } }); + }); const submitButton = screen.getByTestId('submit-button'); - fireEvent.click(submitButton); + act(() => { + fireEvent.click(submitButton); + }); // Wait for validation to complete const emailError = await screen.findByTestId('email-error'); @@ -63,18 +69,22 @@ describe('Form', () => { expect(onSubmit).not.toHaveBeenCalled(); }); - it('should submit form with valid values', () => { + it('should submit form with valid values', async () => { const onSubmit = vi.fn(); render(); const nameInput = screen.getByTestId('name-input'); const emailInput = screen.getByTestId('email-input'); - fireEvent.change(nameInput, { target: { value: 'John Doe' } }); - fireEvent.change(emailInput, { target: { value: 'john@example.com' } }); + act(() => { + fireEvent.change(nameInput, { target: { value: 'John Doe' } }); + fireEvent.change(emailInput, { target: { value: 'john@example.com' } }); + }); const submitButton = screen.getByTestId('submit-button'); - fireEvent.click(submitButton); + await act(async () => { + fireEvent.click(submitButton); + }); expect(onSubmit).toHaveBeenCalledWith({ name: 'John Doe',