Skip to content

London | 26-ITP-Sep | Hanna Bohlin | Sprint 1 | formatAs12HourClock - #1628

Open
habohlin wants to merge 10 commits into
CodeYourFuture:mainfrom
habohlin:Sprint-1-Coursework
Open

habohlin wants to merge 10 commits into
CodeYourFuture:mainfrom
habohlin:Sprint-1-Coursework

Conversation

@habohlin

@habohlin habohlin commented Sep 28, 2026 •

Copy link
Copy Markdown

Learners, PR Template

Self checklist

  • I have titled my PR with Region | Cohort | FirstName LastName | Sprint | Assignment Title
  • My changes meet the requirements of the task
  • I have tested my changes
  • My changes follow the style guide

Task code

CYF-1197

Changelist

I wrote tests for the function for as many edge cases I could think of, and corrected the function to pass the tests when the tests failed.

@github-actions

This comment has been minimized.

@habohlin habohlin added the Needs Review Trainee to add when requesting review. PRs without this label will not be reviewed. label Sep 28, 2026
@github-actions

This comment has been minimized.

@github-actions github-actions Bot removed the Needs Review Trainee to add when requesting review. PRs without this label will not be reviewed. label Sep 28, 2026
@habohlin habohlin added the Needs Review Trainee to add when requesting review. PRs without this label will not be reviewed. label Sep 28, 2026
@illicitonion illicitonion added Review in progress This review is currently being reviewed. This label will be replaced by "Reviewed" soon. and removed Needs Review Trainee to add when requesting review. PRs without this label will not be reviewed. labels Sep 28, 2026

@illicitonion illicitonion left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This works and generally looks good, but I left a few comments to think about :)

Comment on lines +14 to +23
test("can format afternoon time with minutes other than 00", () =>
assert.equal(formatAs12HourClock("15:45"), "03:45 pm"));

test("can format morning time with complex minutes", () =>
assert.equal(formatAs12HourClock("08:25"), "08:25 am"));

test("can format early noon complex minutes", () =>
assert.equal(formatAs12HourClock("12:17"), "12:17 pm"));

test("can format between midnight and 1 am", () =>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are really good tests but you're using inconsistent terminology here - sometimes you're saying "minutes other than 00" and other times "complex minutes". By using different terms it makes me as a reader wonder whether they have different meanings. If you mean the same thing, I'd recommend using the same term.

test("correctly convert time after 12:00", function(){
assert.equal(formatAs12HourClock("23:00"), "11:00 pm");
});
test("correctly convert time after 12:00", () =>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a pretty thorough set of tests - well done!


const hours = Number(time.slice(0, 2));

if (hours > 12) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I notice that in several of your branches you're doing the same thing - writing time.slice(-2) - if you had to change that for some reason, you'd need to change both copies. Can you think how to avoid this duplication?

} else if (hours === 12) {
return `${time} pm`;
} else if (hours === 0) {
return `12:${time.slice(-2)} am`;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've noticed that all of these branches have something in common - at its core, all of them are calculating an "hours", calculating a "minutes", and appending an "am" or "pm"

Often it can be useful to make clear in code what things are the same and what things are different. Can you think how you may structure this code so that you always just return ${hours}:${minutes} am/pm, but make clear with your if statement how you're differently computing those things?

@illicitonion illicitonion added Reviewed Volunteer to add when completing a review with trainee action still to take. and removed Review in progress This review is currently being reviewed. This label will be replaced by "Reviewed" soon. labels Sep 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Reviewed Volunteer to add when completing a review with trainee action still to take.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants