diff --git a/package-lock.json b/package-lock.json index a4cf1d6..b029eca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "diy-kata", - "version": "1.0.0", + "version": "2.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1979,7 +1979,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -2000,12 +2001,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2020,17 +2023,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -2147,7 +2153,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -2159,6 +2166,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -2173,6 +2181,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -2180,12 +2189,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -2204,6 +2215,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -2284,7 +2296,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -2296,6 +2309,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -2381,7 +2395,8 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -2417,6 +2432,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -2436,6 +2452,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -2479,12 +2496,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, diff --git a/src/kata1.fizzBuzz.js b/src/kata1.fizzBuzz.js index 4b8c7f3..713ff8d 100644 --- a/src/kata1.fizzBuzz.js +++ b/src/kata1.fizzBuzz.js @@ -1,3 +1,17 @@ -const fizzBuzz = number => {}; +const fizzBuzz = number => { + const divisableByThree = number % 3 === 0; + const divisablebyFive = number % 5 === 0; + + if ( divisableByThree && divisablebyFive ) { + return "FizzBuzz"; + } + if ( divisableByThree) { + return "Fizz"; + } + if (divisablebyFive ) { + return "Buzz"; + } + return number; +}; module.exports = fizzBuzz; diff --git a/src/kata2.booleanToWord.js b/src/kata2.booleanToWord.js index 8602242..8394ea3 100644 --- a/src/kata2.booleanToWord.js +++ b/src/kata2.booleanToWord.js @@ -1,3 +1,11 @@ -const booleanToWord = boolean => {}; +const booleanToWord = boolean => { + if(boolean === true){ + return 'YES' + } else { + return 'NO' + } + }; + + module.exports = booleanToWord; diff --git a/src/kata3.numberToReversedDigits.js b/src/kata3.numberToReversedDigits.js index cda9453..f27619a 100644 --- a/src/kata3.numberToReversedDigits.js +++ b/src/kata3.numberToReversedDigits.js @@ -1,3 +1,5 @@ -const numberToReversedDigits = number => {}; +const numberToReversedDigits = number => splitArray = number.toString().split("").map(Number).reverse(); + + module.exports = numberToReversedDigits; diff --git a/src/kata5.reachDestination.js b/src/kata5.reachDestination.js index a8e66a4..091462b 100644 --- a/src/kata5.reachDestination.js +++ b/src/kata5.reachDestination.js @@ -1,3 +1,7 @@ -const reachDestination = (distance, speed) => {}; +const reachDestination = (distance, speed) => { + const time = distance / speed; + const MainTime = Math.round(time * 2) / 2; + return "should reach destination in " + MainTime + " hours." + }; module.exports = reachDestination; diff --git a/src/kata6.joinNames.js b/src/kata6.joinNames.js index 760e0e4..485dee6 100644 --- a/src/kata6.joinNames.js +++ b/src/kata6.joinNames.js @@ -1,3 +1,7 @@ -const joinNames = namesObj => {}; +const joinNames = namesObj => { + const names = namesObj.map(person => person.name).join(", "); + const comma = names.lastIndexOf(","); + return `${names.substr(0, comma)} &${names.substr(comma + 1)}`; + }; module.exports = joinNames; diff --git a/src/kata7.getEmployerRole.js b/src/kata7.getEmployerRole.js index 4f97ba7..e81e0d5 100644 --- a/src/kata7.getEmployerRole.js +++ b/src/kata7.getEmployerRole.js @@ -1,3 +1,4 @@ -const getEmployerRole = (employeeName, employees) => {}; +const getEmployerRole = (employeeName, employees) => employees.find(person => + person.name === employeeName).role; module.exports = getEmployerRole; diff --git a/test/kata1.fizzBuzz.test.js b/test/kata1.fizzBuzz.test.js index 783d843..9a5e47a 100644 --- a/test/kata1.fizzBuzz.test.js +++ b/test/kata1.fizzBuzz.test.js @@ -1,11 +1,21 @@ const { fizzBuzz } = require("../src"); describe("fizzBuzz", () => { - test("returns Fizz when passed a multiple of 3", () => {}); + + + test("returns Fizz when passed a multiple of 3", () => { + expect(fizzBuzz(9)).toEqual('Fizz') + }); + test("returns Buzz when passed a multiple of 5", () => { + expect(fizzBuzz(5)).toBe("Buzz"); + }); - test("returns Buzz when passed a multiple of 5", () => {}); + test("returns FizzBuzz when passed a multiple 3 and 5", () => { + expect(fizzBuzz(15)).toBe("FizzBuzz"); + }); - test("returns FizzBuzz when passed a multiple 3 and 5", () => {}); - - test("returns the number when it isn't a multiple of 3 or 5", () => {}); + test("returns the number when it isn't a multiple of 3 or 5", () => { + expect(fizzBuzz(11)).toBe(11); + } + ); }); diff --git a/test/kata2.booleanToWord.test.js b/test/kata2.booleanToWord.test.js index 867bbf3..8cbb3cd 100644 --- a/test/kata2.booleanToWord.test.js +++ b/test/kata2.booleanToWord.test.js @@ -1,5 +1,9 @@ const { booleanToWord } = require("../src"); describe("booleanToWord", () => { - // how do we create specs again??? + test('converts a boolean to string', () =>{ + expect(booleanToWord(true)).toEqual('YES') + }) }); + + diff --git a/test/kata3.numberToReversedDigits.test.js b/test/kata3.numberToReversedDigits.test.js index 3b453ca..14f2237 100644 --- a/test/kata3.numberToReversedDigits.test.js +++ b/test/kata3.numberToReversedDigits.test.js @@ -1,5 +1,7 @@ const { numberToReversedDigits } = require("../src"); describe("numberToReversedDigits", () => { - test("returns a reversed array of the number's digits", () => {}); + it("returns a reversed array of numbers", () => { + expect(numberToReversedDigits(6575)).toEqual([5, 7, 5, 6]); + }); }); diff --git a/test/kata5.reachDestination.test.js b/test/kata5.reachDestination.test.js index d2bb1c6..c40c121 100644 --- a/test/kata5.reachDestination.test.js +++ b/test/kata5.reachDestination.test.js @@ -1,5 +1,7 @@ const { reachDestination } = require("../src"); describe("reachDestination", () => { - test("returns string with estimated time of arrival", () => {}); -}); + it("returns string with estimated time of arrival 44/10", () => { + expect(reachDestination(44, 10)).toBe("should reach destination in 4.5 hours."); + }); +}); \ No newline at end of file diff --git a/test/kata6.joinNames.test.js b/test/kata6.joinNames.test.js index 9936984..f7bf1d8 100644 --- a/test/kata6.joinNames.test.js +++ b/test/kata6.joinNames.test.js @@ -1,5 +1,14 @@ const { joinNames } = require("../src"); describe("joinNames", () => { - test("returns string of names, seperated by commas and an ampersand", () => {}); + const friendsArray = [ + { name: "Ross" }, + { name: "Joey" }, + { name: "Rachel" } + ]; + + + it("returns string of names, seperated by commas and an ampersand from the friendssArray", () => { + expect(joinNames(friendsArray)).toBe("Ross, Joey & Rachel"); + }); }); diff --git a/test/kata7.getEmployerRole.test.js b/test/kata7.getEmployerRole.test.js index f5e2db8..c5238f4 100644 --- a/test/kata7.getEmployerRole.test.js +++ b/test/kata7.getEmployerRole.test.js @@ -1,5 +1,14 @@ const { getEmployerRole } = require("../src"); describe("getEmployerRole", () => { - test("returns the employee's role in the company", () => {}); + const players= [ + { name: "Harry", role: "Striker" }, + { name: "Sterling", role: "Winger" }, + { name: "Mings", role: "center back" }, + { name: "Saka", role: "winger" } + ]; + + it("returns the players role in the team", () => { + expect(getEmployerRole("Harry", players)).toEqual("Striker"); + }); });