import {HOUR, MINUTE, SECOND} from '@/units.js'; import {describe, it, expect} from 'vitest'; import {balanceTime, balanceTimeDuration} from '@/utilities.js'; describe('Internal utilities', () => { describe('balanceTimeDuration', () => { it('balances time duration', async () => { let {hours, minutes, seconds, milliseconds} = balanceTimeDuration(1 + 2 * SECOND + 3 * MINUTE + 4 * HOUR); expect(hours).toEqual(4); expect(minutes).toEqual(3); expect(seconds).toEqual(2); expect(milliseconds).toEqual(1); }); it('overflows into hours', async () => { let {hours, minutes, seconds, milliseconds} = balanceTimeDuration(24 * HOUR, 'hour'); expect(hours).toEqual(24); expect(minutes).toEqual(0); expect(seconds).toEqual(0); expect(milliseconds).toEqual(0); }); it('calculates daye', () => { let {days, hours, minutes, seconds, milliseconds} = balanceTimeDuration(24 * HOUR); expect(days).toEqual(1); expect(hours).toEqual(0); expect(minutes).toEqual(0); expect(seconds).toEqual(0); expect(milliseconds).toEqual(0); }); }); describe('balanceTime', () => { it('balances time', () => { let balanced = balanceTime(0, -45, 0, 0); expect(balanced).toEqual({ hour: 23, minute: 15, second: 0, millisecond: 0, deltaDays: -1, }); }); }); });