From 9922b2e7b8b9a53404d1fa5d104d68727af6ca0e Mon Sep 17 00:00:00 2001 From: Julia Friesel <julia.friesel@gmail.com> Date: Mon, 11 Jun 2018 14:56:34 +0200 Subject: [PATCH] Fix bug for just one bleeding day --- get-cycle-day-number.js | 8 +++++++- test/get-cycle-day.spec.js | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/get-cycle-day-number.js b/get-cycle-day-number.js index b45c4ae6..e5ff21aa 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 fa6f27a7..222d62e9 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', () => { -- GitLab