Add isMensesStart
This commit is contained in:
@@ -685,4 +685,146 @@ describe('getAllMensesStart', () => {
|
||||
expect(result.length).to.eql(500)
|
||||
expect(duration).to.be.lessThan(100)
|
||||
})
|
||||
})
|
||||
|
||||
describe('isMensesStart', () => {
|
||||
it('works for simple menses start', () => {
|
||||
const cycleDaysSortedByDate = [
|
||||
{
|
||||
date: '2018-05-04',
|
||||
},
|
||||
{
|
||||
date: '2018-05-03',
|
||||
bleeding: { value: 1 }
|
||||
},
|
||||
{
|
||||
date: '2018-05-02',
|
||||
bleeding: { value: 1 }
|
||||
},
|
||||
{
|
||||
date: '2018-05-01',
|
||||
bleeding: { value: 1 }
|
||||
},
|
||||
{
|
||||
date: '2018-04-30',
|
||||
}
|
||||
]
|
||||
|
||||
const { isMensesStart } = cycleModule({
|
||||
cycleDaysSortedByDate,
|
||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
|
||||
})
|
||||
const start = isMensesStart(cycleDaysSortedByDate[3])
|
||||
expect(start).to.be.true()
|
||||
expect(isMensesStart(cycleDaysSortedByDate[0])).to.be.false()
|
||||
expect(isMensesStart(cycleDaysSortedByDate[1])).to.be.false()
|
||||
expect(isMensesStart(cycleDaysSortedByDate[2])).to.be.false()
|
||||
expect(isMensesStart(cycleDaysSortedByDate[4])).to.be.false()
|
||||
})
|
||||
|
||||
it('works with previous excluded value', () => {
|
||||
const cycleDaysSortedByDate = [
|
||||
{
|
||||
date: '2018-06-01',
|
||||
bleeding: { value: 2 }
|
||||
},
|
||||
{
|
||||
date: '2018-05-01',
|
||||
bleeding: { value: 2 }
|
||||
},
|
||||
{
|
||||
date: '2018-04-30',
|
||||
bleeding: { value: 2 , exclude: true}
|
||||
},
|
||||
]
|
||||
|
||||
const { isMensesStart } = cycleModule({
|
||||
cycleDaysSortedByDate,
|
||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
|
||||
})
|
||||
const start = isMensesStart(cycleDaysSortedByDate[1])
|
||||
expect(start).to.be.true()
|
||||
const notStart = isMensesStart(cycleDaysSortedByDate[2])
|
||||
expect(notStart).to.be.false()
|
||||
})
|
||||
|
||||
it('returns false when day has no bleeding', () => {
|
||||
const cycleDaysSortedByDate = [
|
||||
{
|
||||
date: '2018-06-01',
|
||||
},
|
||||
{
|
||||
date: '2018-05-01',
|
||||
},
|
||||
{
|
||||
date: '2018-04-30',
|
||||
bleeding: { value: 2 , exclude: true}
|
||||
},
|
||||
]
|
||||
|
||||
const { isMensesStart } = cycleModule({
|
||||
cycleDaysSortedByDate,
|
||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
|
||||
})
|
||||
const start = isMensesStart(cycleDaysSortedByDate[0])
|
||||
expect(start).to.be.false()
|
||||
})
|
||||
|
||||
it('returns false when there is a previous bleeding day within the threshold', () => {
|
||||
const cycleDaysSortedByDate = [
|
||||
{
|
||||
date: '2018-06-01',
|
||||
},
|
||||
{
|
||||
date: '2018-05-01',
|
||||
},
|
||||
{
|
||||
date: '2018-04-30',
|
||||
bleeding: { value: 2 }
|
||||
},
|
||||
{
|
||||
date: '2018-04-29'
|
||||
},
|
||||
{
|
||||
date: '2018-04-28',
|
||||
bleeding: { value: 2 }
|
||||
},
|
||||
]
|
||||
|
||||
const { isMensesStart } = cycleModule({
|
||||
cycleDaysSortedByDate,
|
||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
|
||||
})
|
||||
const start = isMensesStart(cycleDaysSortedByDate[2])
|
||||
expect(start).to.be.false()
|
||||
})
|
||||
|
||||
it('returns true when there is a previous excluded bleeding day within the threshold', () => {
|
||||
const cycleDaysSortedByDate = [
|
||||
{
|
||||
date: '2018-06-01',
|
||||
},
|
||||
{
|
||||
date: '2018-05-01',
|
||||
},
|
||||
{
|
||||
date: '2018-04-30',
|
||||
bleeding: { value: 2 }
|
||||
},
|
||||
{
|
||||
date: '2018-04-29'
|
||||
},
|
||||
{
|
||||
date: '2018-04-28',
|
||||
bleeding: { value: 2 , exclude: true}
|
||||
},
|
||||
]
|
||||
|
||||
const { isMensesStart } = cycleModule({
|
||||
cycleDaysSortedByDate,
|
||||
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
|
||||
})
|
||||
const start = isMensesStart(cycleDaysSortedByDate[2])
|
||||
expect(start).to.be.true()
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user