From 60e05c42daf1526d03535519bc2dc5474a5d1585 Mon Sep 17 00:00:00 2001 From: mao-sz <122839503+mao-sz@users.noreply.github.com> Date: Thu, 1 Jan 2026 23:05:40 +0000 Subject: [PATCH] Rename "random" test The test name implies it's testing that repeatString itself can repeat randomly, hence the lengthy clarifying comment. In actuality, the test is to ensure the function is generic. Randomness isn't part of the "test case", only the test case's implementation. --- .../06_repeatString/repeatString.spec.js | 19 ++++++------------- .../solution/repeatString-solution.spec.js | 19 ++++++------------- 2 files changed, 12 insertions(+), 26 deletions(-) diff --git a/foundations/06_repeatString/repeatString.spec.js b/foundations/06_repeatString/repeatString.spec.js index 4e8e0586c91..b998de6f1a2 100644 --- a/foundations/06_repeatString/repeatString.spec.js +++ b/foundations/06_repeatString/repeatString.spec.js @@ -13,6 +13,12 @@ describe('repeatString', () => { test.skip('repeats the string 0 times', () => { expect(repeatString('bye', 0)).toEqual(''); }); + test.skip('handles any non-negative integer for repeat count', function () { + /* This test ensures your function is "generic", meaning the previous + tests were not completed by hardcoding values for their respective numbers */ + const number = Math.floor(Math.random() * 1000); + expect(repeatString('hey', number)).toBe('hey'.repeat(number)); + }); test.skip('does not use the built-in String repeat method', () => { /* Even though there is a built-in String repeat method, in this exercise specifically, we want you to practise using loops */ @@ -23,19 +29,6 @@ describe('repeatString', () => { test.skip('returns ERROR with negative numbers', () => { expect(repeatString('goodbye', -1)).toEqual('ERROR'); }); - test.skip('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, - 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); - expect(repeatString('hey', number)).toBe('hey'.repeat(number)); - }); test.skip('works with blank strings', () => { expect(repeatString('', 10)).toEqual(''); }); diff --git a/foundations/06_repeatString/solution/repeatString-solution.spec.js b/foundations/06_repeatString/solution/repeatString-solution.spec.js index 4ed8362e050..6acaa922ce6 100644 --- a/foundations/06_repeatString/solution/repeatString-solution.spec.js +++ b/foundations/06_repeatString/solution/repeatString-solution.spec.js @@ -13,6 +13,12 @@ describe('repeatString', () => { test('repeats the string 0 times', () => { expect(repeatString('bye', 0)).toEqual(''); }); + test('handles any non-negative integer for repeat count', function () { + /* This test ensures your function is "generic", meaning the previous + tests were not completed by hardcoding values for their respective numbers */ + const number = Math.floor(Math.random() * 1000); + expect(repeatString('hey', number)).toBe('hey'.repeat(number)); + }); test('does not use the built-in String repeat method', () => { /* Even though there is a built-in String repeat method, in this exercise specifically, we want you to practise using loops */ @@ -23,19 +29,6 @@ describe('repeatString', () => { test('returns ERROR with negative numbers', () => { expect(repeatString('goodbye', -1)).toEqual('ERROR'); }); - 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, - 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); - expect(repeatString('hey', number)).toBe('hey'.repeat(number)); - }); test('works with blank strings', () => { expect(repeatString('', 10)).toEqual(''); });