- Add accessibility tests for ResetPasswordPage component - Add performance tests for schedule generation - Add visual regression tests with snapshot baselines - Establish testing patterns for UI accessibility compliance - Include performance benchmarks for core utilities
32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
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();
|
|
}
|
|
});
|
|
});
|