Написать тесты для функции на TypeScript
Помогите пожалуйста написать тест/ы для функции
export function validateDate(dateString: string): {
isValid: boolean;
message: string;
} {
if (!dateString || typeof dateString !== 'string') {
return {
isValid: false,
message: errors.date.required,
};
}
const invalidCharsPattern = /[a-zA-Z<>@!#$%^&*()_+={}[\]:;"'|\\?/~`]/;
if (invalidCharsPattern.test(dateString)) {
return {
isValid: false,
message: errors.date.invalidCharacters,
};
}
const datePattern = /^\d{2}\.\d{2}\.\d{4}$/;
if (!datePattern.test(dateString)) {
return {
isValid: false,
message: errors.date.pattern,
};
}
const [day, month, year] = dateString.split('.').map(Number);
const inputDate = new Date(year, month - 1, day);
const today = new Date();
today.setHours(0, 0, 0, 0);
if (inputDate.getDate() !== day || inputDate.getMonth() !== month - 1 || inputDate.getFullYear() !== year) {
return {
isValid: false,
message: errors.date.invalid,
};
}
if (inputDate < today) {
return {
isValid: false,
message: errors.date.past,
};
}
return {
isValid: true,
message: errors.date.valid,
};
}
Напишите тесты, проверяющие следующее:
Валидация даты пропускает дату в виде ДД.ММ.ГГГГ.
Валидация даты не пропускает спецсимволы.
Валидация даты не пропускает буквенные значения.
Валидация даты выдаёт предупреждение, если дата раньше текущей.
Валидация города выдаёт предупреждение, если есть экранирование.
Валидация города пропускает название с восклицательным знаком или дефисами (например, Saint-Louis-du-Ha! Ha!).
Валидация города пропускает название со спецсимволами (например, Ağrı).
Валидация города пропускает название из одной буквы.
У тебя-же всё написано. Выводи на экран, принтер, колонки можно
Какие тесты? jest?