import React from 'react'; import { render, screen } from '@testing-library/react'; import ResetPasswordPage from '../../components/auth/ResetPasswordPage'; describe('Accessibility: ResetPasswordPage', () => { beforeEach(() => { window.history.replaceState({}, 'Test', '/reset-password?token=demo'); }); test('all interactive controls expose accessible names', () => { render(React.createElement(ResetPasswordPage)); const buttons = screen.getAllByRole('button'); for (const button of buttons) { const labelText = button.getAttribute('aria-label') ?? button.textContent?.trim(); expect(labelText).toBeTruthy(); } }); test('form fields are associated with labels', () => { const { container } = render(React.createElement(ResetPasswordPage)); const labelElements = Array.from(container.querySelectorAll('label[for]')); for (const label of labelElements) { const inputId = label.getAttribute('for'); const field = inputId ? container.querySelector(`#${inputId}`) : null; expect(field).not.toBeNull(); } }); });