From 2b8569d6d079c5b9dc90948d8674dfdccff160c9 Mon Sep 17 00:00:00 2001 From: Julia Friesel Date: Mon, 4 Jun 2018 15:08:10 +0200 Subject: [PATCH] Exclude excluded bleedings --- get-cycle-day-number.js | 2 +- test/get-cycle-day.spec.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/get-cycle-day-number.js b/get-cycle-day-number.js index ff07b0c..30b56b8 100644 --- a/get-cycle-day-number.js +++ b/get-cycle-day-number.js @@ -42,5 +42,5 @@ function findLastFirstBleedingDay(cycleDays) { function isBleedingDay(cycleDay) { return cycleDay.bleeding && cycleDay.bleeding.value - && !cycleDay.exclude + && !cycleDay.bleeding.exclude } \ No newline at end of file diff --git a/test/get-cycle-day.spec.js b/test/get-cycle-day.spec.js index a5572fd..a7d3a1f 100644 --- a/test/get-cycle-day.spec.js +++ b/test/get-cycle-day.spec.js @@ -109,6 +109,34 @@ describe('getCycleDay returns the cycle day', () => { const result = getCycleDayNumber(cycleDays, targetDate) expect(result).to.eql(9) }) + + it('if some bleedings are exluded', function () { + const cycleDays = [{ + date: moment([2018, 5, 2]) + }, { + date: moment([2018, 5, 3]), + bleeding: { + value: 2 + } + }, { + date: moment([2018, 5, 4]) + }, { + date: moment([2018, 5, 9]), + bleeding: { + value: 2, + exclude: true + } + }, { + date: moment([2018, 5, 10]), + bleeding: { + value: 2, + exclude: true + } + }] + const targetDate = moment([2018, 5, 17]) + const result = getCycleDayNumber(cycleDays, targetDate) + expect(result).to.eql(15) + }) }) describe('getCycleDay returns undefined', () => {