From f1430ac7574bd68e8d658ebcb1caa2a2407748f5 Mon Sep 17 00:00:00 2001 From: Parastoo Date: Mon, 31 Mar 2025 00:12:01 +0200 Subject: [PATCH 1/2] Add edge case tests for sortNumbers (empty and single item) --- .../example-built-in-sort/sort-numbers.spec.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/sort-numbers/example-built-in-sort/sort-numbers.spec.js b/src/sort-numbers/example-built-in-sort/sort-numbers.spec.js index 1ee26a5..18ec90f 100644 --- a/src/sort-numbers/example-built-in-sort/sort-numbers.spec.js +++ b/src/sort-numbers/example-built-in-sort/sort-numbers.spec.js @@ -65,4 +65,15 @@ describe('sortNumbers sorts an array of numbers', () => { expect(arg).toEqual([3, 2, 1]); }); }); + describe('edge cases', () => { + it('returns empty array when input is empty', () => { + const received = sortNumbers([]); + expect(received).toEqual([]); + }); + + it('returns same array when it has one number', () => { + const received = sortNumbers([42]); + expect(received).toEqual([42]); + }); + }); }); From 74ad80462e79214e55d7a9e3428e2eeb6cd2d44c Mon Sep 17 00:00:00 2001 From: Parastoo Date: Mon, 31 Mar 2025 00:23:24 +0200 Subject: [PATCH 2/2] Refactor sortNumbers to concise arrow function --- .../example-built-in-sort/sort-numbers.js | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/sort-numbers/example-built-in-sort/sort-numbers.js b/src/sort-numbers/example-built-in-sort/sort-numbers.js index c5b7571..bfda4c1 100644 --- a/src/sort-numbers/example-built-in-sort/sort-numbers.js +++ b/src/sort-numbers/example-built-in-sort/sort-numbers.js @@ -16,15 +16,6 @@ * sortNumbers([-1, 0, 1]); * // -> [-1, 0, 1] */ -export const sortNumbers = (arrOfNumbers = []) => { - // create a copy of the argument to avoid side-effects - const copiedAndSorted = [...arrOfNumbers]; +export const sortNumbers = (arrOfNumbers = []) => + [...arrOfNumbers].sort((a, b) => a - b); - // sort the copy according to - copiedAndSorted.sort((a, b) => { - return a - b; - }); - - // return the copied & sorted array of numbers - return copiedAndSorted; -};