Skip to content

Sheffield | 26-ITP-Jan | Mahmoud Shaabo | Sprint 3 | Practice TDD#1214

Open
mahmoudshaabo1984 wants to merge 1 commit intoCodeYourFuture:mainfrom
mahmoudshaabo1984:coursework/sprint-3-practice-tdd
Open

Sheffield | 26-ITP-Jan | Mahmoud Shaabo | Sprint 3 | Practice TDD#1214
mahmoudshaabo1984 wants to merge 1 commit intoCodeYourFuture:mainfrom
mahmoudshaabo1984:coursework/sprint-3-practice-tdd

Conversation

@mahmoudshaabo1984
Copy link

[x] I have tested my changes

[x] My changes follow the style guide

[x] I have titled my PR with Region | Cohort | FirstName LastName | Sprint | Assignment Title

[x] My changes meet the requirements of the task

PR Title:

Sheffield | 26-ITP-Jan | Mahmoud Shaabo | Sprint 3 | Practice TDD

Summary of work:

Completed all mandatory TDD exercises in the 2-practice-tdd directory.

Successfully implemented logic for the following using TDD (Red-Green-Refactor):

count.js: Created a function to count occurrences of a character in a string.

repeat-str.js: Implemented string repetition with a guard clause for negative numbers and the .repeat() method.

get-ordinal-number.js: Solved the complex logic for English ordinal numbers, including specific handling for 11th, 12th, and 13th.

Verified that all 5 tests passed successfully using npm test.

Personal Note for CJ:

Hi CJ,
Following your previous feedback, I have ensured that all checkboxes now use the correct - [x] syntax.
This "Practice TDD" assignment was a significant milestone for me. Navigating the test failures with NVDA and then writing the logic to make them pass helped me deeply understand the TDD cycle. I'm especially pleased with how I handled the edge cases for the ordinal numbers!

Best regards,
Mahmoud Shaabo

@mahmoudshaabo1984 mahmoudshaabo1984 added the Needs Review Trainee to add when requesting review. PRs without this label will not be reviewed. label Mar 7, 2026
Copy link
Contributor

@cjyuan cjyuan left a comment

Choose a reason for hiding this comment

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

  • Code looks good. I just have some suggestions for some of the test descriptions.

  • You missed updating count.test.js.

Comment on lines +27 to +31
test("should append 'th' for 11, 12, and 13", () => {
expect(getOrdinalNumber(11)).toEqual("11th");
expect(getOrdinalNumber(12)).toEqual("12th");
expect(getOrdinalNumber(13)).toEqual("13th");
});
Copy link
Contributor

Choose a reason for hiding this comment

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

Could better update the description and include tests to cover "numbers ending with 11, 12, 13" and not just the three numbers, 11, 12, 13.

Comment on lines +34 to 37
test("should append 'th' for other numbers", () => {
expect(getOrdinalNumber(4)).toEqual("4th");
expect(getOrdinalNumber(10)).toEqual("10th");
});
Copy link
Contributor

Choose a reason for hiding this comment

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

When a test fails with the message "... other numbers", it may be unclear what "other numbers" actually refers to.
Can you revise the test description to make it more informative?

@cjyuan cjyuan added Reviewed Volunteer to add when completing a review with trainee action still to take. and removed Needs Review Trainee to add when requesting review. PRs without this label will not be reviewed. labels Mar 12, 2026
@cjyuan
Copy link
Contributor

cjyuan commented Mar 12, 2026

In the PR description, the checkboxes are currently marked as [x] (without a dash and a space character before [x]).

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