From df2806648ab6b573d277a338f76fb199cdd307a2 Mon Sep 17 00:00:00 2001 From: Andreas Eriksson Date: Fri, 3 Dec 2021 21:12:16 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Show=20the=20weekday=20on?= =?UTF-8?q?=20startpage=20if=20not=20today?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/childListItem.component.tsx | 2 +- .../utils/__tests__/calendarHelpers.test.ts | 39 +++++++++++++++++++ .../utils/calendarHelpers.ts | 10 ++++- 3 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 apps/skolplattformen-app/utils/__tests__/calendarHelpers.test.ts diff --git a/apps/skolplattformen-app/components/childListItem.component.tsx b/apps/skolplattformen-app/components/childListItem.component.tsx index b259457c..8df5de92 100644 --- a/apps/skolplattformen-app/components/childListItem.component.tsx +++ b/apps/skolplattformen-app/components/childListItem.component.tsx @@ -172,7 +172,7 @@ export const ChildListItem = ({ /> - {currentDate.hour() > 17 && currentDate.hour() <= 23 ? ( + {moment().weekday() !== currentDate.weekday() ? ( {capitalizeFirstLetter(currentDate.format('dddd'))} diff --git a/apps/skolplattformen-app/utils/__tests__/calendarHelpers.test.ts b/apps/skolplattformen-app/utils/__tests__/calendarHelpers.test.ts new file mode 100644 index 00000000..bbe6af63 --- /dev/null +++ b/apps/skolplattformen-app/utils/__tests__/calendarHelpers.test.ts @@ -0,0 +1,39 @@ +import moment from 'moment' +import { getMeaningfulStartingDate } from '../calendarHelpers' + +const tuesdayMorning = moment('2021-11-30T08:20:00+0100') +const tuesdayEvening = moment('2021-11-30T19:20:26+0100') +const wednesdayEvening = moment('2021-12-01T19:20:26+0100') +const fridayEvening = moment('2021-12-03T19:20:26+0100') +const saturdayEvening = moment('2021-12-04T19:20:26+0100') +const sundayEvening = moment('2021-12-05T19:20:26+0100') +const mondayEvening = moment('2021-12-06T19:20:26+0100') + +describe('getMeaningfulStartingDate on weekends', () => { + it('should give next monday if on friday evening', () => { + const startDate = getMeaningfulStartingDate(fridayEvening) + expect(startDate.toISOString()).toEqual(mondayEvening.toISOString()) + }) + + it('should give next monday if on saturday', () => { + const startDate = getMeaningfulStartingDate(saturdayEvening) + expect(startDate.toISOString()).toEqual(mondayEvening.toISOString()) + }) + + it('should give next monday if on sunday', () => { + const startDate = getMeaningfulStartingDate(sundayEvening) + expect(startDate.toISOString()).toEqual(mondayEvening.toISOString()) + }) +}) + +describe('getMeaningfulStartingDate on weekdays', () => { + it('should give next day if on tuesday evening', () => { + const startDate = getMeaningfulStartingDate(tuesdayEvening) + expect(startDate.toISOString()).toEqual(wednesdayEvening.toISOString()) + }) + + it('should give same day if on tuesday morning', () => { + const startDate = getMeaningfulStartingDate(tuesdayMorning) + expect(startDate.toISOString()).toEqual(tuesdayMorning.toISOString()) + }) +}) diff --git a/apps/skolplattformen-app/utils/calendarHelpers.ts b/apps/skolplattformen-app/utils/calendarHelpers.ts index 335d74d9..6b0c6ce8 100644 --- a/apps/skolplattformen-app/utils/calendarHelpers.ts +++ b/apps/skolplattformen-app/utils/calendarHelpers.ts @@ -1,9 +1,17 @@ import moment from 'moment' export const getMeaningfulStartingDate = (date = moment()) => { + const originalDate = date.clone() // are we on the evening? if (date.hour() > 17) date = date.add('1', 'day') // are we on the weekend - if (date.isoWeekday() > 5) date = date.add(5, 'days').startOf('isoWeek') + if (date.isoWeekday() > 5) { + date = date.add(5, 'days').startOf('isoWeek') + date + .hour(originalDate.hour()) + .minute(originalDate.minute()) + .second(originalDate.second()) + } + return date }