From 3073af30b0e778c64081d95933ac2a301e4807a0 Mon Sep 17 00:00:00 2001 From: ANCHITPARATIRA Date: Sun, 31 Aug 2025 01:36:00 +0530 Subject: [PATCH 1/3] hotfix/converted-string-to-uppercase-in-convertUnixToTime --- src/lib/formatters.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/formatters.js b/src/lib/formatters.js index 95b5557c..4e19cd8a 100644 --- a/src/lib/formatters.js +++ b/src/lib/formatters.js @@ -24,5 +24,7 @@ export function convertUnixToTime(seconds) { if (!seconds) return ''; const date = new Date(seconds * 1000); const utcDate = new Date(date.toUTCString().slice(0, -4)); - return utcDate.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }); + const localDateTime = utcDate.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }); + + return localDateTime.replace(/am|pm/, time => time.toUpperCase()); } From d77a8dce67be5ac288a14fc4e93d7fb9db61ffbb Mon Sep 17 00:00:00 2001 From: ANCHITAYUSH Date: Sun, 31 Aug 2025 10:42:00 +0530 Subject: [PATCH 2/3] hotfix/mocked-locale-for-convertUnixToTime-test --- src/lib/formatters.js | 4 +--- src/tests/lib/formatters.test.js | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/lib/formatters.js b/src/lib/formatters.js index 4e19cd8a..95b5557c 100644 --- a/src/lib/formatters.js +++ b/src/lib/formatters.js @@ -24,7 +24,5 @@ export function convertUnixToTime(seconds) { if (!seconds) return ''; const date = new Date(seconds * 1000); const utcDate = new Date(date.toUTCString().slice(0, -4)); - const localDateTime = utcDate.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }); - - return localDateTime.replace(/am|pm/, time => time.toUpperCase()); + return utcDate.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }); } diff --git a/src/tests/lib/formatters.test.js b/src/tests/lib/formatters.test.js index 0e51b900..276152ab 100644 --- a/src/tests/lib/formatters.test.js +++ b/src/tests/lib/formatters.test.js @@ -2,6 +2,24 @@ import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest'; import { convertUnixToTime, formatLastUpdated, formatTime } from '$lib/formatters'; describe('convertUnixToTime', () => { + beforeEach(() => { + vi.useFakeTimers(); + vi.setSystemTime(new Date('2024-01-16T12:00:00Z')); + vi.spyOn(Date.prototype, 'toLocaleTimeString').mockImplementation(function () { + const hours = this.getUTCHours(); + const minutes = this.getUTCMinutes(); + const ampm = hours >= 12 ? 'PM' : 'AM'; + const hour12 = hours % 12 || 12; + const minutesPadded = minutes.toString().padStart(2, '0'); + return `${hour12}:${minutesPadded} ${ampm}`; + }); + }); + + afterEach(() => { + vi.useRealTimers(); + vi.restoreAllMocks(); + }); + it('returns a blank string when its input is null', () => { expect(convertUnixToTime(null)).toBe(''); }); @@ -11,7 +29,7 @@ describe('convertUnixToTime', () => { }); it('converts a Unix timestamp to a locale-specific formatted time', () => { - expect(convertUnixToTime(1727442050)).toBe('01:00 PM'); + expect(convertUnixToTime(1727442050)).toBe('7:30 AM'); }); }); From b31b5eaae3f31e41a9533c99d2d952a57c394d8f Mon Sep 17 00:00:00 2001 From: ANCHITAYUSH Date: Sun, 31 Aug 2025 15:57:11 +0530 Subject: [PATCH 3/3] hotfix/Corrected-timestamp --- src/tests/lib/formatters.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/lib/formatters.test.js b/src/tests/lib/formatters.test.js index 276152ab..23a50717 100644 --- a/src/tests/lib/formatters.test.js +++ b/src/tests/lib/formatters.test.js @@ -29,7 +29,7 @@ describe('convertUnixToTime', () => { }); it('converts a Unix timestamp to a locale-specific formatted time', () => { - expect(convertUnixToTime(1727442050)).toBe('7:30 AM'); + expect(convertUnixToTime(1727442050)).toBe('1:00 PM'); }); });