From dbad16a5e36e97fe9f02092299351e3382560b14 Mon Sep 17 00:00:00 2001 From: marscancode Date: Sat, 3 Oct 2026 22:32:04 +0100 Subject: [PATCH 1/6] added edge case tests for time converter function --- format-clock-edge-cases/timeConverter.test.js | 42 ++++++++++++++++--- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/format-clock-edge-cases/timeConverter.test.js b/format-clock-edge-cases/timeConverter.test.js index 88f2af094..8ab308dca 100644 --- a/format-clock-edge-cases/timeConverter.test.js +++ b/format-clock-edge-cases/timeConverter.test.js @@ -1,11 +1,43 @@ -import {formatAs12HourClock} from "./timeConverter.js"; +import { formatAs12HourClock } from "./timeConverter.js"; import assert from "node:assert"; import test from "node:test"; -test("correctly convert time after 12:00", function(){ - assert.equal(formatAs12HourClock("23:00"), "11:00 pm"); +test("correctly convert time after 12:00", function () { + assert.equal(formatAs12HourClock("23:00"), "11:00 pm"); }); -test("can correctly convert morning time", function() { - assert.equal(formatAs12HourClock("08:00"), "08:00 am"); +test("can correctly convert morning time", function () { + assert.equal(formatAs12HourClock("08:00"), "08:00 am"); +}); + +test("can correctly convert midnight", function () { + assert.equal(formatAs12HourClock("00:00"), "12:00 am"); +}); + +test("correctly convert time 1 hour before 12:00", function () { + assert.equal(formatAs12HourClock("11:00"), "11:00 am"); +}); + +test("correctly convert time 2 hours before 12:00", function () { + assert.equal(formatAs12HourClock("10:00"), "10:00 am"); +}); + +test("correctly convert time 3 hours before 12:00", function () { + assert.equal(formatAs12HourClock("09:00"), "09:00 am"); +}); + +test("can correctly convert every half hour before 12:00", function () { + assert.equal(formatAs12HourClock("09:30"), "09:30 am"); +}); + +test("can correctly convert hours in the afternoon", function () { + assert.equal(formatAs12HourClock("13:00"), "1:00 pm"); +}); + +test("correctly convert half hour after 12:00", function () { + assert.equal(formatAs12HourClock("13:30"), "1:30 pm"); +}); + +test("correctly convert half hour after 12:00", function () { + assert.equal(formatAs12HourClock("23:30"), "11:30 pm"); }); From a21732bec37a1fc915ef151733a559811d3e6815 Mon Sep 17 00:00:00 2001 From: marscancode Date: Sat, 3 Oct 2026 22:44:15 +0100 Subject: [PATCH 2/6] updated function to include midnight and half hour time conversion --- format-clock-edge-cases/timeConverter.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/format-clock-edge-cases/timeConverter.js b/format-clock-edge-cases/timeConverter.js index 310c07bd9..caaf1e699 100644 --- a/format-clock-edge-cases/timeConverter.js +++ b/format-clock-edge-cases/timeConverter.js @@ -1,11 +1,16 @@ function formatAs12HourClock(time) { - const hours = Number(time.slice(0, 2)); + const minutes = time.slice(3, 5); - if (hours > 12) { - return `${hours - 12}:00 pm`; + if (hours === 0) { + return `12:${minutes} am`; + } else if (hours > 12) { + return `${hours - 12}:${minutes} pm`; + } else if (hours === 12) { + return `12:${minutes} pm`; + } else { + return `${time} am`; } - return `${time} am`; } -export {formatAs12HourClock}; +export { formatAs12HourClock }; From bd95d825b826a75a680486bb395da425638a9332 Mon Sep 17 00:00:00 2001 From: marscancode Date: Mon, 5 Oct 2026 20:02:18 +0100 Subject: [PATCH 3/6] added edge case test for 12pm conversion --- format-clock-edge-cases/timeConverter.test.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/format-clock-edge-cases/timeConverter.test.js b/format-clock-edge-cases/timeConverter.test.js index 8ab308dca..4295b21cc 100644 --- a/format-clock-edge-cases/timeConverter.test.js +++ b/format-clock-edge-cases/timeConverter.test.js @@ -41,3 +41,7 @@ test("correctly convert half hour after 12:00", function () { test("correctly convert half hour after 12:00", function () { assert.equal(formatAs12HourClock("23:30"), "11:30 pm"); }); + +test("correctly convert 12:00 pm", function () { + assert.equal(formatAs12HourClock("12:00"), "12:00 pm") +}) From be8c39220b6b812dab4df8118bd94b207b75380b Mon Sep 17 00:00:00 2001 From: marscancode Date: Mon, 5 Oct 2026 20:16:52 +0100 Subject: [PATCH 4/6] added edge case test for 1 minute before 12pm --- format-clock-edge-cases/timeConverter.test.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/format-clock-edge-cases/timeConverter.test.js b/format-clock-edge-cases/timeConverter.test.js index 4295b21cc..d6de459fc 100644 --- a/format-clock-edge-cases/timeConverter.test.js +++ b/format-clock-edge-cases/timeConverter.test.js @@ -43,5 +43,9 @@ test("correctly convert half hour after 12:00", function () { }); test("correctly convert 12:00 pm", function () { - assert.equal(formatAs12HourClock("12:00"), "12:00 pm") -}) + assert.equal(formatAs12HourClock("12:00"), "12:00 pm"); +}); + +test("correctly convert 1 minute before 12:00pm", function () { + assert.equal(formatAs12HourClock("11:59"), "11:59 am"); +}); From 2c38ec510378f31a0ee707fd554b2dad49bf2d8e Mon Sep 17 00:00:00 2001 From: marscancode Date: Mon, 5 Oct 2026 20:20:12 +0100 Subject: [PATCH 5/6] added edge case test for 1 minute before midnight --- format-clock-edge-cases/timeConverter.test.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/format-clock-edge-cases/timeConverter.test.js b/format-clock-edge-cases/timeConverter.test.js index d6de459fc..06ae60c89 100644 --- a/format-clock-edge-cases/timeConverter.test.js +++ b/format-clock-edge-cases/timeConverter.test.js @@ -49,3 +49,7 @@ test("correctly convert 12:00 pm", function () { test("correctly convert 1 minute before 12:00pm", function () { assert.equal(formatAs12HourClock("11:59"), "11:59 am"); }); + +test("correctly convert 1 minute before midnight", function () { + assert.equal(formatAs12HourClock("23:59"), "11:59 pm"); +}); From 6eace5ff49b31d0dc2755198b00cf835457d70a5 Mon Sep 17 00:00:00 2001 From: marscancode Date: Mon, 5 Oct 2026 20:26:46 +0100 Subject: [PATCH 6/6] renamed edge case test 30 mins before midnight --- format-clock-edge-cases/timeConverter.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/format-clock-edge-cases/timeConverter.test.js b/format-clock-edge-cases/timeConverter.test.js index 06ae60c89..35c384ea4 100644 --- a/format-clock-edge-cases/timeConverter.test.js +++ b/format-clock-edge-cases/timeConverter.test.js @@ -38,7 +38,7 @@ test("correctly convert half hour after 12:00", function () { assert.equal(formatAs12HourClock("13:30"), "1:30 pm"); }); -test("correctly convert half hour after 12:00", function () { +test("correctly convert half hour before midnight", function () { assert.equal(formatAs12HourClock("23:30"), "11:30 pm"); });