*/
describe('validTime()', () => {
it('returns true for valid time', () => {
// arrange
const str = '13:58';
// act
const result = validTime(str);
// log
console.log("result 1: ", result);
// assert
expect(result).toBe(true);
});
it('returns false when invalid hours', () => {
// arrange
const str = '25:51';
// act
const result = validTime(str);
// log
console.log("result 1: ", result);
// assert
expect(result).toBe(false);
});
it('returns false when invalid minutes', () => {
// arrange
const str = '02:76';
// act
const result = validTime(str);
// log
console.log("result 1: ", result);
// assert
expect(result).toBe(false);
});
});
function validTime(str) {
if (typeof str !== "string" || !str.includes(":")) {
return false;
}
let [hour, minutes] = str.trim().split(":");
hour = hour.trim();
minutes = minutes.trim();
if (/\D/.test(hour) || /\D/.test(minutes)) {
return false;
}
hour = parseInt(hour);
minutes = parseInt(minutes);
return 0 <= hour && hour < 24 && 0 <= minutes && minutes < 60;
}
/**
* Test Suite