Skip to content

Commit 11b7791

Browse files
committed
feat: implement repeat function and add tests for string repetition cases
1 parent 8340b1e commit 11b7791

File tree

2 files changed

+32
-3
lines changed

2 files changed

+32
-3
lines changed
Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
1-
function repeatStr() {
2-
return "hellohellohello";
1+
function repeat(str, count) {
2+
if (count < 0) throw new Error("Count cannot be negative");
3+
if (count === 0) return "";
4+
5+
let result = "";
6+
for (let i = 0; i < count; i++) {
7+
result += str;
8+
}
9+
return result;
310
}
411

5-
module.exports = repeatStr;
12+
module.exports = repeat;

Sprint-3/2-practice-tdd/repeat-str.test.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,34 @@ test("should repeat the string count times", () => {
2121
// When the repeatStr function is called with these inputs,
2222
// Then it should return the original str without repetition, ensuring that a count of 1 results in no repetition.
2323

24+
test("should return the original string when count is 1", () => {
25+
const str = "hello";
26+
const count = 1;
27+
const repeatedStr = repeatStr(str, count);
28+
expect(repeatedStr).toEqual("hello");
29+
});
30+
2431
// case: Handle Count of 0:
2532
// Given a target string str and a count equal to 0,
2633
// When the repeatStr function is called with these inputs,
2734
// Then it should return an empty string, ensuring that a count of 0 results in an empty output.
2835

36+
test("should return an empty string when count is 0", () => {
37+
const str = "hello";
38+
const count = 0;
39+
const repeatedStr = repeatStr(str, count);
40+
expect(repeatedStr).toEqual("");
41+
});
42+
2943
// case: Negative Count:
3044
// Given a target string str and a negative integer count,
3145
// When the repeatStr function is called with these inputs,
3246
// Then it should throw an error or return an appropriate error message, as negative counts are not valid.
47+
48+
test("should throw an error when count is negative", () => {
49+
const str = "hello";
50+
const count = -1;
51+
expect(() => {
52+
repeatStr(str, count);
53+
}).toThrow("Count cannot be negative");
54+
});

0 commit comments

Comments
 (0)