diff --git a/I.pass-tests/01-add-one/add-one.js b/I.pass-tests/01-add-one/add-one.js index d955394c..371394a1 100644 --- a/I.pass-tests/01-add-one/add-one.js +++ b/I.pass-tests/01-add-one/add-one.js @@ -1 +1,6 @@ -module.exports = function(numbers) {}; +module.exports = function(numbers) { + if(numbers.length === 0){ + throw new Error() + } + return numbers.map((n)=> n + 1) +}; \ No newline at end of file diff --git a/I.pass-tests/01-add-one/add-one.test.js b/I.pass-tests/01-add-one/add-one.test.js index 5ed6be59..4601b596 100644 --- a/I.pass-tests/01-add-one/add-one.test.js +++ b/I.pass-tests/01-add-one/add-one.test.js @@ -1,12 +1,19 @@ var addOne = require("./add-one.js"); test("Add 1 to each item in myArray", function() { - var myArray = [31, 57, 12, 5]; + var myArray = [-1, 57, 12, 5]; - var unchanged = [31, 57, 12, 5]; - var expected = [32, 58, 13, 6]; + + var unchanged = [-1, 57, 12, 5]; + var expected = [0, 58, 13, 6]; var output = addOne(myArray); + expect(output).toEqual(expected); expect(myArray).toEqual(unchanged); }); + +test('should throw error if there are no numbers in the array', () => { + const myArray = [] + expect(() => addOne(myArray)).toThrow(Error) +}) \ No newline at end of file diff --git a/I.pass-tests/02-get-word-lengths/get-word-lengths.js b/I.pass-tests/02-get-word-lengths/get-word-lengths.js index d7560427..1be6b6d7 100644 --- a/I.pass-tests/02-get-word-lengths/get-word-lengths.js +++ b/I.pass-tests/02-get-word-lengths/get-word-lengths.js @@ -1,3 +1,13 @@ -var getWordLengths = function(someWords) {}; +var getWordLengths = function(someWords) { + if(someWords.length === 0){ + throw new Error() + } + return someWords.map((word)=> { + if(typeof word != 'string'){ + throw new Error() + } + return word.split('').length + }) +}; -module.exports = getWordLengths; +module.exports = getWordLengths; \ No newline at end of file diff --git a/I.pass-tests/02-get-word-lengths/get-word-lengths.test.js b/I.pass-tests/02-get-word-lengths/get-word-lengths.test.js index 3a43925e..0b8416a9 100644 --- a/I.pass-tests/02-get-word-lengths/get-word-lengths.test.js +++ b/I.pass-tests/02-get-word-lengths/get-word-lengths.test.js @@ -4,6 +4,17 @@ test("Get word lengths", function() { var words = ["sun", "potato", "roundabout", "pizza"]; var expected = [3, 6, 10, 5]; + var output = wordLengths(words); expect(output).toEqual(expected); }); + +test("If there is an element that is not a string", function(){ + const words = [123, "string"] + expect(() => wordLengths(words).toThrow(Error)) +}) + +test("If array of words is empty", function(){ + const words = [] + expect(() => wordLengths(words)).toThrow(Error) +}) \ No newline at end of file diff --git a/I.pass-tests/03-sum-numbers/add-numbers.js b/I.pass-tests/03-sum-numbers/add-numbers.js index 09b2a134..e56d5ce7 100644 --- a/I.pass-tests/03-sum-numbers/add-numbers.js +++ b/I.pass-tests/03-sum-numbers/add-numbers.js @@ -1,2 +1,12 @@ -function addNumbers(numbers) {} +function addNumbers(numbers) { + if(numbers.length===0){ + throw new Error() + } + return numbers.reduce((acc,current)=> { + if (typeof current != 'number'){ + throw new Error() + } + return acc+current + }) +} module.exports = addNumbers; diff --git a/I.pass-tests/03-sum-numbers/add-numbers.test.js b/I.pass-tests/03-sum-numbers/add-numbers.test.js index 8807a720..28bc38fc 100644 --- a/I.pass-tests/03-sum-numbers/add-numbers.test.js +++ b/I.pass-tests/03-sum-numbers/add-numbers.test.js @@ -8,3 +8,13 @@ test("Add all numbers", function() { expect(output).toEqual(expected); }); + +test("Check if array is empty", function() { + var numbers = []; + expect(()=>addAllnumbers(numbers)).toThrow(Error); +}); + +test("If there is an element that is not a number", function(){ + const words = [123, "string"] + expect(() => wordLengths(words).toThrow(Error)) +})