{"id":21068750,"url":"https://github.com/uwancha/tdd-testing-practice","last_synced_at":"2026-05-09T16:46:11.063Z","repository":{"id":192125371,"uuid":"685878115","full_name":"Uwancha/TDD-Testing-Practice","owner":"Uwancha","description":"In this project, practiced implementing functionalities following TDD principles","archived":false,"fork":false,"pushed_at":"2023-09-01T19:34:09.000Z","size":84,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-20T21:39:12.657Z","etag":null,"topics":["jest","tdd"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Uwancha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-09-01T08:07:17.000Z","updated_at":"2024-03-23T08:17:02.000Z","dependencies_parsed_at":"2023-09-02T19:03:11.072Z","dependency_job_id":"82b5c87b-8e8f-43b6-b2de-3ddc8cb04fc6","html_url":"https://github.com/Uwancha/TDD-Testing-Practice","commit_stats":null,"previous_names":["uwancha/tdd-testing-practice"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Uwancha%2FTDD-Testing-Practice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Uwancha%2FTDD-Testing-Practice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Uwancha%2FTDD-Testing-Practice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Uwancha%2FTDD-Testing-Practice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Uwancha","download_url":"https://codeload.github.com/Uwancha/TDD-Testing-Practice/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243510056,"owners_count":20302296,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jest","tdd"],"created_at":"2024-11-19T18:24:44.441Z","updated_at":"2025-10-07T16:15:21.772Z","avatar_url":"https://github.com/Uwancha.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TDD-Testing-Practice\n\nThis project is part of The Odin Project's curriculum for learning full stack web development. It focuses on implementing functionalities using Test-Driven Development (TDD) principles.\n\n## Assignments\n\n1. Caesar Cipher\n\n   - Description: Implement a function that encrypts and decrypts messages using the Caesar cipher technique.\n   - File: `caesarCipher.js`\n   - Test File: `caesarCipher.test.js`\n\n2. Array Analysis\n\n   - Description: Build a function that analyzes an array of numbers and returns an object with properties such as average, minimum, maximum, and length.\n   - File: `analyzeArray.js`\n   - Test File: `analyzeArray.test.js`\n\n3. Capitalize\n\n   - Description: Develop a function that takes a string as input and returns the same string with the first letter capitalized.\n   - File: `capitalize.js`\n   - Test File: `capitalize.test.js`\n\n4. Reverse String\n\n   - Description: Create a function that reverses a given string.\n   - File: `reverseString.js`\n   - Test File: `reverseString.test.js`\n\n## Testing\n\nThe project includes comprehensive test suites for each assignment. The test cases cover various scenarios and edge cases to ensure the correctness of the implemented functionalities.\n\nTo run the tests, use the following command:\n\n```bash\nnpm test\n```\n\n## Usage\n\nYou can use the provided functions in your own projects by importing them. Follow the usage examples below:\n\n### Caesar Cipher\n\n```javascript\nimport { caesarCipher } from './caesarCipher.js';\n\nconst encryptedMessage = caesarCipher('Hello, World!', 3);\nconsole.log(encryptedMessage); // Output: 'Khoor, Zruog!'\n\nconst decryptedMessage = caesarCipher('Khoor, Zruog!', -3);\nconsole.log(decryptedMessage); // Output: 'Hello, World!'\n```\n\n### Array Analysis\n\n```javascript\nimport { analyzeArray } from './analyzeArray.js';\n\nconst array = [1, 8, 3, 4, 2, 6];\nconst analysis = analyzeArray(array);\n\nconsole.log(analysis.average); // Output: 4\nconsole.log(analysis.minimum); // Output: 1\nconsole.log(analysis.maximum); // Output: 8\nconsole.log(analysis.length);  // Output: 6\n```\n\n### Capitalize\n\n```javascript\nimport { capitalize } from './Capitalize.js';\n\nconst capitalizedString = Capitalize('hello, world!');\nconsole.log(capitalizedString); // Output: 'Hello, world!'\n```\n\n### Reverse String\n\n```javascript\nimport { reverseString } from './reverseString.js';\n\nconst reversedString = reverseString('hello, world!');\nconsole.log(reversedString); // Output: '!dlrow ,olleh'\n```\n\nFeel free to incorporate these functions into your own projects as needed.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuwancha%2Ftdd-testing-practice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuwancha%2Ftdd-testing-practice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuwancha%2Ftdd-testing-practice/lists"}