diff --git a/test/cycle.spec.js b/test/cycle.spec.js index 0ad8d3c3382b15b3389c4036d86301c9a45c93b3..a44864798718d328d3235d5df7a689f8bba3c75c 100644 --- a/test/cycle.spec.js +++ b/test/cycle.spec.js @@ -5,237 +5,6 @@ import cycleModule from '../lib/cycle' const expect = chai.expect chai.use(dirtyChai) -describe('getPreviousCycle', () => { - it('gets previous cycle', () => { - 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 { getPreviousCycle } = cycleModule({ - cycleDaysSortedByDate, - cycleStartsSortedByDate: cycleDaysSortedByDate.filter(d => { - return cycleStarts.includes(d.date) - }) - }) - const result = getPreviousCycle('2018-06-08') - expect(result).to.eql([ - { - date: '2018-05-05', - mucus: { value: 2 } - }, - { - date: '2018-05-04', - bleeding: { value: 2 } - }, - { - date: '2018-05-03', - bleeding: { value: 2 } - } - ]) - }) - - it('returns null when target day is not in a cyle', () => { - const cycleDaysSortedByDate = [ - { - date: '2018-07-05', - }, - { - date: '2018-06-05', - }, - { - date: '2018-05-05', - }, - { - date: '2018-05-04', - }, - { - date: '2018-05-03', - }, - { - date: '2018-04-05', - }, - { - date: '2018-04-04', - mucus: { value: 2 } - }, - { - date: '2018-04-03', - }, - { - date: '2018-04-02', - }, - ] - - const cycleStarts = [] - - const { getPreviousCycle } = cycleModule({ - cycleDaysSortedByDate, - cycleStartsSortedByDate: cycleDaysSortedByDate.filter(d => { - return cycleStarts.includes(d.date) - }) - }) - const result = getPreviousCycle('2018-06-08') - expect(result).to.eql(null) - }) - - it('returns null when there is no previous cycle', () => { - 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 { getPreviousCycle } = cycleModule({ - cycleDaysSortedByDate, - cycleStartsSortedByDate: cycleDaysSortedByDate.filter(d => { - return cycleStarts.includes(d.date) - }) - }) - const result = getPreviousCycle('2018-04-18') - expect(result).to.eql(null) - }) - - it('returns null when the previous cycle > maxcyclelength', () => { - 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 { getPreviousCycle } = cycleModule({ - cycleDaysSortedByDate, - cycleStartsSortedByDate: cycleDaysSortedByDate.filter(d => { - return cycleStarts.includes(d.date) - }), - maxCycleLength: 2 - }) - const result = getPreviousCycle('2018-06-08') - expect(result).to.eql(null) - }) -}) - describe('getCyclesBefore', () => { it('gets previous cycles', () => { const cycleDaysSortedByDate = [ @@ -1322,4 +1091,4 @@ describe('getMensesDaysRightAfter', () => { expect(result).to.eql([]) }) }) -}) \ No newline at end of file +}) diff --git a/test/get-previous-cycle.spec.js b/test/get-previous-cycle.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..d67546fa88dae6fc897b020592d78e60d87cfc0c --- /dev/null +++ b/test/get-previous-cycle.spec.js @@ -0,0 +1,72 @@ +import chai from 'chai' +import dirtyChai from 'dirty-chai' +import cycleModule from '../lib/cycle' + +const { expect } = chai +chai.use(dirtyChai) + +const mayCycle = [ + { date: '2018-05-05' }, + { date: '2018-05-04' }, + { date: '2018-05-03' }, +] + +const cycleDaysSortedByDate = [ + { date: '2018-07-05' }, + { date: '2018-06-05' }, + ...mayCycle, + { date: '2018-04-05' }, + { date: '2018-04-04' }, + { date: '2018-04-03' }, + { date: '2018-04-02' }, +] + +const cycleStartsSortedByDate = [ + { date: '2018-07-05' }, + { date: '2018-06-05' }, + { date: '2018-05-03' }, + { date: '2018-04-02' }, +] + +describe('getPreviousCycle', () => { + it('gets previous cycle', () => { + + const { getPreviousCycle } = cycleModule({ + cycleDaysSortedByDate, + cycleStartsSortedByDate, + }) + + expect(getPreviousCycle('2018-06-08')).to.eql(mayCycle) + }) + + it('returns null when target day is not in a cyle', () => { + + const { getPreviousCycle } = cycleModule({ + cycleDaysSortedByDate, + cycleStartsSortedByDate: [], + }) + + expect(getPreviousCycle('2018-06-08')).to.eql(null) + }) + + it('returns null when there is no previous cycle', () => { + + const { getPreviousCycle } = cycleModule({ + cycleDaysSortedByDate, + cycleStartsSortedByDate, + }) + + expect(getPreviousCycle('2018-04-18')).to.eql(null) + }) + + it('returns null when the previous cycle > maxcyclelength', () => { + + const { getPreviousCycle } = cycleModule({ + cycleDaysSortedByDate, + cycleStartsSortedByDate, + maxCycleLength: 2, + }) + + expect(getPreviousCycle('2018-06-08')).to.eql(null) + }) +})