mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-16 12:53:32 +00:00
Refactor: better rounding (#1594)
This commit is contained in:
committed by
arc-alex
parent
421183fe55
commit
33ac05ebee
@@ -1,3 +1,5 @@
|
||||
import { TimerType } from 'ontime-types';
|
||||
|
||||
import { dayInMs, MILLIS_PER_HOUR } from './conversionUtils';
|
||||
import { formatFromMillis, millisToString, removeLeadingZero } from './timeFormatting';
|
||||
|
||||
@@ -13,32 +15,33 @@ describe('millisToString()', () => {
|
||||
|
||||
test('negative times are rounded up', () => {
|
||||
const testScenarios = [
|
||||
{ millis: 300, expected: '00:00:00' },
|
||||
{ millis: -300, expected: '-00:00:01' },
|
||||
{ millis: 1000, expected: '00:00:01' },
|
||||
{ millis: -1000, expected: '-00:00:01' },
|
||||
{ millis: 1500, expected: '00:00:01' },
|
||||
{ millis: -1500, expected: '-00:00:02' },
|
||||
{ millis: 60000 - 1, expected: '00:00:59' },
|
||||
{ millis: -(60000 - 1), expected: '-00:01:00' },
|
||||
{ millis: 60000, expected: '00:01:00' },
|
||||
{ millis: -60000, expected: '-00:01:00' },
|
||||
{ millis: 600000, expected: '00:10:00' },
|
||||
{ millis: -600000, expected: '-00:10:00' },
|
||||
{ millis: 3600000, expected: '01:00:00' },
|
||||
{ millis: -3600000, expected: '-01:00:00' },
|
||||
{ millis: 36000000, expected: '10:00:00' },
|
||||
{ millis: -36000000, expected: '-10:00:00' },
|
||||
{ millis: 86399000, expected: '23:59:59' },
|
||||
{ millis: -86399000, expected: '-23:59:59' },
|
||||
{ millis: 86400000, expected: '24:00:00' },
|
||||
{ millis: -86400000, expected: '-24:00:00' },
|
||||
{ millis: 86401000, expected: '24:00:01' },
|
||||
{ millis: -86401000, expected: '-24:00:01' },
|
||||
{ millis: 300, expected_down: '00:00:01', expected_up: '00:00:00' },
|
||||
{ millis: -300, expected_down: '-00:00:00', expected_up: '-00:00:01' },
|
||||
{ millis: 1000, expected_down: '00:00:01', expected_up: '00:00:01' },
|
||||
{ millis: -1000, expected_down: '-00:00:01', expected_up: '-00:00:01' },
|
||||
{ millis: 1500, expected_down: '00:00:02', expected_up: '00:00:01' },
|
||||
{ millis: -1500, expected_down: '-00:00:01', expected_up: '-00:00:02' },
|
||||
{ millis: 60000 - 1, expected_down: '00:01:00', expected_up: '00:00:59' },
|
||||
{ millis: -(60000 - 1), expected_down: '-00:00:59', expected_up: '-00:01:00' },
|
||||
{ millis: 60000, expected_down: '00:01:00', expected_up: '00:01:00' },
|
||||
{ millis: -60000, expected_down: '-00:01:00', expected_up: '-00:01:00' },
|
||||
{ millis: 600000, expected_down: '00:10:00', expected_up: '00:10:00' },
|
||||
{ millis: -600000, expected_down: '-00:10:00', expected_up: '-00:10:00' },
|
||||
{ millis: 3600000, expected_down: '01:00:00', expected_up: '01:00:00' },
|
||||
{ millis: -3600000, expected_down: '-01:00:00', expected_up: '-01:00:00' },
|
||||
{ millis: 36000000, expected_down: '10:00:00', expected_up: '10:00:00' },
|
||||
{ millis: -36000000, expected_down: '-10:00:00', expected_up: '-10:00:00' },
|
||||
{ millis: 86399000, expected_down: '23:59:59', expected_up: '23:59:59' },
|
||||
{ millis: -86399000, expected_down: '-23:59:59', expected_up: '-23:59:59' },
|
||||
{ millis: 86400000, expected_down: '24:00:00', expected_up: '24:00:00' },
|
||||
{ millis: -86400000, expected_down: '-24:00:00', expected_up: '-24:00:00' },
|
||||
{ millis: 86401000, expected_down: '24:00:01', expected_up: '24:00:01' },
|
||||
{ millis: -86401000, expected_down: '-24:00:01', expected_up: '-24:00:01' },
|
||||
];
|
||||
|
||||
testScenarios.forEach((scenario) => {
|
||||
expect(millisToString(scenario.millis)).toBe(scenario.expected);
|
||||
expect(millisToString(scenario.millis, { direction: TimerType.CountDown })).toBe(scenario.expected_down);
|
||||
expect(millisToString(scenario.millis, { direction: TimerType.CountUp })).toBe(scenario.expected_up);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -48,20 +51,21 @@ describe('millisToString()', () => {
|
||||
|
||||
test('random properties', () => {
|
||||
const testScenarios = [
|
||||
{ millis: 300, expected: '00:00:00' },
|
||||
{ millis: 1000, expected: '00:00:01' },
|
||||
{ millis: 1500, expected: '00:00:01' },
|
||||
{ millis: 60000, expected: '00:01:00' },
|
||||
{ millis: 600000, expected: '00:10:00' },
|
||||
{ millis: 3600000, expected: '01:00:00' },
|
||||
{ millis: 36000000, expected: '10:00:00' },
|
||||
{ millis: 86399000, expected: '23:59:59' },
|
||||
{ millis: 86400000, expected: '24:00:00' },
|
||||
{ millis: 86401000, expected: '24:00:01' },
|
||||
{ millis: 300, expected_down: '00:00:01', expected_up: '00:00:00' },
|
||||
{ millis: 1000, expected_down: '00:00:01', expected_up: '00:00:01' },
|
||||
{ millis: 1500, expected_down: '00:00:02', expected_up: '00:00:01' },
|
||||
{ millis: 60000, expected_down: '00:01:00', expected_up: '00:01:00' },
|
||||
{ millis: 600000, expected_down: '00:10:00', expected_up: '00:10:00' },
|
||||
{ millis: 3600000, expected_down: '01:00:00', expected_up: '01:00:00' },
|
||||
{ millis: 36000000, expected_down: '10:00:00', expected_up: '10:00:00' },
|
||||
{ millis: 86399000, expected_down: '23:59:59', expected_up: '23:59:59' },
|
||||
{ millis: 86400000, expected_down: '24:00:00', expected_up: '24:00:00' },
|
||||
{ millis: 86401000, expected_down: '24:00:01', expected_up: '24:00:01' },
|
||||
];
|
||||
|
||||
testScenarios.forEach((scenario) => {
|
||||
expect(millisToString(scenario.millis)).toBe(scenario.expected);
|
||||
expect(millisToString(scenario.millis, { direction: TimerType.CountDown })).toBe(scenario.expected_down);
|
||||
expect(millisToString(scenario.millis, { direction: TimerType.CountUp })).toBe(scenario.expected_up);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user