diff --git a/test/cycle.spec.js b/test/cycle.spec.js index a44864798718d328d3235d5df7a689f8bba3c75c..2eb758757b6c1059b1d56557ed48cda7ed337503 100644 --- a/test/cycle.spec.js +++ b/test/cycle.spec.js @@ -5,165 +5,6 @@ import cycleModule from '../lib/cycle' const expect = chai.expect chai.use(dirtyChai) -describe('getCyclesBefore', () => { - it('gets previous cycles', () => { - const cycleDaysSortedByDate = [ - { - date: '2018-07-05', - bleeding: { value: 2 } - }, - { - date: '2018-06-05', - bleeding: { value: 2 } - }, - { - date: '2018-05-05', - mucus: { value: 2 } - }, - { - date: '2018-05-04', - bleeding: { value: 2 } - }, - { - date: '2018-05-03', - bleeding: { value: 2 } - }, - { - date: '2018-04-05', - mucus: { value: 2 } - }, - { - date: '2018-04-04', - mucus: { value: 2 } - }, - { - date: '2018-04-03', - mucus: { value: 2 } - }, - { - date: '2018-04-02', - bleeding: { value: 2 } - }, - ] - - const cycleStarts = [ - '2018-07-05', - '2018-06-05', - '2018-05-03', - '2018-04-02' - ] - - const { getCyclesBefore } = cycleModule({ - cycleDaysSortedByDate, - cycleStartsSortedByDate: cycleDaysSortedByDate.filter(d => { - return cycleStarts.includes(d.date) - }) - }) - const result = getCyclesBefore(cycleDaysSortedByDate[0]) - expect(result.length).to.eql(3) - expect(result).to.eql([ - [ - { - date: '2018-06-05', - bleeding: { value: 2 } - } - ], [ - { - date: '2018-05-05', - mucus: { value: 2 } - }, - { - date: '2018-05-04', - bleeding: { value: 2 } - }, - { - date: '2018-05-03', - bleeding: { value: 2 } - } - ], [ - { - date: '2018-04-05', - mucus: { value: 2 } - }, - { - date: '2018-04-04', - mucus: { value: 2 } - }, - { - date: '2018-04-03', - mucus: { value: 2 } - }, - { - date: '2018-04-02', - bleeding: { value: 2 } - }, - ] - ]) - }) - - it('skips cycles that are longer than max', () => { - const cycleDaysSortedByDate = [ - { - date: '2018-07-05', - bleeding: { value: 2 } - }, - { - date: '2018-06-05', - bleeding: { value: 2 } - }, - { - date: '2018-05-05', - mucus: { value: 2 } - }, - { - date: '2018-05-04', - bleeding: { value: 2 } - }, - { - date: '2018-05-03', - bleeding: { value: 2 } - }, - { - date: '2018-04-05', - mucus: { value: 2 } - }, - { - date: '2018-04-04', - mucus: { value: 2 } - }, - { - date: '2018-04-03', - mucus: { value: 2 } - }, - { - date: '2018-04-02', - bleeding: { value: 2 } - }, - ] - - const cycleStarts = [ - '2018-07-05', - '2018-06-05', - '2018-05-03', - '2018-04-02' - ] - - const { getCyclesBefore } = cycleModule({ - cycleDaysSortedByDate, - cycleStartsSortedByDate: cycleDaysSortedByDate.filter(d => { - return cycleStarts.includes(d.date) - }), - maxCycleLength: 30 - }) - const result = getCyclesBefore(cycleDaysSortedByDate[0]) - expect(result.length).to.eql(1) - expect(result).to.eql([[{ - bleeding: { value: 2 }, - date: "2018-06-05" - }]]) - }) -}) - describe('getCycleForDay', () => { const cycleDaysSortedByDate = [ { diff --git a/test/get-cycles-before.spec.js b/test/get-cycles-before.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..b5c1e50baab9ab6163a17f91ad131a33033bf232 --- /dev/null +++ b/test/get-cycles-before.spec.js @@ -0,0 +1,61 @@ +import chai from 'chai' +import dirtyChai from 'dirty-chai' +import cycleModule from '../lib/cycle' + +const { expect } = chai +chai.use(dirtyChai) + +const julyCycle = [{ date: '2018-07-05' }] +const juneCycle = [{ date: '2018-06-05' }] +const mayCycle = [ + { date: '2018-05-05' }, + { date: '2018-05-04' }, + { date: '2018-05-03' }, +] +const aprilCycle = [ + { date: '2018-04-05' }, + { date: '2018-04-04' }, + { date: '2018-04-03' }, + { date: '2018-04-02' }, +] + +const cycleDaysSortedByDate = [ + ...julyCycle, + ...juneCycle, + ...mayCycle, + ...aprilCycle, +] + +const cycleStartsSortedByDate = [ + { date: '2018-07-05' }, + { date: '2018-06-05' }, + { date: '2018-05-03' }, + { date: '2018-04-02' }, +] + +describe('getCyclesBefore', () => { + it('gets previous cycles', () => { + + const { getCyclesBefore } = cycleModule({ + cycleDaysSortedByDate, + cycleStartsSortedByDate, + }) + const cyclesBeforeJuly = getCyclesBefore(...julyCycle) + + expect(cyclesBeforeJuly.length).to.eql(3) + expect(cyclesBeforeJuly).to.eql([ juneCycle, mayCycle, aprilCycle ]) + }) + + it('skips cycles that are longer than max', () => { + + const { getCyclesBefore } = cycleModule({ + cycleDaysSortedByDate, + cycleStartsSortedByDate, + maxCycleLength: 30 + }) + const cyclesBeforeJuly = getCyclesBefore(...julyCycle) + + expect(cyclesBeforeJuly.length).to.eql(1) + expect(cyclesBeforeJuly).to.eql([ juneCycle ]) + }) +})