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();
    }
  });
});
