diff --git a/Conversions/DateToDay.js b/Conversions/DateToDay.js index 378489e50e..f360c9c737 100644 --- a/Conversions/DateToDay.js +++ b/Conversions/DateToDay.js @@ -26,13 +26,13 @@ const daysNameArr = [ const DateToDay = (date) => { // firstly, check that input is a string or not. if (typeof date !== 'string') { - return new TypeError('Argument is not a string.') + throw new TypeError('Argument is not a string.') } // extract the date let [day, month, year] = date.split('/').map((x) => Number(x)) // check the data are valid or not. if (day < 1 || day > 31 || month > 12 || month < 1) { - return new TypeError('Date is not valid.') + throw new TypeError('Date is not valid.') } // In case of Jan and Feb: diff --git a/Conversions/test/DateToDay.test.js b/Conversions/test/DateToDay.test.js index f0809821db..38b63d33da 100644 --- a/Conversions/test/DateToDay.test.js +++ b/Conversions/test/DateToDay.test.js @@ -1,35 +1,28 @@ import { DateToDay } from '../DateToDay' -test('The date 18/02/2001 is Sunday', () => { - const res = DateToDay('18/02/2001') - expect(res).toBe('Sunday') -}) - -test('The date 18/12/2020 is Friday', () => { - const res = DateToDay('18/12/2020') - expect(res).toBe('Friday') -}) +describe('DateToDay', () => { + it.each([ + ['18/02/2001', 'Sunday'], + ['18/12/2020', 'Friday'], + ['12/12/2012', 'Wednesday'], + ['01/01/2001', 'Monday'], + ['1/1/2020', 'Wednesday'], + ['2/3/2014', 'Sunday'], + ['28/2/2017', 'Tuesday'], + ['02/03/2024', 'Saturday'], + ['29/02/2024', 'Thursday'] + ])('%s is %s', (date, day) => { + expect(DateToDay(date)).toBe(day) + }) -test('The date 12/12/2012 is Wednesday', () => { - const res = DateToDay('12/12/2012') - expect(res).toBe('Wednesday') -}) -test('The date 01/01/2001 is Monday', () => { - const res = DateToDay('01/01/2001') - expect(res).toBe('Monday') -}) - -test('The date 1/1/2020 is Wednesday', () => { - const res = DateToDay('1/1/2020') - expect(res).toBe('Wednesday') -}) - -test('The date 2/3/2014 is Sunday', () => { - const res = DateToDay('2/3/2014') - expect(res).toBe('Sunday') -}) + it('should throw when input is not a string', () => { + expect(() => DateToDay(100)).toThrowError() + }) -test('The date 28/2/2017 is Tuesday', () => { - const res = DateToDay('28/2/2017') - expect(res).toBe('Tuesday') + it.each(['32/01/2000', '00/01/2000', '15/00/2000', '15/13/2000'])( + 'should throw when input is not a correct date %s', + (wrongDate) => { + expect(() => DateToDay(wrongDate)).toThrowError() + } + ) })