blob: 3be3cd3d50764189a200c1b9f9c82c639aa5f375 [file] [log] [blame]
import { expect } from 'chai';
import sinon from 'sinon';
import { getDurationTillNextDay } from './am';
describe('am', () => {
let clock: sinon.SinonFakeTimers;
before(() => {
clock = sinon.useFakeTimers();
});
after(() => {
clock.restore();
});
it('tests getDurationTillNextDay', async () => {
// Set fake clock to 1999 Jan 1st Friday 9 AM.
clock = sinon.useFakeTimers(new Date(1999, 0, 1, 9, 0, 0));
// Friday to Monday.
expect(getDurationTillNextDay(1, 9)).to.equal('3d');
// Friday to Thursday.
expect(getDurationTillNextDay(4, 8)).to.equal('6d');
// Friday to Friday same time.
expect(getDurationTillNextDay(5, 9)).to.equal('1w');
// Friday to Friday one hour later.
expect(getDurationTillNextDay(5, 10)).to.equal('1w');
// Friday to Friday one hour earlier.
expect(getDurationTillNextDay(5, 8)).to.equal('1w');
// Set fake clock to 1999 Dec 31st Friday 9 AM.
clock = sinon.useFakeTimers(new Date(1999, 11, 31, 9, 0, 0));
// Friday to Saturday.
expect(getDurationTillNextDay(6, 9)).to.equal('1d');
// Friday to Sunday.
expect(getDurationTillNextDay(0, 9)).to.equal('2d');
// Friday to Friday.
expect(getDurationTillNextDay(5, 9)).to.equal('1w');
});
});