diff --git a/src/helpers/time/calculateNearestTime.js b/src/helpers/time/calculateNearestTime.js new file mode 100644 index 000000000..fdd2a2ca9 --- /dev/null +++ b/src/helpers/time/calculateNearestTime.js @@ -0,0 +1,21 @@ +export function calculateNearestTime(currentDate = new Date()) { + if (currentDate.getHours() <= 9 || currentDate.getHours() > 21) { + return 9 + } + + if (currentDate.getHours() <= 12) { + return 12 + } + + if (currentDate.getHours() <= 15) { + return 15 + } + + if (currentDate.getHours() <= 18) { + return 18 + } + + if (currentDate.getHours() <= 21) { + return 21 + } +} \ No newline at end of file diff --git a/src/helpers/time/calculateNearestTime.test.js b/src/helpers/time/calculateNearestTime.test.js new file mode 100644 index 000000000..c9df83ebf --- /dev/null +++ b/src/helpers/time/calculateNearestTime.test.js @@ -0,0 +1,90 @@ +import {calculateNearestTime} from './calculateNearestTime' + +test('5:00', () => { + const date = new Date() + date.setHours(5) + expect(calculateNearestTime(date)).toBe(9) +}) + +test('7:00', () => { + const date = new Date() + date.setHours(7) + expect(calculateNearestTime(date)).toBe(9) +}) + +test('7:41', () => { + const date = new Date() + date.setHours(7) + date.setMinutes(41) + expect(calculateNearestTime(date)).toBe(9) +}) + +test('9:00', () => { + const date = new Date() + date.setHours(9) + date.setMinutes(0) + expect(calculateNearestTime(date)).toBe(9) +}) + +test('10:00', () => { + const date = new Date() + date.setHours(10) + date.setMinutes(0) + expect(calculateNearestTime(date)).toBe(12) +}) + +test('12:00', () => { + const date = new Date() + date.setHours(12) + date.setMinutes(0) + expect(calculateNearestTime(date)).toBe(12) +}) + +test('13:00', () => { + const date = new Date() + date.setHours(13) + date.setMinutes(0) + expect(calculateNearestTime(date)).toBe(15) +}) + +test('15:00', () => { + const date = new Date() + date.setHours(15) + date.setMinutes(0) + expect(calculateNearestTime(date)).toBe(15) +}) + +test('16:00', () => { + const date = new Date() + date.setHours(16) + date.setMinutes(0) + expect(calculateNearestTime(date)).toBe(18) +}) + +test('18:00', () => { + const date = new Date() + date.setHours(18) + date.setMinutes(0) + expect(calculateNearestTime(date)).toBe(18) +}) + +test('19:00', () => { + const date = new Date() + date.setHours(19) + date.setMinutes(0) + expect(calculateNearestTime(date)).toBe(21) +}) + +test('22:00', () => { + const date = new Date() + date.setHours(22) + date.setMinutes(0) + expect(calculateNearestTime(date)).toBe(9) +}) + +test('22:40', () => { + const date = new Date() + date.setHours(22) + date.setMinutes(0) + expect(calculateNearestTime(date)).toBe(9) +})