UNPKG

@functional-lib/kalendar

Version:

kalendar fp

63 lines (56 loc) 2.47 kB
import {addDays, getMonday, equals, lte, getWeek, diffDays} from './../src/Kalendar'; import { addDays as add, isMonday, isTuesday, isWednesday, isThursday, isFriday, isSaturday, isSunday } from 'date-fns'; import {expect} from 'chai'; import jsc from 'jsverify'; describe('KALENDAR', () => { const now = new Date(); const from = new Date(now.setDate(now.getDate()-jsc.integer(0, 1100).generator())); const to = new Date(now.setDate(now.getDate()+jsc.integer(0, 100).generator())); it(`addDays`, () => { for(let i = 0; i< 3420; i++) { const days = jsc.nat(365).generator(); const d = jsc.datetime(from, to).generator(); const result = addDays(d)(days); const expected = add(d, days); const error = `origin: ${d} add ${days}: expected(${expected}) but the result is (${result})`; expect(result.getTime() === expected.getTime(), error).to.be.true; } }); it('getMonday', () => { const d = jsc.datetime(from, to).generator(); const result = getMonday(d); const error = `origin: ${d} but the result is not a monday ${result}`; expect(isMonday(result), error).to.be.true; }); it('equals', () => { const d = jsc.datetime(from, to).generator(); const error = `date ${d} and date ${d} must be the same`; expect(equals(d)(d), error).to.be.true; }); it('lte', () => { const d = jsc.datetime(from, to).generator(); const b = addDays(d)(1); const error = `date ${d} is lower than ${b} must be the same`; expect(lte(d)(b), error).to.be.true; }); it(`getWeek`, () => { const d = jsc.datetime(from, to).generator(); const [monday, tuesday, wednesday, thursday, friday, saturday, sunday] = getWeek(d); expect(isMonday(monday), `${monday} must be monday`).to.be.true; expect(isTuesday(tuesday), `${tuesday} must be tuesday`).to.be.true; expect(isWednesday(wednesday), `${wednesday} must be wednesday`).to.be.true; expect(isThursday(thursday), `${thursday} must be thursday`).to.be.true; expect(isFriday(friday), `${friday} must be friday`).to.be.true; expect(isSaturday(saturday), `${saturday} must be saturday`).to.be.true; expect(isSunday(sunday), `${sunday} must be sunday`).to.be.true; }); it('diffDays', ()=> { const d = jsc.datetime(from, to).generator(); const days = jsc.nat(365).generator(); const b = addDays(d)(days); const result = diffDays(d)(b); expect(result).equals(days); }); });