From e7847b0ac16034baffbda4dea19ec812d9181df8 Mon Sep 17 00:00:00 2001 From: Max Hillebrand Date: Fri, 17 Nov 2023 08:59:10 +0100 Subject: [PATCH] solves 02_repeatString --- 02_repeatString/repeatString.js | 11 +++++++- 02_repeatString/repeatString.spec.js | 38 +++++++++++++++------------- 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/02_repeatString/repeatString.js b/02_repeatString/repeatString.js index 4359bbe..4f39c9a 100644 --- a/02_repeatString/repeatString.js +++ b/02_repeatString/repeatString.js @@ -1,5 +1,14 @@ -const repeatString = function() { +const repeatString = function (string, num) { + let addedStrings = ""; + if (num < 0) { + return (addedStrings = "ERROR"); + } else { + for (num; num > 0; num--) { + addedStrings += string; + } + } + return addedStrings; }; // Do not edit below this line diff --git a/02_repeatString/repeatString.spec.js b/02_repeatString/repeatString.spec.js index 912ac20..8aee0f3 100644 --- a/02_repeatString/repeatString.spec.js +++ b/02_repeatString/repeatString.spec.js @@ -1,37 +1,39 @@ -const repeatString = require('./repeatString') +const repeatString = require("./repeatString"); -describe('repeatString', () => { - test('repeats the string', () => { - expect(repeatString('hey', 3)).toEqual('heyheyhey'); +describe("repeatString", () => { + test("repeats the string", () => { + expect(repeatString("hey", 3)).toEqual("heyheyhey"); }); - test.skip('repeats the string many times', () => { - expect(repeatString('hey', 10)).toEqual('heyheyheyheyheyheyheyheyheyhey'); + test("repeats the string many times", () => { + expect(repeatString("hey", 10)).toEqual("heyheyheyheyheyheyheyheyheyhey"); }); - test.skip('repeats the string 1 times', () => { - expect(repeatString('hey', 1)).toEqual('hey'); + test("repeats the string 1 times", () => { + expect(repeatString("hey", 1)).toEqual("hey"); }); - test.skip('repeats the string 0 times', () => { - expect(repeatString('hey', 0)).toEqual(''); + test("repeats the string 0 times", () => { + expect(repeatString("hey", 0)).toEqual(""); }); - test.skip('returns ERROR with negative numbers', () => { - expect(repeatString('hey', -1)).toEqual('ERROR'); + test("returns ERROR with negative numbers", () => { + expect(repeatString("hey", -1)).toEqual("ERROR"); }); - test.skip('repeats the string a random amount of times', function () { + test("repeats the string a random amount of times", function () { /*The number is generated by using Math.random to get a value from between 0 to 1, when this is multiplied by 1000 and rounded down with Math.floor it equals a number between 0 to 999 (this number will change everytime you run the test).*/ - // DO NOT use Math.floor(Math.random() * 1000) in your code, + // DO NOT use Math.floor(Math.random() * 1000) in your code, // this test generates a random number, then passes it into your code with a function parameter. // If this doesn't make sense, you should go read about functions here: https://www.theodinproject.com/paths/foundations/courses/foundations/lessons/fundamentals-part-3 - const number = Math.floor(Math.random() * 1000) + const number = Math.floor(Math.random() * 1000); /*The .match(/((hey))/g).length is a regex that will count the number of heys in the result, which if your function works correctly will equal the number that was randomly generated. */ - expect(repeatString('hey', number).match(/((hey))/g).length).toEqual(number); + expect(repeatString("hey", number).match(/((hey))/g).length).toEqual( + number + ); }); - test.skip('works with blank strings', () => { - expect(repeatString('', 10)).toEqual(''); + test("works with blank strings", () => { + expect(repeatString("", 10)).toEqual(""); }); });