diff --git a/e2e-tests/tests/plans.test.ts b/e2e-tests/tests/plans.test.ts index 44c657506c..9b774adac5 100644 --- a/e2e-tests/tests/plans.test.ts +++ b/e2e-tests/tests/plans.test.ts @@ -83,7 +83,7 @@ test.describe.serial('Plans', () => { await plans.fillInputStartTime(); const endTime = await plans.inputEndTime.inputValue(); - expect(endTime).toEqual(plans.startTime); + expect(endTime).toEqual('2022-002T00:00:00'); }); test('Entering an invalid start should not prepopulate the end time', async () => { diff --git a/src/routes/plans/+page.svelte b/src/routes/plans/+page.svelte index 4cca977b60..5764d6d1c4 100644 --- a/src/routes/plans/+page.svelte +++ b/src/routes/plans/+page.svelte @@ -34,7 +34,7 @@ import { removeQueryParam } from '../../utilities/generic'; import { permissionHandler } from '../../utilities/permissionHandler'; import { featurePermissions } from '../../utilities/permissions'; - import { convertUsToDurationString, getShortISOForDate, getUnixEpochTime } from '../../utilities/time'; + import { convertUsToDurationString, getDoyTime, getShortISOForDate, getUnixEpochTime } from '../../utilities/time'; import { min, required, timestamp } from '../../utilities/validators'; import type { PageData } from './$types'; @@ -293,10 +293,15 @@ goto(`${base}/plans/${plan.id}`); } - function onStartTimeChanged() { + async function onStartTimeChanged() { if ($startTimeDoyField.value && $startTimeDoyField.valid && $endTimeDoyField.value === '') { - endTimeDoyField.set($startTimeDoyField); + // Set end time as start time plus a day by default + const startTimeDate = new Date(getUnixEpochTime($startTimeDoyField.value)); + startTimeDate.setDate(startTimeDate.getDate() + 1); + const newEndTimeDoy = getDoyTime(startTimeDate, false); + await endTimeDoyField.validateAndSet(newEndTimeDoy); } + updateDurationString(); }