import { cleanup, fireEvent, render, screen } from '@testing-library/react' import { afterEach, describe, expect, it, vi } from 'vitest' import { WizardStepFormChrome } from '@/components/campaign/shared/WizardStepFormChrome' afterEach(() => cleanup()) describe('WizardStepFormChrome C140', () => { it('renders a
in action mode', () => { render( , ) const form = document.querySelector('form') expect(form).not.toBeNull() expect(form!.querySelector('input[name="title"]')).not.toBeNull() }) it('renders a
in onCtaClick mode (not a form)', () => { render( Step content , ) expect(document.querySelector('form')).toBeNull() }) it('calls the action with FormData on submit, preserving uncontrolled field values', () => { const action = vi.fn().mockResolvedValue({}) render( , ) const form = document.querySelector('form')! fireEvent.submit(form) expect(action).toHaveBeenCalledTimes(1) const formData = action.mock.calls[0][0] as FormData expect(formData.get('title')).toBe('keep this') }) it('sets aria-busy and data-pending when isPending is true', () => { render( Step , ) const form = document.querySelector('form')! expect(form.getAttribute('aria-busy')).toBe('true') expect(form.hasAttribute('data-pending')).toBe(true) expect(screen.getAllByText('Salvando…').length).toBeGreaterThanOrEqual(1) }) })