Chore/retire dirty chai

This commit is contained in:
Sofiya Tepikin
2022-08-01 12:34:26 +00:00
parent 6a6de1d5ea
commit f78d2c480d
12 changed files with 282 additions and 409 deletions
+62 -60
View File
@@ -1,10 +1,6 @@
import chai from 'chai'
import dirtyChai from 'dirty-chai'
import { expect } from 'chai'
import cycleModule from '../lib/cycle'
const { expect } = chai
chai.use(dirtyChai)
describe('isMensesStart', () => {
it('works for simple menses start', () => {
const cycleDaysSortedByDate = [
@@ -13,57 +9,57 @@ describe('isMensesStart', () => {
},
{
date: '2018-05-03',
bleeding: { value: 1 }
bleeding: { value: 1 },
},
{
date: '2018-05-02',
bleeding: { value: 1 }
bleeding: { value: 1 },
},
{
date: '2018-05-01',
bleeding: { value: 1 }
bleeding: { value: 1 },
},
{
date: '2018-04-30',
}
},
]
const { isMensesStart } = cycleModule({
cycleDaysSortedByDate,
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
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()
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 }
bleeding: { value: 2 },
},
{
date: '2018-05-01',
bleeding: { value: 2 }
bleeding: { value: 2 },
},
{
date: '2018-04-30',
bleeding: { value: 2 , exclude: true}
bleeding: { value: 2, exclude: true },
},
]
const { isMensesStart } = cycleModule({
cycleDaysSortedByDate,
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter((d) => d.bleeding),
})
const start = isMensesStart(cycleDaysSortedByDate[1])
expect(start).to.be.true()
expect(start).to.be.true
const notStart = isMensesStart(cycleDaysSortedByDate[2])
expect(notStart).to.be.false()
expect(notStart).to.be.false
})
it('returns false when day has no bleeding', () => {
@@ -76,16 +72,16 @@ describe('isMensesStart', () => {
},
{
date: '2018-04-30',
bleeding: { value: 2 , exclude: true}
bleeding: { value: 2, exclude: true },
},
]
const { isMensesStart } = cycleModule({
cycleDaysSortedByDate,
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter((d) => d.bleeding),
})
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', () => {
@@ -98,23 +94,23 @@ describe('isMensesStart', () => {
},
{
date: '2018-04-30',
bleeding: { value: 2 }
bleeding: { value: 2 },
},
{
date: '2018-04-29'
date: '2018-04-29',
},
{
date: '2018-04-28',
bleeding: { value: 2 }
bleeding: { value: 2 },
},
]
const { isMensesStart } = cycleModule({
cycleDaysSortedByDate,
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter((d) => d.bleeding),
})
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', () => {
@@ -127,67 +123,73 @@ describe('isMensesStart', () => {
},
{
date: '2018-04-30',
bleeding: { value: 2 }
bleeding: { value: 2 },
},
{
date: '2018-04-29'
date: '2018-04-29',
},
{
date: '2018-04-28',
bleeding: { value: 2 , exclude: true}
bleeding: { value: 2, exclude: true },
},
]
const { isMensesStart } = cycleModule({
cycleDaysSortedByDate,
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
bleedingDaysSortedByDate: cycleDaysSortedByDate.filter((d) => d.bleeding),
})
const start = isMensesStart(cycleDaysSortedByDate[2])
expect(start).to.be.true()
expect(start).to.be.true
})
describe('with cycle thresholds', () => {
const maxBreakInBleeding = 3
it('disregards bleeding breaks equal to maxAllowedBleedingBreak in a bleeding period', () => {
const bleedingDays = [{
date: '2018-05-14',
bleeding: {
value: 2
}
}, {
date: '2018-05-10',
bleeding: {
value: 2
}
}]
const bleedingDays = [
{
date: '2018-05-14',
bleeding: {
value: 2,
},
},
{
date: '2018-05-10',
bleeding: {
value: 2,
},
},
]
const isMensesStart = cycleModule({
bleedingDaysSortedByDate: bleedingDays,
maxBreakInBleeding
maxBreakInBleeding,
}).isMensesStart
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', () => {
const bleedingDays = [{
date: '2018-05-14',
bleeding: {
value: 2
}
}, {
date: '2018-05-09',
bleeding: {
value: 2
}
}]
const bleedingDays = [
{
date: '2018-05-14',
bleeding: {
value: 2,
},
},
{
date: '2018-05-09',
bleeding: {
value: 2,
},
},
]
const isMensesStart = cycleModule({
bleedingDaysSortedByDate: bleedingDays,
maxBreakInBleeding
maxBreakInBleeding,
}).isMensesStart
const result = isMensesStart(bleedingDays[0])
expect(result).to.be.true()
expect(result).to.be.true
})
})
})