diff --git a/src/utils/TimeSlots.js b/src/utils/TimeSlots.js index ce9bc06b1..1b962ac81 100644 --- a/src/utils/TimeSlots.js +++ b/src/utils/TimeSlots.js @@ -131,7 +131,7 @@ export function getSlotMetrics({ min: start, max: end, step, timeslots }) { const rangeStartMin = positionFromDate(rangeStart) const rangeEndMin = positionFromDate(rangeEnd) const top = - rangeEndMin - rangeStartMin < step && !dates.eq(end, rangeEnd) + rangeEndMin > step * (numSlots - 1) && !dates.eq(end, rangeEnd) ? ((rangeStartMin - step) / (step * numSlots)) * 100 : (rangeStartMin / (step * numSlots)) * 100 diff --git a/test/utils/TimeSlots.test.js b/test/utils/TimeSlots.test.js index 9ec0d2971..770ec2dfc 100644 --- a/test/utils/TimeSlots.test.js +++ b/test/utils/TimeSlots.test.js @@ -2,8 +2,8 @@ import { getSlotMetrics } from '../../src/utils/TimeSlots' import * as dates from '../../src/utils/dates' describe('getSlotMetrics', () => { - const min = dates.startOf(new Date(), 'day') - const max = dates.endOf(new Date(), 'day') + const min = dates.startOf(new Date(2018, 0, 29, 0, 0, 0), 'day') + const max = dates.endOf(new Date(2018, 0, 29, 59, 59, 59), 'day') const slotMetrics = getSlotMetrics({ min, max, step: 60, timeslots: 1 }) test('getSlotMetrics.closestSlotToPosition: always returns timeslot if valid percentage is given', () => { expect(slotMetrics.closestSlotToPosition(0)).toBeDefined() @@ -24,8 +24,8 @@ describe('getSlotMetrics', () => { }) describe('getRange', () => { - const min = dates.startOf(new Date(), 'day') - const max = dates.endOf(new Date(), 'day') + const min = dates.startOf(new Date(2018, 0, 29, 0, 0, 0), 'day') + const max = dates.endOf(new Date(2018, 0, 29, 59, 59, 59), 'day') const slotMetrics = getSlotMetrics({ min, max, step: 60, timeslots: 1 }) test('getRange: 15 minute start of day appointment stays within calendar', () => {