1. Классы эквивалентности:
Проверить отображение чисел в формате будний/выходной день
Проверить, что пустые и "-" ячейки не попадают в категорию будний/выходной день
Проверить, что числа 23/30 и 24/31 корректно подсвечиваются в категории будний/выходной день
Проверить, что подсвечиваются только те числа, которые попали под плашку дней недели (7 столбцов)
Проверить, что будние дни подсвечиваются голубым цветом
Проверить, что выходные дни подсвечиваются красным цветом
Проверить последовательность дней недели: ПН ВТ СР ЧТ ПТ СБ ВС
2. Граничные значения:
Проверить при выборе короткого месяца лишние даты не подсвечиваются (если присутствуют в одной линии)
Проверить при выборе короткого месяца лишние даты не подсвечиваются (если присутствуют в сетке)
Проверить выбор дней в месяце: 28/30/31
Проверить отсутствие выбора дней в месяце: меньше 28, больше 31 и 29 дней
Для месяцев с 30 днями (апрель, июнь, сентябрь, ноябрь): проверить, что 30-е число подсвечивается, а 31-е – нет.
Для месяцев с 31 днём (январь, март, май, июль, август, октябрь, декабрь): проверить, что 31-е число корректно подсвечивается.
Для месяцев с 28 днями (только февраль): проверить, что 29-е, 30-е и 31-е числа не подсвечивается.
Плашка с днями недели не должна смещаться до исчезновения вправо и появляться слева.
Плашка с днями недели должна по умолчанию быть выровнена по правому краю
3. Тестирование состояний и переходов:
При выборе нового месяца сразу обновляется подсветка календаря согласно новому максимуму дней.
После каждого нажатия кнопок панель с днями недели (overlay) сдвигается зависимости от новой позиции.
Проверить, что последовательность сдвигов приводит календарь в корректное состояние (overlay и подсветка).
Проверить, что при выборе любого года пользователь может выставить корректный месяц календаря.
Проверить, что при выборе сокращенного месяца (28 дней) - числа 23/30 и 24/31 корректно подсвечиваются.
Проверить адаптацию плашек дней недели и чисел месяца в темной и светлой теме.
Проверить одинаковый стиль дней недели и чисел месяца в темной и светлой теме.
4. Таблицы принятия решений:
Проверить каждую строку таблицы, варьируя входные данные (номер дня, положение overlay, выбранный месяц).
Если позиция ячейки в overlay соответствует буднему дню (Пн–Пт) – применить класс «weekday» (голубой).
Если соответствует выходному (Сб, Вс) – применить класс «weekend» (красный).
5. Попарное тестирование:
Проверить месяц 28 дней (февраль) в разные годы
Проверить месяц 30 дней (например, апрель, июнь, сентябрь, ноябрь) в разные годы
Проверить месяц 31 дней (например, январь, март, май, июль, август, октябрь, декабрь) в разные годы
6. Предугадывание ошибки:
Попробовать изменить значение в массиве gridData на некорректное (текст вместо числа) и проверить подсветку.
Попробовать изменить значение в массиве gridData на некорректное (числа 32/33/34 и т.д.) и проверить подсветку.