Merge branch 'chore/retire-dirty-chai' into 'main'
Chore/retire dirty chai See merge request bloodyhealth/drip!436
This commit is contained in:
Generated
-6
@@ -3045,12 +3045,6 @@
|
|||||||
"integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==",
|
"integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"dirty-chai": {
|
|
||||||
"version": "2.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/dirty-chai/-/dirty-chai-2.0.1.tgz",
|
|
||||||
"integrity": "sha512-ys79pWKvDMowIDEPC6Fig8d5THiC0DJ2gmTeGzVAoEH18J8OzLud0Jh7I9IWg3NSk8x2UocznUuFmfHCXYZx9w==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"doctrine": {
|
"doctrine": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
|
||||||
|
|||||||
@@ -70,7 +70,6 @@
|
|||||||
"babel-jest": "^24.9.0",
|
"babel-jest": "^24.9.0",
|
||||||
"basic-changelog": "gitlab:bloodyhealth/basic-changelog",
|
"basic-changelog": "gitlab:bloodyhealth/basic-changelog",
|
||||||
"chai": "^4.1.2",
|
"chai": "^4.1.2",
|
||||||
"dirty-chai": "^2.0.1",
|
|
||||||
"eslint": "^6.4.0",
|
"eslint": "^6.4.0",
|
||||||
"eslint-plugin-react": "^7.8.2",
|
"eslint-plugin-react": "^7.8.2",
|
||||||
"husky": "^8.0.0",
|
"husky": "^8.0.0",
|
||||||
|
|||||||
@@ -1,17 +1,9 @@
|
|||||||
import chai from 'chai'
|
import { expect } from 'chai'
|
||||||
import dirtyChai from 'dirty-chai'
|
|
||||||
import cycleModule from '../lib/cycle'
|
import cycleModule from '../lib/cycle'
|
||||||
|
|
||||||
const { expect } = chai
|
|
||||||
chai.use(dirtyChai)
|
|
||||||
|
|
||||||
const cycleStartDay = { date: '2018-05-03' }
|
const cycleStartDay = { date: '2018-05-03' }
|
||||||
|
|
||||||
const cycle = [
|
const cycle = [{ date: '2018-05-05' }, { date: '2018-05-04' }, cycleStartDay]
|
||||||
{ date: '2018-05-05' },
|
|
||||||
{ date: '2018-05-04' },
|
|
||||||
cycleStartDay,
|
|
||||||
]
|
|
||||||
|
|
||||||
const cycleDaysSortedByDate = [
|
const cycleDaysSortedByDate = [
|
||||||
{ date: '2018-07-05' },
|
{ date: '2018-07-05' },
|
||||||
@@ -32,7 +24,6 @@ const cycleStartsSortedByDate = [
|
|||||||
|
|
||||||
describe('getCycleByStartDay', () => {
|
describe('getCycleByStartDay', () => {
|
||||||
it('gets cycle by cycle start day', () => {
|
it('gets cycle by cycle start day', () => {
|
||||||
|
|
||||||
const { getCycleByStartDay } = cycleModule({
|
const { getCycleByStartDay } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
cycleStartsSortedByDate,
|
cycleStartsSortedByDate,
|
||||||
|
|||||||
@@ -1,14 +1,7 @@
|
|||||||
import chai from 'chai'
|
import { expect } from 'chai'
|
||||||
import dirtyChai from 'dirty-chai'
|
|
||||||
import cycleModule from '../lib/cycle'
|
import cycleModule from '../lib/cycle'
|
||||||
|
|
||||||
const { expect } = chai
|
const simpleCycleStarts = [{ date: '2018-05-09' }, { date: '2018-05-03' }]
|
||||||
chai.use(dirtyChai)
|
|
||||||
|
|
||||||
const simpleCycleStarts = [
|
|
||||||
{ date: '2018-05-09' },
|
|
||||||
{ date: '2018-05-03'},
|
|
||||||
]
|
|
||||||
|
|
||||||
describe('getCycleDayNumber', () => {
|
describe('getCycleDayNumber', () => {
|
||||||
it('works for a date in the current cycle', () => {
|
it('works for a date in the current cycle', () => {
|
||||||
@@ -22,7 +15,7 @@ describe('getCycleDayNumber', () => {
|
|||||||
it('works for a date which is not in the current cycle', () => {
|
it('works for a date which is not in the current cycle', () => {
|
||||||
const cycleStartsSortedByDate = [
|
const cycleStartsSortedByDate = [
|
||||||
{ date: '2018-05-13' },
|
{ date: '2018-05-13' },
|
||||||
{ date: '2018-04-10'}
|
{ date: '2018-04-10' },
|
||||||
]
|
]
|
||||||
const date = '2018-04-27'
|
const date = '2018-04-27'
|
||||||
const { getCycleDayNumber } = cycleModule({ cycleStartsSortedByDate })
|
const { getCycleDayNumber } = cycleModule({ cycleStartsSortedByDate })
|
||||||
@@ -31,9 +24,7 @@ describe('getCycleDayNumber', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('works for a date which is the first and only day in cycle', () => {
|
it('works for a date which is the first and only day in cycle', () => {
|
||||||
const cycleStartsSortedByDate = [
|
const cycleStartsSortedByDate = [{ date: '2018-05-13' }]
|
||||||
{ date: '2018-05-13' }
|
|
||||||
]
|
|
||||||
const date = '2018-05-13'
|
const date = '2018-05-13'
|
||||||
const { getCycleDayNumber } = cycleModule({ cycleStartsSortedByDate })
|
const { getCycleDayNumber } = cycleModule({ cycleStartsSortedByDate })
|
||||||
|
|
||||||
@@ -45,7 +36,7 @@ describe('getCycleDayNumber', () => {
|
|||||||
const date = '2018-05-17'
|
const date = '2018-05-17'
|
||||||
const { getCycleDayNumber } = cycleModule({ cycleStartsSortedByDate })
|
const { getCycleDayNumber } = cycleModule({ cycleStartsSortedByDate })
|
||||||
|
|
||||||
expect(getCycleDayNumber(date)).to.be.null()
|
expect(getCycleDayNumber(date)).to.be.null
|
||||||
})
|
})
|
||||||
|
|
||||||
it('returns null if the cycle is longer than the max', function () {
|
it('returns null if the cycle is longer than the max', function () {
|
||||||
@@ -54,6 +45,6 @@ describe('getCycleDayNumber', () => {
|
|||||||
const date = '2018-08-16'
|
const date = '2018-08-16'
|
||||||
const { getCycleDayNumber } = cycleModule({ cycleStartsSortedByDate })
|
const { getCycleDayNumber } = cycleModule({ cycleStartsSortedByDate })
|
||||||
|
|
||||||
expect(getCycleDayNumber(date)).to.be.null()
|
expect(getCycleDayNumber(date)).to.be.null
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,61 +1,52 @@
|
|||||||
import chai from 'chai'
|
import { expect } from 'chai'
|
||||||
import dirtyChai from 'dirty-chai'
|
|
||||||
import cycleModule from '../lib/cycle'
|
import cycleModule from '../lib/cycle'
|
||||||
|
|
||||||
const { expect } = chai
|
|
||||||
chai.use(dirtyChai)
|
|
||||||
|
|
||||||
describe('getCycleForDay', () => {
|
describe('getCycleForDay', () => {
|
||||||
const cycleDaysSortedByDate = [
|
const cycleDaysSortedByDate = [
|
||||||
{
|
{
|
||||||
date: '2018-07-05',
|
date: '2018-07-05',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-06-05',
|
date: '2018-06-05',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-05',
|
date: '2018-05-05',
|
||||||
mucus: { value: 2 }
|
mucus: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-04',
|
date: '2018-05-04',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-03',
|
date: '2018-05-03',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-05',
|
date: '2018-04-05',
|
||||||
mucus: { value: 2 }
|
mucus: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-04',
|
date: '2018-04-04',
|
||||||
mucus: { value: 2 }
|
mucus: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-03',
|
date: '2018-04-03',
|
||||||
mucus: { value: 2 }
|
mucus: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-02',
|
date: '2018-04-02',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
const cycleStarts = [
|
const cycleStarts = ['2018-07-05', '2018-06-05', '2018-05-03', '2018-04-02']
|
||||||
'2018-07-05',
|
|
||||||
'2018-06-05',
|
|
||||||
'2018-05-03',
|
|
||||||
'2018-04-02'
|
|
||||||
]
|
|
||||||
|
|
||||||
const { getCycleForDay } = cycleModule({
|
const { getCycleForDay } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
cycleStartsSortedByDate: cycleDaysSortedByDate.filter(d => {
|
cycleStartsSortedByDate: cycleDaysSortedByDate.filter((d) => {
|
||||||
return cycleStarts.includes(d.date)
|
return cycleStarts.includes(d.date)
|
||||||
})
|
}),
|
||||||
})
|
})
|
||||||
|
|
||||||
it('gets cycle that has only one day', () => {
|
it('gets cycle that has only one day', () => {
|
||||||
@@ -64,16 +55,16 @@ describe('getCycleForDay', () => {
|
|||||||
expect(result).to.eql([
|
expect(result).to.eql([
|
||||||
{
|
{
|
||||||
date: '2018-07-05',
|
date: '2018-07-05',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
}
|
},
|
||||||
])
|
])
|
||||||
const result2 = getCycleForDay('2018-06-05')
|
const result2 = getCycleForDay('2018-06-05')
|
||||||
expect(result2.length).to.eql(1)
|
expect(result2.length).to.eql(1)
|
||||||
expect(result2).to.eql([
|
expect(result2).to.eql([
|
||||||
{
|
{
|
||||||
date: '2018-06-05',
|
date: '2018-06-05',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
}
|
},
|
||||||
])
|
])
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -83,8 +74,8 @@ describe('getCycleForDay', () => {
|
|||||||
expect(result).to.eql([
|
expect(result).to.eql([
|
||||||
{
|
{
|
||||||
date: '2018-06-05',
|
date: '2018-06-05',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
}
|
},
|
||||||
])
|
])
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -96,10 +87,10 @@ describe('getCycleForDay', () => {
|
|||||||
it('returns null if the cycle is longer than the max', () => {
|
it('returns null if the cycle is longer than the max', () => {
|
||||||
const { getCycleForDay } = cycleModule({
|
const { getCycleForDay } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
cycleStartsSortedByDate: cycleDaysSortedByDate.filter(d => {
|
cycleStartsSortedByDate: cycleDaysSortedByDate.filter((d) => {
|
||||||
return cycleStarts.includes(d.date)
|
return cycleStarts.includes(d.date)
|
||||||
}),
|
}),
|
||||||
maxCycleLength: 3
|
maxCycleLength: 3,
|
||||||
})
|
})
|
||||||
const result = getCycleForDay('2018-04-04')
|
const result = getCycleForDay('2018-04-04')
|
||||||
expect(result).to.eql(null)
|
expect(result).to.eql(null)
|
||||||
@@ -111,19 +102,19 @@ describe('getCycleForDay', () => {
|
|||||||
expect(result).to.eql([
|
expect(result).to.eql([
|
||||||
{
|
{
|
||||||
date: '2018-04-05',
|
date: '2018-04-05',
|
||||||
mucus: { value: 2 }
|
mucus: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-04',
|
date: '2018-04-04',
|
||||||
mucus: { value: 2 }
|
mucus: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-03',
|
date: '2018-04-03',
|
||||||
mucus: { value: 2 }
|
mucus: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-02',
|
date: '2018-04-02',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,10 +1,6 @@
|
|||||||
import chai from 'chai'
|
import { expect } from 'chai'
|
||||||
import dirtyChai from 'dirty-chai'
|
|
||||||
import cycleModule from '../lib/cycle'
|
import cycleModule from '../lib/cycle'
|
||||||
|
|
||||||
const { expect } = chai
|
|
||||||
chai.use(dirtyChai)
|
|
||||||
|
|
||||||
const julyCycle = [{ date: '2018-07-05' }]
|
const julyCycle = [{ date: '2018-07-05' }]
|
||||||
const juneCycle = [{ date: '2018-06-05' }]
|
const juneCycle = [{ date: '2018-06-05' }]
|
||||||
const mayCycle = [
|
const mayCycle = [
|
||||||
@@ -35,7 +31,6 @@ const cycleStartsSortedByDate = [
|
|||||||
|
|
||||||
describe('getCyclesBefore', () => {
|
describe('getCyclesBefore', () => {
|
||||||
it('gets previous cycles', () => {
|
it('gets previous cycles', () => {
|
||||||
|
|
||||||
const { getCyclesBefore } = cycleModule({
|
const { getCyclesBefore } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
cycleStartsSortedByDate,
|
cycleStartsSortedByDate,
|
||||||
@@ -43,19 +38,18 @@ describe('getCyclesBefore', () => {
|
|||||||
const cyclesBeforeJuly = getCyclesBefore(...julyCycle)
|
const cyclesBeforeJuly = getCyclesBefore(...julyCycle)
|
||||||
|
|
||||||
expect(cyclesBeforeJuly.length).to.eql(3)
|
expect(cyclesBeforeJuly.length).to.eql(3)
|
||||||
expect(cyclesBeforeJuly).to.eql([ juneCycle, mayCycle, aprilCycle ])
|
expect(cyclesBeforeJuly).to.eql([juneCycle, mayCycle, aprilCycle])
|
||||||
})
|
})
|
||||||
|
|
||||||
it('skips cycles that are longer than max', () => {
|
it('skips cycles that are longer than max', () => {
|
||||||
|
|
||||||
const { getCyclesBefore } = cycleModule({
|
const { getCyclesBefore } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
cycleStartsSortedByDate,
|
cycleStartsSortedByDate,
|
||||||
maxCycleLength: 30
|
maxCycleLength: 30,
|
||||||
})
|
})
|
||||||
const cyclesBeforeJuly = getCyclesBefore(...julyCycle)
|
const cyclesBeforeJuly = getCyclesBefore(...julyCycle)
|
||||||
|
|
||||||
expect(cyclesBeforeJuly.length).to.eql(1)
|
expect(cyclesBeforeJuly.length).to.eql(1)
|
||||||
expect(cyclesBeforeJuly).to.eql([ juneCycle ])
|
expect(cyclesBeforeJuly).to.eql([juneCycle])
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,10 +1,6 @@
|
|||||||
import chai from 'chai'
|
import { expect } from 'chai'
|
||||||
import dirtyChai from 'dirty-chai'
|
|
||||||
import cycleModule from '../lib/cycle'
|
import cycleModule from '../lib/cycle'
|
||||||
|
|
||||||
const expect = chai.expect
|
|
||||||
chai.use(dirtyChai)
|
|
||||||
|
|
||||||
describe('getMensesDaysRightAfter', () => {
|
describe('getMensesDaysRightAfter', () => {
|
||||||
it('works for simple menses start', () => {
|
it('works for simple menses start', () => {
|
||||||
const cycleDaysSortedByDate = [
|
const cycleDaysSortedByDate = [
|
||||||
@@ -13,35 +9,35 @@ describe('getMensesDaysRightAfter', () => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-03',
|
date: '2018-05-03',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-02',
|
date: '2018-05-02',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-01',
|
date: '2018-05-01',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-30',
|
date: '2018-04-30',
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const { getMensesDaysRightAfter } = cycleModule({
|
const { getMensesDaysRightAfter } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
|
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter((d) => d.bleeding),
|
||||||
})
|
})
|
||||||
const days = getMensesDaysRightAfter(cycleDaysSortedByDate[3])
|
const days = getMensesDaysRightAfter(cycleDaysSortedByDate[3])
|
||||||
expect(days).to.eql([
|
expect(days).to.eql([
|
||||||
{
|
{
|
||||||
date: '2018-05-03',
|
date: '2018-05-03',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-02',
|
date: '2018-05-02',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
}
|
},
|
||||||
])
|
])
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -52,40 +48,40 @@ describe('getMensesDaysRightAfter', () => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-03',
|
date: '2018-05-03',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-02',
|
date: '2018-05-02',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-01',
|
date: '2018-05-01',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-30',
|
date: '2018-04-30',
|
||||||
bleeding: null
|
bleeding: null,
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const { getMensesDaysRightAfter } = cycleModule({
|
const { getMensesDaysRightAfter } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
|
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter((d) => d.bleeding),
|
||||||
})
|
})
|
||||||
const days = getMensesDaysRightAfter(cycleDaysSortedByDate[4])
|
const days = getMensesDaysRightAfter(cycleDaysSortedByDate[4])
|
||||||
expect(days).to.eql([
|
expect(days).to.eql([
|
||||||
{
|
{
|
||||||
date: '2018-05-03',
|
date: '2018-05-03',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-02',
|
date: '2018-05-02',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-01',
|
date: '2018-05-01',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
}
|
},
|
||||||
])
|
])
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -96,31 +92,31 @@ describe('getMensesDaysRightAfter', () => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-03',
|
date: '2018-05-03',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-02',
|
date: '2018-05-02',
|
||||||
bleeding: { value: 1, exclude: true }
|
bleeding: { value: 1, exclude: true },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-01',
|
date: '2018-05-01',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-30',
|
date: '2018-04-30',
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const { getMensesDaysRightAfter } = cycleModule({
|
const { getMensesDaysRightAfter } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
|
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter((d) => d.bleeding),
|
||||||
})
|
})
|
||||||
const days = getMensesDaysRightAfter(cycleDaysSortedByDate[3])
|
const days = getMensesDaysRightAfter(cycleDaysSortedByDate[3])
|
||||||
expect(days).to.eql([
|
expect(days).to.eql([
|
||||||
{
|
{
|
||||||
date: '2018-05-03',
|
date: '2018-05-03',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
}
|
},
|
||||||
])
|
])
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -137,16 +133,16 @@ describe('getMensesDaysRightAfter', () => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-01',
|
date: '2018-05-01',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-30',
|
date: '2018-04-30',
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const { getMensesDaysRightAfter } = cycleModule({
|
const { getMensesDaysRightAfter } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
|
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter((d) => d.bleeding),
|
||||||
})
|
})
|
||||||
const days = getMensesDaysRightAfter(cycleDaysSortedByDate[3])
|
const days = getMensesDaysRightAfter(cycleDaysSortedByDate[3])
|
||||||
expect(days).to.eql([])
|
expect(days).to.eql([])
|
||||||
@@ -156,7 +152,7 @@ describe('getMensesDaysRightAfter', () => {
|
|||||||
const cycleDaysSortedByDate = [
|
const cycleDaysSortedByDate = [
|
||||||
{
|
{
|
||||||
date: '2018-05-04',
|
date: '2018-05-04',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-03',
|
date: '2018-05-03',
|
||||||
@@ -166,16 +162,16 @@ describe('getMensesDaysRightAfter', () => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-01',
|
date: '2018-05-01',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-30',
|
date: '2018-04-30',
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const { getMensesDaysRightAfter } = cycleModule({
|
const { getMensesDaysRightAfter } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
|
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter((d) => d.bleeding),
|
||||||
})
|
})
|
||||||
const days = getMensesDaysRightAfter(cycleDaysSortedByDate[3])
|
const days = getMensesDaysRightAfter(cycleDaysSortedByDate[3])
|
||||||
expect(days).to.eql([])
|
expect(days).to.eql([])
|
||||||
@@ -188,77 +184,83 @@ describe('getMensesDaysRightAfter', () => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-05',
|
date: '2018-05-05',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-03',
|
date: '2018-05-03',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-01',
|
date: '2018-05-01',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-30',
|
date: '2018-04-30',
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const { getMensesDaysRightAfter } = cycleModule({
|
const { getMensesDaysRightAfter } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
|
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter((d) => d.bleeding),
|
||||||
})
|
})
|
||||||
const days = getMensesDaysRightAfter(cycleDaysSortedByDate[3])
|
const days = getMensesDaysRightAfter(cycleDaysSortedByDate[3])
|
||||||
expect(days).to.eql([
|
expect(days).to.eql([
|
||||||
{
|
{
|
||||||
date: '2018-05-05',
|
date: '2018-05-05',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-03',
|
date: '2018-05-03',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
}
|
},
|
||||||
])
|
])
|
||||||
})
|
})
|
||||||
describe('with cycle thresholds', () => {
|
describe('with cycle thresholds', () => {
|
||||||
const maxBreakInBleeding = 3
|
const maxBreakInBleeding = 3
|
||||||
|
|
||||||
it('disregards bleeding breaks shorter than maxAllowedBleedingBreak in a bleeding period', () => {
|
it('disregards bleeding breaks shorter than maxAllowedBleedingBreak in a bleeding period', () => {
|
||||||
const bleedingDays = [{
|
const bleedingDays = [
|
||||||
date: '2018-05-14',
|
{
|
||||||
bleeding: {
|
date: '2018-05-14',
|
||||||
value: 2
|
bleeding: {
|
||||||
}
|
value: 2,
|
||||||
}, {
|
},
|
||||||
date: '2018-05-10',
|
},
|
||||||
bleeding: {
|
{
|
||||||
value: 2
|
date: '2018-05-10',
|
||||||
}
|
bleeding: {
|
||||||
}]
|
value: 2,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
const getMensesDaysRightAfter = cycleModule({
|
const getMensesDaysRightAfter = cycleModule({
|
||||||
bleedingDaysSortedByDate: bleedingDays,
|
bleedingDaysSortedByDate: bleedingDays,
|
||||||
maxBreakInBleeding
|
maxBreakInBleeding,
|
||||||
}).getMensesDaysRightAfter
|
}).getMensesDaysRightAfter
|
||||||
const result = getMensesDaysRightAfter(bleedingDays[1])
|
const result = getMensesDaysRightAfter(bleedingDays[1])
|
||||||
expect(result).to.eql([bleedingDays[0]])
|
expect(result).to.eql([bleedingDays[0]])
|
||||||
})
|
})
|
||||||
|
|
||||||
it('counts bleeding breaks longer than maxAllowedBleedingBreak in a bleeding period', () => {
|
it('counts bleeding breaks longer than maxAllowedBleedingBreak in a bleeding period', () => {
|
||||||
const bleedingDays = [{
|
const bleedingDays = [
|
||||||
date: '2018-05-14',
|
{
|
||||||
bleeding: {
|
date: '2018-05-14',
|
||||||
value: 2
|
bleeding: {
|
||||||
}
|
value: 2,
|
||||||
}, {
|
},
|
||||||
date: '2018-05-09',
|
},
|
||||||
bleeding: {
|
{
|
||||||
value: 2
|
date: '2018-05-09',
|
||||||
}
|
bleeding: {
|
||||||
}]
|
value: 2,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
const getMensesDaysRightAfter = cycleModule({
|
const getMensesDaysRightAfter = cycleModule({
|
||||||
bleedingDaysSortedByDate: bleedingDays,
|
bleedingDaysSortedByDate: bleedingDays,
|
||||||
maxBreakInBleeding
|
maxBreakInBleeding,
|
||||||
}).getMensesDaysRightAfter
|
}).getMensesDaysRightAfter
|
||||||
const result = getMensesDaysRightAfter(bleedingDays[1])
|
const result = getMensesDaysRightAfter(bleedingDays[1])
|
||||||
expect(result).to.eql([])
|
expect(result).to.eql([])
|
||||||
|
|||||||
@@ -1,24 +1,22 @@
|
|||||||
import chai from 'chai'
|
import { expect } from 'chai'
|
||||||
import dirtyChai from 'dirty-chai'
|
|
||||||
import cycleModule from '../lib/cycle'
|
import cycleModule from '../lib/cycle'
|
||||||
|
|
||||||
const { expect } = chai
|
|
||||||
chai.use(dirtyChai)
|
|
||||||
|
|
||||||
describe('getPredictedMenses', () => {
|
describe('getPredictedMenses', () => {
|
||||||
describe('cannot predict next menses', () => {
|
describe('cannot predict next menses', () => {
|
||||||
it('if no bleeding is documented', () => {
|
it('if no bleeding is documented', () => {
|
||||||
const cycleDaysSortedByDate = [ {} ]
|
const cycleDaysSortedByDate = [{}]
|
||||||
const cycleStarts = []
|
const cycleStarts = []
|
||||||
|
|
||||||
const { getPredictedMenses } = cycleModule({
|
const { getPredictedMenses } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding),
|
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(
|
||||||
cycleStartsSortedByDate: cycleDaysSortedByDate.filter(d => {
|
(d) => d.bleeding
|
||||||
|
),
|
||||||
|
cycleStartsSortedByDate: cycleDaysSortedByDate.filter((d) => {
|
||||||
return cycleStarts.includes(d.date)
|
return cycleStarts.includes(d.date)
|
||||||
}),
|
}),
|
||||||
maxCycleLength: 99,
|
maxCycleLength: 99,
|
||||||
minCyclesForPrediction: 1
|
minCyclesForPrediction: 1,
|
||||||
})
|
})
|
||||||
const result = getPredictedMenses()
|
const result = getPredictedMenses()
|
||||||
expect(result).to.eql([])
|
expect(result).to.eql([])
|
||||||
@@ -28,19 +26,21 @@ describe('getPredictedMenses', () => {
|
|||||||
const cycleDaysSortedByDate = [
|
const cycleDaysSortedByDate = [
|
||||||
{
|
{
|
||||||
date: '2018-06-02',
|
date: '2018-06-02',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
const cycleStarts = ['2018-06-02']
|
const cycleStarts = ['2018-06-02']
|
||||||
|
|
||||||
const { getPredictedMenses } = cycleModule({
|
const { getPredictedMenses } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding),
|
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(
|
||||||
cycleStartsSortedByDate: cycleDaysSortedByDate.filter(d => {
|
(d) => d.bleeding
|
||||||
|
),
|
||||||
|
cycleStartsSortedByDate: cycleDaysSortedByDate.filter((d) => {
|
||||||
return cycleStarts.includes(d.date)
|
return cycleStarts.includes(d.date)
|
||||||
}),
|
}),
|
||||||
maxCycleLength: 99,
|
maxCycleLength: 99,
|
||||||
minCyclesForPrediction: 1
|
minCyclesForPrediction: 1,
|
||||||
})
|
})
|
||||||
const result = getPredictedMenses()
|
const result = getPredictedMenses()
|
||||||
expect(result).to.eql([])
|
expect(result).to.eql([])
|
||||||
@@ -50,23 +50,25 @@ describe('getPredictedMenses', () => {
|
|||||||
const cycleDaysSortedByDate = [
|
const cycleDaysSortedByDate = [
|
||||||
{
|
{
|
||||||
date: '2018-06-02',
|
date: '2018-06-02',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-06-01',
|
date: '2018-06-01',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-01',
|
date: '2018-05-01',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
const cycleStarts = ['2018-06-01', '2018-05-01']
|
const cycleStarts = ['2018-06-01', '2018-05-01']
|
||||||
|
|
||||||
const { getPredictedMenses } = cycleModule({
|
const { getPredictedMenses } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding),
|
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(
|
||||||
cycleStartsSortedByDate: cycleDaysSortedByDate.filter(d => {
|
(d) => d.bleeding
|
||||||
|
),
|
||||||
|
cycleStartsSortedByDate: cycleDaysSortedByDate.filter((d) => {
|
||||||
return cycleStarts.includes(d.date)
|
return cycleStarts.includes(d.date)
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
@@ -78,38 +80,40 @@ describe('getPredictedMenses', () => {
|
|||||||
const cycleDaysSortedByDate = [
|
const cycleDaysSortedByDate = [
|
||||||
{
|
{
|
||||||
date: '2018-06-02',
|
date: '2018-06-02',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-06-01',
|
date: '2018-06-01',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-01',
|
date: '2018-05-01',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-03',
|
date: '2018-04-03',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-02',
|
date: '2018-04-02',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-01',
|
date: '2018-04-01',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
const cycleStarts = ['2018-06-01', '2018-05-01', '2018-04-01']
|
const cycleStarts = ['2018-06-01', '2018-05-01', '2018-04-01']
|
||||||
|
|
||||||
const { getPredictedMenses } = cycleModule({
|
const { getPredictedMenses } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding),
|
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(
|
||||||
cycleStartsSortedByDate: cycleDaysSortedByDate.filter(d => {
|
(d) => d.bleeding
|
||||||
|
),
|
||||||
|
cycleStartsSortedByDate: cycleDaysSortedByDate.filter((d) => {
|
||||||
return cycleStarts.includes(d.date)
|
return cycleStarts.includes(d.date)
|
||||||
}),
|
}),
|
||||||
maxCycleLength: 2
|
maxCycleLength: 2,
|
||||||
})
|
})
|
||||||
const result = getPredictedMenses()
|
const result = getPredictedMenses()
|
||||||
expect(result).to.eql([])
|
expect(result).to.eql([])
|
||||||
@@ -120,44 +124,26 @@ describe('getPredictedMenses', () => {
|
|||||||
const cycleDaysSortedByDate = [
|
const cycleDaysSortedByDate = [
|
||||||
{
|
{
|
||||||
date: '2018-07-15',
|
date: '2018-07-15',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-07-01',
|
date: '2018-07-01',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
const cycleStarts = ['2018-07-15', '2018-07-01']
|
const cycleStarts = ['2018-07-15', '2018-07-01']
|
||||||
const { getPredictedMenses } = cycleModule({
|
const { getPredictedMenses } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
cycleStartsSortedByDate: cycleDaysSortedByDate.filter(d => {
|
cycleStartsSortedByDate: cycleDaysSortedByDate.filter((d) => {
|
||||||
return cycleStarts.includes(d.date)
|
return cycleStarts.includes(d.date)
|
||||||
}),
|
}),
|
||||||
minCyclesForPrediction: 1
|
minCyclesForPrediction: 1,
|
||||||
})
|
})
|
||||||
const result = getPredictedMenses()
|
const result = getPredictedMenses()
|
||||||
const expectedResult = [
|
const expectedResult = [
|
||||||
[
|
['2018-07-27', '2018-07-28', '2018-07-29', '2018-07-30', '2018-07-31'],
|
||||||
'2018-07-27',
|
['2018-08-10', '2018-08-11', '2018-08-12', '2018-08-13', '2018-08-14'],
|
||||||
'2018-07-28',
|
['2018-08-24', '2018-08-25', '2018-08-26', '2018-08-27', '2018-08-28'],
|
||||||
'2018-07-29',
|
|
||||||
'2018-07-30',
|
|
||||||
'2018-07-31'
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'2018-08-10',
|
|
||||||
'2018-08-11',
|
|
||||||
'2018-08-12',
|
|
||||||
'2018-08-13',
|
|
||||||
'2018-08-14',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'2018-08-24',
|
|
||||||
'2018-08-25',
|
|
||||||
'2018-08-26',
|
|
||||||
'2018-08-27',
|
|
||||||
'2018-08-28',
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
expect(result).to.eql(expectedResult)
|
expect(result).to.eql(expectedResult)
|
||||||
})
|
})
|
||||||
@@ -166,44 +152,32 @@ describe('getPredictedMenses', () => {
|
|||||||
const cycleDaysSortedByDate = [
|
const cycleDaysSortedByDate = [
|
||||||
{
|
{
|
||||||
date: '2018-08-02',
|
date: '2018-08-02',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-07-02',
|
date: '2018-07-02',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-06-01',
|
date: '2018-06-01',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-01',
|
date: '2018-05-01',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const { getPredictedMenses } = cycleModule({
|
const { getPredictedMenses } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
cycleStartsSortedByDate: cycleDaysSortedByDate,
|
cycleStartsSortedByDate: cycleDaysSortedByDate,
|
||||||
minCyclesForPrediction: 1
|
minCyclesForPrediction: 1,
|
||||||
})
|
})
|
||||||
const result = getPredictedMenses()
|
const result = getPredictedMenses()
|
||||||
const expectedResult = [
|
const expectedResult = [
|
||||||
[
|
['2018-09-01', '2018-09-02', '2018-09-03'],
|
||||||
'2018-09-01',
|
['2018-10-02', '2018-10-03', '2018-10-04'],
|
||||||
'2018-09-02',
|
['2018-11-02', '2018-11-03', '2018-11-04'],
|
||||||
'2018-09-03'
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'2018-10-02',
|
|
||||||
'2018-10-03',
|
|
||||||
'2018-10-04'
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'2018-11-02',
|
|
||||||
'2018-11-03',
|
|
||||||
'2018-11-04'
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
expect(result).to.eql(expectedResult)
|
expect(result).to.eql(expectedResult)
|
||||||
})
|
})
|
||||||
@@ -212,43 +186,31 @@ describe('getPredictedMenses', () => {
|
|||||||
const cycleDaysSortedByDate = [
|
const cycleDaysSortedByDate = [
|
||||||
{
|
{
|
||||||
date: '2018-08-01',
|
date: '2018-08-01',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-07-18',
|
date: '2018-07-18',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-07-05',
|
date: '2018-07-05',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-06-20',
|
date: '2018-06-20',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const { getPredictedMenses } = cycleModule({
|
const { getPredictedMenses } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
cycleStartsSortedByDate: cycleDaysSortedByDate
|
cycleStartsSortedByDate: cycleDaysSortedByDate,
|
||||||
})
|
})
|
||||||
const result = getPredictedMenses()
|
const result = getPredictedMenses()
|
||||||
const expectedResult = [
|
const expectedResult = [
|
||||||
[
|
['2018-08-14', '2018-08-15', '2018-08-16'],
|
||||||
'2018-08-14',
|
['2018-08-28', '2018-08-29', '2018-08-30'],
|
||||||
'2018-08-15',
|
['2018-09-11', '2018-09-12', '2018-09-13'],
|
||||||
'2018-08-16'
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'2018-08-28',
|
|
||||||
'2018-08-29',
|
|
||||||
'2018-08-30'
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'2018-09-11',
|
|
||||||
'2018-09-12',
|
|
||||||
'2018-09-13'
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
expect(result).to.eql(expectedResult)
|
expect(result).to.eql(expectedResult)
|
||||||
})
|
})
|
||||||
@@ -257,49 +219,31 @@ describe('getPredictedMenses', () => {
|
|||||||
const cycleDaysSortedByDate = [
|
const cycleDaysSortedByDate = [
|
||||||
{
|
{
|
||||||
date: '2018-08-01',
|
date: '2018-08-01',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-07-14',
|
date: '2018-07-14',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-07-04',
|
date: '2018-07-04',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-06-20',
|
date: '2018-06-20',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const { getPredictedMenses } = cycleModule({
|
const { getPredictedMenses } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
cycleStartsSortedByDate: cycleDaysSortedByDate
|
cycleStartsSortedByDate: cycleDaysSortedByDate,
|
||||||
})
|
})
|
||||||
const result = getPredictedMenses()
|
const result = getPredictedMenses()
|
||||||
const expectedResult = [
|
const expectedResult = [
|
||||||
[
|
['2018-08-13', '2018-08-14', '2018-08-15', '2018-08-16', '2018-08-17'],
|
||||||
'2018-08-13',
|
['2018-08-27', '2018-08-28', '2018-08-29', '2018-08-30', '2018-08-31'],
|
||||||
'2018-08-14',
|
['2018-09-10', '2018-09-11', '2018-09-12', '2018-09-13', '2018-09-14'],
|
||||||
'2018-08-15',
|
|
||||||
'2018-08-16',
|
|
||||||
'2018-08-17',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'2018-08-27',
|
|
||||||
'2018-08-28',
|
|
||||||
'2018-08-29',
|
|
||||||
'2018-08-30',
|
|
||||||
'2018-08-31',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'2018-09-10',
|
|
||||||
'2018-09-11',
|
|
||||||
'2018-09-12',
|
|
||||||
'2018-09-13',
|
|
||||||
'2018-09-14',
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
expect(result).to.eql(expectedResult)
|
expect(result).to.eql(expectedResult)
|
||||||
})
|
})
|
||||||
@@ -308,54 +252,36 @@ describe('getPredictedMenses', () => {
|
|||||||
const cycleDaysSortedByDate = [
|
const cycleDaysSortedByDate = [
|
||||||
{
|
{
|
||||||
date: '2018-08-01',
|
date: '2018-08-01',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-07-14',
|
date: '2018-07-14',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-07-04',
|
date: '2018-07-04',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-06-20',
|
date: '2018-06-20',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-20',
|
date: '2018-04-20',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const { getPredictedMenses } = cycleModule({
|
const { getPredictedMenses } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
cycleStartsSortedByDate: cycleDaysSortedByDate,
|
cycleStartsSortedByDate: cycleDaysSortedByDate,
|
||||||
maxCycleLength: 50
|
maxCycleLength: 50,
|
||||||
})
|
})
|
||||||
const result = getPredictedMenses()
|
const result = getPredictedMenses()
|
||||||
const expectedResult = [
|
const expectedResult = [
|
||||||
[
|
['2018-08-13', '2018-08-14', '2018-08-15', '2018-08-16', '2018-08-17'],
|
||||||
'2018-08-13',
|
['2018-08-27', '2018-08-28', '2018-08-29', '2018-08-30', '2018-08-31'],
|
||||||
'2018-08-14',
|
['2018-09-10', '2018-09-11', '2018-09-12', '2018-09-13', '2018-09-14'],
|
||||||
'2018-08-15',
|
|
||||||
'2018-08-16',
|
|
||||||
'2018-08-17',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'2018-08-27',
|
|
||||||
'2018-08-28',
|
|
||||||
'2018-08-29',
|
|
||||||
'2018-08-30',
|
|
||||||
'2018-08-31',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'2018-09-10',
|
|
||||||
'2018-09-11',
|
|
||||||
'2018-09-12',
|
|
||||||
'2018-09-13',
|
|
||||||
'2018-09-14',
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
expect(result).to.eql(expectedResult)
|
expect(result).to.eql(expectedResult)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,10 +1,6 @@
|
|||||||
import chai from 'chai'
|
import { expect } from 'chai'
|
||||||
import dirtyChai from 'dirty-chai'
|
|
||||||
import cycleModule from '../lib/cycle'
|
import cycleModule from '../lib/cycle'
|
||||||
|
|
||||||
const { expect } = chai
|
|
||||||
chai.use(dirtyChai)
|
|
||||||
|
|
||||||
const mayCycle = [
|
const mayCycle = [
|
||||||
{ date: '2018-05-05' },
|
{ date: '2018-05-05' },
|
||||||
{ date: '2018-05-04' },
|
{ date: '2018-05-04' },
|
||||||
@@ -30,7 +26,6 @@ const cycleStartsSortedByDate = [
|
|||||||
|
|
||||||
describe('getPreviousCycle', () => {
|
describe('getPreviousCycle', () => {
|
||||||
it('gets previous cycle', () => {
|
it('gets previous cycle', () => {
|
||||||
|
|
||||||
const { getPreviousCycle } = cycleModule({
|
const { getPreviousCycle } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
cycleStartsSortedByDate,
|
cycleStartsSortedByDate,
|
||||||
@@ -40,7 +35,6 @@ describe('getPreviousCycle', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('returns null when target day is not in a cyle', () => {
|
it('returns null when target day is not in a cyle', () => {
|
||||||
|
|
||||||
const { getPreviousCycle } = cycleModule({
|
const { getPreviousCycle } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
cycleStartsSortedByDate: [],
|
cycleStartsSortedByDate: [],
|
||||||
@@ -50,7 +44,6 @@ describe('getPreviousCycle', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('returns null when there is no previous cycle', () => {
|
it('returns null when there is no previous cycle', () => {
|
||||||
|
|
||||||
const { getPreviousCycle } = cycleModule({
|
const { getPreviousCycle } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
cycleStartsSortedByDate,
|
cycleStartsSortedByDate,
|
||||||
@@ -60,7 +53,6 @@ describe('getPreviousCycle', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('returns null when the previous cycle > maxcyclelength', () => {
|
it('returns null when the previous cycle > maxcyclelength', () => {
|
||||||
|
|
||||||
const { getPreviousCycle } = cycleModule({
|
const { getPreviousCycle } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
cycleStartsSortedByDate,
|
cycleStartsSortedByDate,
|
||||||
|
|||||||
@@ -1,10 +1,6 @@
|
|||||||
import chai from 'chai'
|
import { expect } from 'chai'
|
||||||
import dirtyChai from 'dirty-chai'
|
|
||||||
import cycleModule from '../lib/cycle'
|
import cycleModule from '../lib/cycle'
|
||||||
|
|
||||||
const { expect } = chai
|
|
||||||
chai.use(dirtyChai)
|
|
||||||
|
|
||||||
describe('isMensesStart', () => {
|
describe('isMensesStart', () => {
|
||||||
it('works for simple menses start', () => {
|
it('works for simple menses start', () => {
|
||||||
const cycleDaysSortedByDate = [
|
const cycleDaysSortedByDate = [
|
||||||
@@ -13,57 +9,57 @@ describe('isMensesStart', () => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-03',
|
date: '2018-05-03',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-02',
|
date: '2018-05-02',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-01',
|
date: '2018-05-01',
|
||||||
bleeding: { value: 1 }
|
bleeding: { value: 1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-30',
|
date: '2018-04-30',
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const { isMensesStart } = cycleModule({
|
const { isMensesStart } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
|
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter((d) => d.bleeding),
|
||||||
})
|
})
|
||||||
const start = isMensesStart(cycleDaysSortedByDate[3])
|
const start = isMensesStart(cycleDaysSortedByDate[3])
|
||||||
expect(start).to.be.true()
|
expect(start).to.be.true
|
||||||
expect(isMensesStart(cycleDaysSortedByDate[0])).to.be.false()
|
expect(isMensesStart(cycleDaysSortedByDate[0])).to.be.false
|
||||||
expect(isMensesStart(cycleDaysSortedByDate[1])).to.be.false()
|
expect(isMensesStart(cycleDaysSortedByDate[1])).to.be.false
|
||||||
expect(isMensesStart(cycleDaysSortedByDate[2])).to.be.false()
|
expect(isMensesStart(cycleDaysSortedByDate[2])).to.be.false
|
||||||
expect(isMensesStart(cycleDaysSortedByDate[4])).to.be.false()
|
expect(isMensesStart(cycleDaysSortedByDate[4])).to.be.false
|
||||||
})
|
})
|
||||||
|
|
||||||
it('works with previous excluded value', () => {
|
it('works with previous excluded value', () => {
|
||||||
const cycleDaysSortedByDate = [
|
const cycleDaysSortedByDate = [
|
||||||
{
|
{
|
||||||
date: '2018-06-01',
|
date: '2018-06-01',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-05-01',
|
date: '2018-05-01',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-30',
|
date: '2018-04-30',
|
||||||
bleeding: { value: 2 , exclude: true}
|
bleeding: { value: 2, exclude: true },
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const { isMensesStart } = cycleModule({
|
const { isMensesStart } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
|
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter((d) => d.bleeding),
|
||||||
})
|
})
|
||||||
const start = isMensesStart(cycleDaysSortedByDate[1])
|
const start = isMensesStart(cycleDaysSortedByDate[1])
|
||||||
expect(start).to.be.true()
|
expect(start).to.be.true
|
||||||
const notStart = isMensesStart(cycleDaysSortedByDate[2])
|
const notStart = isMensesStart(cycleDaysSortedByDate[2])
|
||||||
expect(notStart).to.be.false()
|
expect(notStart).to.be.false
|
||||||
})
|
})
|
||||||
|
|
||||||
it('returns false when day has no bleeding', () => {
|
it('returns false when day has no bleeding', () => {
|
||||||
@@ -76,16 +72,16 @@ describe('isMensesStart', () => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-30',
|
date: '2018-04-30',
|
||||||
bleeding: { value: 2 , exclude: true}
|
bleeding: { value: 2, exclude: true },
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const { isMensesStart } = cycleModule({
|
const { isMensesStart } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
|
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter((d) => d.bleeding),
|
||||||
})
|
})
|
||||||
const start = isMensesStart(cycleDaysSortedByDate[0])
|
const start = isMensesStart(cycleDaysSortedByDate[0])
|
||||||
expect(start).to.be.false()
|
expect(start).to.be.false
|
||||||
})
|
})
|
||||||
|
|
||||||
it('returns false when there is a previous bleeding day within the threshold', () => {
|
it('returns false when there is a previous bleeding day within the threshold', () => {
|
||||||
@@ -98,23 +94,23 @@ describe('isMensesStart', () => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-30',
|
date: '2018-04-30',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-29'
|
date: '2018-04-29',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-28',
|
date: '2018-04-28',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const { isMensesStart } = cycleModule({
|
const { isMensesStart } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
|
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter((d) => d.bleeding),
|
||||||
})
|
})
|
||||||
const start = isMensesStart(cycleDaysSortedByDate[2])
|
const start = isMensesStart(cycleDaysSortedByDate[2])
|
||||||
expect(start).to.be.false()
|
expect(start).to.be.false
|
||||||
})
|
})
|
||||||
|
|
||||||
it('returns true when there is a previous excluded bleeding day within the threshold', () => {
|
it('returns true when there is a previous excluded bleeding day within the threshold', () => {
|
||||||
@@ -127,67 +123,73 @@ describe('isMensesStart', () => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-30',
|
date: '2018-04-30',
|
||||||
bleeding: { value: 2 }
|
bleeding: { value: 2 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-29'
|
date: '2018-04-29',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2018-04-28',
|
date: '2018-04-28',
|
||||||
bleeding: { value: 2 , exclude: true}
|
bleeding: { value: 2, exclude: true },
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const { isMensesStart } = cycleModule({
|
const { isMensesStart } = cycleModule({
|
||||||
cycleDaysSortedByDate,
|
cycleDaysSortedByDate,
|
||||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
|
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter((d) => d.bleeding),
|
||||||
})
|
})
|
||||||
const start = isMensesStart(cycleDaysSortedByDate[2])
|
const start = isMensesStart(cycleDaysSortedByDate[2])
|
||||||
expect(start).to.be.true()
|
expect(start).to.be.true
|
||||||
})
|
})
|
||||||
describe('with cycle thresholds', () => {
|
describe('with cycle thresholds', () => {
|
||||||
const maxBreakInBleeding = 3
|
const maxBreakInBleeding = 3
|
||||||
|
|
||||||
it('disregards bleeding breaks equal to maxAllowedBleedingBreak in a bleeding period', () => {
|
it('disregards bleeding breaks equal to maxAllowedBleedingBreak in a bleeding period', () => {
|
||||||
const bleedingDays = [{
|
const bleedingDays = [
|
||||||
date: '2018-05-14',
|
{
|
||||||
bleeding: {
|
date: '2018-05-14',
|
||||||
value: 2
|
bleeding: {
|
||||||
}
|
value: 2,
|
||||||
}, {
|
},
|
||||||
date: '2018-05-10',
|
},
|
||||||
bleeding: {
|
{
|
||||||
value: 2
|
date: '2018-05-10',
|
||||||
}
|
bleeding: {
|
||||||
}]
|
value: 2,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
const isMensesStart = cycleModule({
|
const isMensesStart = cycleModule({
|
||||||
bleedingDaysSortedByDate: bleedingDays,
|
bleedingDaysSortedByDate: bleedingDays,
|
||||||
maxBreakInBleeding
|
maxBreakInBleeding,
|
||||||
}).isMensesStart
|
}).isMensesStart
|
||||||
const result = isMensesStart(bleedingDays[0])
|
const result = isMensesStart(bleedingDays[0])
|
||||||
expect(result).to.be.false()
|
expect(result).to.be.false
|
||||||
})
|
})
|
||||||
|
|
||||||
it('counts bleeding breaks longer than maxAllowedBleedingBreak in a bleeding period', () => {
|
it('counts bleeding breaks longer than maxAllowedBleedingBreak in a bleeding period', () => {
|
||||||
const bleedingDays = [{
|
const bleedingDays = [
|
||||||
date: '2018-05-14',
|
{
|
||||||
bleeding: {
|
date: '2018-05-14',
|
||||||
value: 2
|
bleeding: {
|
||||||
}
|
value: 2,
|
||||||
}, {
|
},
|
||||||
date: '2018-05-09',
|
},
|
||||||
bleeding: {
|
{
|
||||||
value: 2
|
date: '2018-05-09',
|
||||||
}
|
bleeding: {
|
||||||
}]
|
value: 2,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
const isMensesStart = cycleModule({
|
const isMensesStart = cycleModule({
|
||||||
bleedingDaysSortedByDate: bleedingDays,
|
bleedingDaysSortedByDate: bleedingDays,
|
||||||
maxBreakInBleeding
|
maxBreakInBleeding,
|
||||||
}).isMensesStart
|
}).isMensesStart
|
||||||
const result = isMensesStart(bleedingDays[0])
|
const result = isMensesStart(bleedingDays[0])
|
||||||
expect(result).to.be.true()
|
expect(result).to.be.true
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,16 +1,12 @@
|
|||||||
import chai from 'chai'
|
import { expect } from 'chai'
|
||||||
import dirtyChai from 'dirty-chai'
|
|
||||||
|
|
||||||
const expect = chai.expect
|
|
||||||
chai.use(dirtyChai)
|
|
||||||
|
|
||||||
import getSensiplanMucus from '../lib/nfp-mucus'
|
import getSensiplanMucus from '../lib/nfp-mucus'
|
||||||
|
|
||||||
describe('getSensiplanMucus', () => {
|
describe('getSensiplanMucus', () => {
|
||||||
it('returns null if there is no value for feeling or texture', () => {
|
it('returns null if there is no value for feeling or texture', () => {
|
||||||
expect(getSensiplanMucus()).to.be.null()
|
expect(getSensiplanMucus()).to.be.null
|
||||||
expect(getSensiplanMucus(undefined, 3)).to.be.null()
|
expect(getSensiplanMucus(undefined, 3)).to.be.null
|
||||||
expect(getSensiplanMucus(2, undefined)).to.be.null()
|
expect(getSensiplanMucus(2, undefined)).to.be.null
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('results in t for:', () => {
|
describe('results in t for:', () => {
|
||||||
|
|||||||
@@ -1,27 +1,22 @@
|
|||||||
import chai from 'chai'
|
import { expect } from 'chai'
|
||||||
import dirtyChai from 'dirty-chai'
|
|
||||||
import maybeSetNewCycleStart from '../lib/set-new-cycle-start'
|
import maybeSetNewCycleStart from '../lib/set-new-cycle-start'
|
||||||
|
|
||||||
const expect = chai.expect
|
|
||||||
chai.use(dirtyChai)
|
|
||||||
|
|
||||||
describe('maybeSetNewCycleStart', () => {
|
describe('maybeSetNewCycleStart', () => {
|
||||||
const deletedBleedingValue = null
|
const deletedBleedingValue = null
|
||||||
|
|
||||||
const excludedBleedingValue = {
|
const excludedBleedingValue = {
|
||||||
value: 2,
|
value: 2,
|
||||||
exclude: true
|
exclude: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function getFixtures() {
|
function getFixtures() {
|
||||||
const cycleStartDay = {
|
const cycleStartDay = {
|
||||||
date: '2020-01-01',
|
date: '2020-01-01',
|
||||||
isCycleStart: true,
|
isCycleStart: true,
|
||||||
bleeding: {
|
bleeding: {
|
||||||
value: 2,
|
value: 2,
|
||||||
exclude: false
|
exclude: false,
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
const mensesDaysAfter = [
|
const mensesDaysAfter = [
|
||||||
@@ -31,9 +26,9 @@ describe('maybeSetNewCycleStart', () => {
|
|||||||
value: {
|
value: {
|
||||||
bleeding: {
|
bleeding: {
|
||||||
value: 2,
|
value: 2,
|
||||||
exclude: false
|
exclude: false,
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2020-01-03',
|
date: '2020-01-03',
|
||||||
@@ -41,9 +36,9 @@ describe('maybeSetNewCycleStart', () => {
|
|||||||
value: {
|
value: {
|
||||||
bleeding: {
|
bleeding: {
|
||||||
value: 2,
|
value: 2,
|
||||||
exclude: false
|
exclude: false,
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: '2020-01-02',
|
date: '2020-01-02',
|
||||||
@@ -51,10 +46,10 @@ describe('maybeSetNewCycleStart', () => {
|
|||||||
value: {
|
value: {
|
||||||
bleeding: {
|
bleeding: {
|
||||||
value: 2,
|
value: 2,
|
||||||
exclude: false
|
exclude: false,
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const notCycleStartDay = {
|
const notCycleStartDay = {
|
||||||
@@ -62,14 +57,14 @@ describe('maybeSetNewCycleStart', () => {
|
|||||||
isCycleStart: false,
|
isCycleStart: false,
|
||||||
bleeding: {
|
bleeding: {
|
||||||
value: 2,
|
value: 2,
|
||||||
exclude: false
|
exclude: false,
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
return [cycleStartDay, mensesDaysAfter, notCycleStartDay]
|
return [cycleStartDay, mensesDaysAfter, notCycleStartDay]
|
||||||
}
|
}
|
||||||
|
|
||||||
const checkIsMensesStart = cycleDay => {
|
const checkIsMensesStart = (cycleDay) => {
|
||||||
if (cycleDay.date === '2020-01-02') return true
|
if (cycleDay.date === '2020-01-02') return true
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,11 +75,11 @@ describe('maybeSetNewCycleStart', () => {
|
|||||||
val: deletedBleedingValue,
|
val: deletedBleedingValue,
|
||||||
cycleDay: cycleStartDay,
|
cycleDay: cycleStartDay,
|
||||||
mensesDaysAfter,
|
mensesDaysAfter,
|
||||||
checkIsMensesStart
|
checkIsMensesStart,
|
||||||
})
|
})
|
||||||
expect(cycleStartDay.isCycleStart).to.be.false()
|
expect(cycleStartDay.isCycleStart).to.be.false
|
||||||
expect(cycleStartDay.bleeding).to.be.null()
|
expect(cycleStartDay.bleeding).to.be.null
|
||||||
expect(mensesDaysAfter[2].isCycleStart).to.be.true()
|
expect(mensesDaysAfter[2].isCycleStart).to.be.true
|
||||||
})
|
})
|
||||||
|
|
||||||
it('sets new cycle start when first day of period excluded', () => {
|
it('sets new cycle start when first day of period excluded', () => {
|
||||||
@@ -94,12 +89,12 @@ describe('maybeSetNewCycleStart', () => {
|
|||||||
val: excludedBleedingValue,
|
val: excludedBleedingValue,
|
||||||
cycleDay: cycleStartDay,
|
cycleDay: cycleStartDay,
|
||||||
mensesDaysAfter,
|
mensesDaysAfter,
|
||||||
checkIsMensesStart
|
checkIsMensesStart,
|
||||||
})
|
})
|
||||||
|
|
||||||
expect(cycleStartDay.isCycleStart).to.be.false()
|
expect(cycleStartDay.isCycleStart).to.be.false
|
||||||
expect(cycleStartDay.bleeding).to.equal(excludedBleedingValue)
|
expect(cycleStartDay.bleeding).to.equal(excludedBleedingValue)
|
||||||
expect(mensesDaysAfter[2].isCycleStart).to.be.true()
|
expect(mensesDaysAfter[2].isCycleStart).to.be.true
|
||||||
})
|
})
|
||||||
|
|
||||||
it('does not set new cycle start when other day of period deleted', () => {
|
it('does not set new cycle start when other day of period deleted', () => {
|
||||||
@@ -109,17 +104,17 @@ describe('maybeSetNewCycleStart', () => {
|
|||||||
val: deletedBleedingValue,
|
val: deletedBleedingValue,
|
||||||
cycleDay: notCycleStartDay,
|
cycleDay: notCycleStartDay,
|
||||||
mensesDaysAfter,
|
mensesDaysAfter,
|
||||||
checkIsMensesStart
|
checkIsMensesStart,
|
||||||
})
|
})
|
||||||
|
|
||||||
expect(cycleStartDay.isCycleStart).to.be.true()
|
expect(cycleStartDay.isCycleStart).to.be.true
|
||||||
expect(notCycleStartDay.isCycleStart).to.be.false()
|
expect(notCycleStartDay.isCycleStart).to.be.false
|
||||||
expect(notCycleStartDay.bleeding).to.equal(deletedBleedingValue)
|
expect(notCycleStartDay.bleeding).to.equal(deletedBleedingValue)
|
||||||
})
|
})
|
||||||
it('does not set new cycle start when other day of period excluded', () => {
|
it('does not set new cycle start when other day of period excluded', () => {
|
||||||
const excludedBleedingValue = {
|
const excludedBleedingValue = {
|
||||||
value: 2,
|
value: 2,
|
||||||
exclude: true
|
exclude: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
const [cycleStartDay, mensesDaysAfter, notCycleStartDay] = getFixtures()
|
const [cycleStartDay, mensesDaysAfter, notCycleStartDay] = getFixtures()
|
||||||
@@ -128,11 +123,11 @@ describe('maybeSetNewCycleStart', () => {
|
|||||||
val: excludedBleedingValue,
|
val: excludedBleedingValue,
|
||||||
cycleDay: notCycleStartDay,
|
cycleDay: notCycleStartDay,
|
||||||
mensesDaysAfter,
|
mensesDaysAfter,
|
||||||
checkIsMensesStart
|
checkIsMensesStart,
|
||||||
})
|
})
|
||||||
|
|
||||||
expect(cycleStartDay.isCycleStart).to.be.true()
|
expect(cycleStartDay.isCycleStart).to.be.true
|
||||||
expect(notCycleStartDay.isCycleStart).to.be.false()
|
expect(notCycleStartDay.isCycleStart).to.be.false
|
||||||
expect(notCycleStartDay.bleeding).to.equal(excludedBleedingValue)
|
expect(notCycleStartDay.bleeding).to.equal(excludedBleedingValue)
|
||||||
})
|
})
|
||||||
it('works when there are no following bleeding days', () => {
|
it('works when there are no following bleeding days', () => {
|
||||||
@@ -142,10 +137,10 @@ describe('maybeSetNewCycleStart', () => {
|
|||||||
val: deletedBleedingValue,
|
val: deletedBleedingValue,
|
||||||
cycleDay: cycleStartDay,
|
cycleDay: cycleStartDay,
|
||||||
mensesDaysAfter: [],
|
mensesDaysAfter: [],
|
||||||
checkIsMensesStart
|
checkIsMensesStart,
|
||||||
})
|
})
|
||||||
|
|
||||||
expect(cycleStartDay.isCycleStart).to.be.false()
|
expect(cycleStartDay.isCycleStart).to.be.false
|
||||||
expect(cycleStartDay.bleeding).to.equal(deletedBleedingValue)
|
expect(cycleStartDay.bleeding).to.equal(deletedBleedingValue)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
Reference in New Issue
Block a user