From 9823220be7374300ca658946ddc866e96c127f50 Mon Sep 17 00:00:00 2001 From: Jonathan Putney Date: Thu, 2 Jan 2020 13:17:31 -0500 Subject: [PATCH] Making sure seconds are padded when they add up to zero --- src/utilities.js | 15 +++++++++++---- test/utilities.spec.js | 8 ++++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/utilities.js b/src/utilities.js index 4e5f19a..a2e393d 100644 --- a/src/utilities.js +++ b/src/utilities.js @@ -28,14 +28,21 @@ export function getSecondsAsHHMMSS(totalSeconds: Number) { const dateObj = new Date(totalSeconds * 1000); const minutes = dateObj.getUTCMinutes(); // make sure we add any possible decimal value - let seconds = (dateObj.getSeconds() + (totalSeconds % 1.0)); - if (countDecimals(seconds) > 2) { - seconds = seconds.toFixed(2); + const seconds = dateObj.getSeconds(); + const ms = totalSeconds % 1.0; + let msStr = ''; + if (countDecimals(ms) > 0) { + if (countDecimals(ms) > 2) { + msStr = ms.toFixed(2); + } else { + msStr = String(ms); + } + msStr = '.' + msStr.split('.')[1]; } return hours.toString().padStart(2, '0') + ':' + minutes.toString().padStart(2, '0') + ':' + - seconds.toString().padStart(2, '0'); + seconds.toString().padStart(2, '0') + msStr; } /** diff --git a/test/utilities.spec.js b/test/utilities.spec.js index ad80ab4..d3b544f 100644 --- a/test/utilities.spec.js +++ b/test/utilities.spec.js @@ -224,9 +224,9 @@ describe('Utility Tests', () => { describe('addTwoDurations()', () => { it('P1H5M30.5S plus PT15M10S equals P1H20M40.5S', () => { expect( - Utilities.addTwoDurations('PT1H5M30.5S', 'PT15M10S', + Utilities.addTwoDurations('PT1H5M30.5S', 'PT15M30S', scorm2004_regex.CMITimespan), - ).to.equal('PT1H20M40.5S'); + ).to.equal('PT1H21M0.5S'); }); it('P1Y364D plus P2DT1H45M52S equals P732DT1H45M52S', () => { expect( @@ -251,9 +251,9 @@ describe('Utility Tests', () => { describe('addHHMMSSTimeStrings()', () => { it('01:05:30.5 plus 00:15:10 equals 01:20:40.5', () => { expect( - Utilities.addHHMMSSTimeStrings('01:05:30.5', '00:15:10', + Utilities.addHHMMSSTimeStrings('01:05:30.5', '00:15:30', scorm12_regex.CMITimespan), - ).to.equal('01:20:40.5'); + ).to.equal('01:21:00.5'); }); it('17496:00:00 plus 49:35:52 equals 17545:35:52', () => { expect(