From 2751ed3d335c29cec07ca51b85157109863e98de Mon Sep 17 00:00:00 2001 From: Carlos Valente <34649812+cpvalente@users.noreply.github.com> Date: Thu, 16 Dec 2021 22:13:41 +0100 Subject: [PATCH] fix/58-countdown correct issues on countdown clock (#68) --- server/src/classes/Timer.js | 4 +++- server/src/classes/__tests__/timer.test.js | 26 +++++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/server/src/classes/Timer.js b/server/src/classes/Timer.js index 1cfd8b700..4c7977ec3 100644 --- a/server/src/classes/Timer.js +++ b/server/src/classes/Timer.js @@ -67,7 +67,9 @@ export class Timer { // helpers static toSeconds(millis) { if (millis == null) return null; - return Math.floor(Math.max(millis * 0.001), 0); + + return Math.ceil(millis * 0.001); + } // get current time in epoc diff --git a/server/src/classes/__tests__/timer.test.js b/server/src/classes/__tests__/timer.test.js index 4b975300e..7d27f817c 100644 --- a/server/src/classes/__tests__/timer.test.js +++ b/server/src/classes/__tests__/timer.test.js @@ -17,4 +17,28 @@ test('object instantiates correctly', () => { expect(t._pausedInterval).toBeNull; expect(t._pausedTotal).toBeNull; expect(t.state).toBe('stop'); -}) \ No newline at end of file +}); + +test('convert between mills and seconds correctly', () => { + expect(Timer.toSeconds(10000)).toBe(10); + expect(Timer.toSeconds(9016)).toBe(10); + expect(Timer.toSeconds(8016)).toBe(9); + expect(Timer.toSeconds(7010)).toBe(8); + expect(Timer.toSeconds(6006)).toBe(7); + expect(Timer.toSeconds(4999)).toBe(5); + expect(Timer.toSeconds(2995)).toBe(3); + expect(Timer.toSeconds(1991)).toBe(2); + expect(Timer.toSeconds(992)).toBe(1); + expect(Timer.toSeconds(127)).toBe(1); + expect(Timer.toSeconds(0)).toBe(0); + expect(Timer.toSeconds(-0)).toBe(-0); + expect(Timer.toSeconds(-127)).toBe(-0); + expect(Timer.toSeconds(-992)).toBe(-0); + expect(Timer.toSeconds(-1991)).toBe(-1); + expect(Timer.toSeconds(-2995)).toBe(-2); + expect(Timer.toSeconds(-4999)).toBe(-4); + expect(Timer.toSeconds(-6006)).toBe(-6); + expect(Timer.toSeconds(-7010)).toBe(-7); + expect(Timer.toSeconds(-8016)).toBe(-8); + expect(Timer.toSeconds(-10000)).toBe(-10); +}); \ No newline at end of file