Merge branch 'chore/retire-dirty-chai' into 'main'

Chore/retire dirty chai

See merge request bloodyhealth/drip!436
This commit is contained in:
Sofiya Tepikin
2022-08-01 12:34:26 +00:00
12 changed files with 282 additions and 409 deletions
-6
View File
@@ -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",
-1
View File
@@ -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",
+2 -11
View File
@@ -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,
+6 -15
View File
@@ -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
}) })
}) })
+25 -34
View File
@@ -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 },
}, },
]) ])
}) })
+4 -10
View File
@@ -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])
}) })
}) })
+63 -61
View File
@@ -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', date: '2018-05-14',
bleeding: { bleeding: {
value: 2 value: 2,
} },
}, { },
{
date: '2018-05-10', date: '2018-05-10',
bleeding: { bleeding: {
value: 2 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', date: '2018-05-14',
bleeding: { bleeding: {
value: 2 value: 2,
} },
}, { },
{
date: '2018-05-09', date: '2018-05-09',
bleeding: { bleeding: {
value: 2 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([])
+73 -147
View File
@@ -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 -9
View File
@@ -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,
+54 -52
View File
@@ -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', date: '2018-05-14',
bleeding: { bleeding: {
value: 2 value: 2,
} },
}, { },
{
date: '2018-05-10', date: '2018-05-10',
bleeding: { bleeding: {
value: 2 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', date: '2018-05-14',
bleeding: { bleeding: {
value: 2 value: 2,
} },
}, { },
{
date: '2018-05-09', date: '2018-05-09',
bleeding: { bleeding: {
value: 2 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
}) })
}) })
}) })
+4 -8
View File
@@ -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:', () => {
+33 -38
View File
@@ -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)
}) })
}) })