// @vitest-environment jsdom import { cleanup, render, screen } from '@testing-library/react'; import { afterEach, describe, expect, it, vi } from 'vitest'; import { QuestionFormView } from '../../src/components/QuestionForm'; import type { QuestionForm } from '../../src/artifacts/question-form'; const form: QuestionForm = { id: 'discovery', title: 'Quick brief', questions: [ { id: 'tone', label: 'Visual tone (pick up to two)', type: 'checkbox', options: ['Editorial / magazine', 'Modern minimal', 'Soft gradients'], maxSelections: 2, required: true, }, ], }; describe('QuestionFormView', () => { afterEach(() => cleanup()); it('updates locked answers when submitted history arrives after the initial render', () => { const onSubmit = vi.fn(); const { container, rerender } = render( , ); expect(container.querySelectorAll('input[type="checkbox"]:checked')).toHaveLength(0); rerender( , ); expect(screen.getByText('answered')).toBeTruthy(); expect(container.querySelectorAll('input[type="checkbox"]:checked')).toHaveLength(2); }); });