diff --git a/get-cycle-day-number.js b/get-cycle-day-number.js index b45c4ae6fe975262b3ed0aa33ae216f887cf2e6e..e5ff21aaeaa36e69840819b1707f87d663f44280 100644 --- a/get-cycle-day-number.js +++ b/get-cycle-day-number.js @@ -16,7 +16,13 @@ export default function config(opts = {}) { return day }) - const firstBleedingDayBeforeTargetDayIndex = withWrappedDates.findIndex(day => day.wrappedDate.isBefore(targetDate)) + const firstBleedingDayBeforeTargetDayIndex = withWrappedDates.findIndex(day => { + return ( + day.wrappedDate.isEqual(targetDate) || + day.wrappedDate.isBefore(targetDate) + ) + }) + if (firstBleedingDayBeforeTargetDayIndex < 0) return null const previousBleedingDays = withWrappedDates.slice(firstBleedingDayBeforeTargetDayIndex) diff --git a/test/get-cycle-day.spec.js b/test/get-cycle-day.spec.js index fa6f27a7569c62ecd494a96e223776768a69c53e..222d62e95fdf92ba56085fac0738310176cba2a9 100644 --- a/test/get-cycle-day.spec.js +++ b/test/get-cycle-day.spec.js @@ -78,6 +78,20 @@ describe('getCycleDay', () => { const result = getCycleDayNumber(targetDate) expect(result).to.eql(18) }) + + it('gets the correct number if the target day is the only bleeding day', () => { + const bleedingDays = [{ + date: '2018-05-13', + bleeding: { + value: 2 + } + }] + + const targetDate = '2018-05-13' + const getCycleDayNumber = getCycleDayNumberModule({bleedingDaysSortedByDate: bleedingDays}) + const result = getCycleDayNumber(targetDate) + expect(result).to.eql(1) + }) }) describe('getCycleDay returns null', () => {