From 7a8d3c97132a7177bbc078dfe30683a3e064b86e Mon Sep 17 00:00:00 2001 From: Katarina Uvanovic Date: Sun, 23 Jun 2019 19:05:22 +0100 Subject: [PATCH] finished code --- __tests__/kata1.fizzBuzz.test.js | 14 ++++++----- __tests__/kata2.booleanToWord.test.js | 7 ++++-- .../kata3.numberToReversedDigits.test.js | 4 ++-- __tests__/kata4.humanCatDogYears.test.js | 11 +++++++-- __tests__/kata5.reachDestination.test.js | 4 ++-- __tests__/kata6.joinNames.test.js | 11 +++++++-- __tests__/kata7.getEmployerRole.test.js | 8 +++++-- src/kata1.fizzBuzz.js | 6 ++++- src/kata2.booleanToWord.js | 8 +++++-- src/kata3.numberToReversedDigits.js | 2 +- src/kata4.humanCatDogYears.js | 23 +++++++++++++++++++ src/kata5.reachDestination.js | 4 ++-- src/kata6.joinNames.js | 3 ++- src/kata7.getEmployerRole.js | 10 +++++--- 14 files changed, 87 insertions(+), 28 deletions(-) diff --git a/__tests__/kata1.fizzBuzz.test.js b/__tests__/kata1.fizzBuzz.test.js index d2d8029..0dfec3d 100644 --- a/__tests__/kata1.fizzBuzz.test.js +++ b/__tests__/kata1.fizzBuzz.test.js @@ -1,19 +1,21 @@ -const { fizzBuzz } = require('../src'); +import { fizzBuzz } from '../src/kata1.fizzBuzz'; describe('fizzBuzz', () => { - it('returns Fizz when passed a multiple of 3', () => { - + xit('returns Fizz when passed a multiple of 3', () => { + expect(fizzBuzz(3)).toBe('Fizz') }); it('returns Buzz when passed a multiple of 5', () => { - + expect(fizzBuzz(5)).toBe('Buzz') }); it('returns FizzBuzz when passed a multiple 3 and 5', () => { - + expect(fizzBuzz(15)).toBe('FizzBuzz') + expect(fizzBuzz(30)).toBe('FizzBuzz') + expect(fizzBuzz(90)).toBe('FizzBuzz') }); - it('returns the number when it isn\'t a multiple of 3 or 5', () => { + xit('returns the number when it isn\'t a multiple of 3 or 5', () => { }); }); diff --git a/__tests__/kata2.booleanToWord.test.js b/__tests__/kata2.booleanToWord.test.js index 7933251..553d243 100644 --- a/__tests__/kata2.booleanToWord.test.js +++ b/__tests__/kata2.booleanToWord.test.js @@ -1,5 +1,8 @@ -const { booleanToWord } = require('../src'); +const booleanToWord = require('../src/kata2.booleanToWord'); describe('booleanToWord', () => { - // how do we create specs again??? + it('test booleanToWord', () => { + expect(booleanToWord(true)).toBe('Yes'); + expect(booleanToWord(false)).toBe('No'); + }) }); diff --git a/__tests__/kata3.numberToReversedDigits.test.js b/__tests__/kata3.numberToReversedDigits.test.js index ecddf13..575adef 100644 --- a/__tests__/kata3.numberToReversedDigits.test.js +++ b/__tests__/kata3.numberToReversedDigits.test.js @@ -1,7 +1,7 @@ -const { numberToReversedDigits } = require('../src'); +const numberToReversedDigits = require('../src/kata3.numberToReversedDigits'); describe('numberToReversedDigits', () => { it('returns a reversed array of the number\'s digits', () => { - + expect(numberToReversedDigits(12345)).toEqual(['5', '4', '3', '2', '1']); }); }); diff --git a/__tests__/kata4.humanCatDogYears.test.js b/__tests__/kata4.humanCatDogYears.test.js index b9404ca..ac548e8 100644 --- a/__tests__/kata4.humanCatDogYears.test.js +++ b/__tests__/kata4.humanCatDogYears.test.js @@ -1,3 +1,10 @@ -const { humanCatDogYears } = require('../src'); +const humanCatDogYears = require('../src/kata4.humanCatDogYears'); -// Look Ma, no handlebars!!! +describe('humanCatDogYears', () => { +it('returns human, cat and dog years', () => { + expect(humanCatDogYears(1)).toEqual([1, 15, 15]); + expect(humanCatDogYears(2)).toEqual([2, 24, 24]); + expect(humanCatDogYears(3)).toEqual([3, 28, 29]); + expect(humanCatDogYears(4)).toEqual([4, 32, 34]); +}) +}); \ No newline at end of file diff --git a/__tests__/kata5.reachDestination.test.js b/__tests__/kata5.reachDestination.test.js index de5b8ee..561b46c 100644 --- a/__tests__/kata5.reachDestination.test.js +++ b/__tests__/kata5.reachDestination.test.js @@ -1,7 +1,7 @@ -const { reachDestination } = require('../src'); +const reachDestination = require('../src/kata5.reachDestination'); describe('reachDestination', () => { it('returns string with estimated time of arrival', () => { - + expect(reachDestination(5, 10)).toBe('I should be there in 0.5 hours.'); }); }); diff --git a/__tests__/kata6.joinNames.test.js b/__tests__/kata6.joinNames.test.js index 94b7cae..3791932 100644 --- a/__tests__/kata6.joinNames.test.js +++ b/__tests__/kata6.joinNames.test.js @@ -1,7 +1,14 @@ -const { joinNames } = require('../src'); +const joinNames = require('../src/kata6.joinNames'); describe('joinNames', () => { it('returns string of names, seperated by commas and an ampersand', () => { - + const data = [{ + name: 'Bart' + }, { + name: 'Lisa' + }, { + name: 'Maggie' + }]; + expect(joinNames(data)).toEqual('Bart, Lisa & Maggie'); }); }); diff --git a/__tests__/kata7.getEmployerRole.test.js b/__tests__/kata7.getEmployerRole.test.js index ca3bbdd..a6fb84c 100644 --- a/__tests__/kata7.getEmployerRole.test.js +++ b/__tests__/kata7.getEmployerRole.test.js @@ -1,7 +1,11 @@ -const { getEmployerRole } = require('../src'); +const getEmployerRole = require('../src/kata7.getEmployerRole'); describe('getEmployerRole', () => { + const employees = [{ + name: 'Javid', + role: 'Human Recommended Reading Assistant' + }]; it('returns the employee\'s role in the company', () => { - + expect(getEmployerRole('Javid', employees).toEqual('Human Recommended Reading Assistant')) }); }); diff --git a/src/kata1.fizzBuzz.js b/src/kata1.fizzBuzz.js index 64ec4f6..a8e1eab 100644 --- a/src/kata1.fizzBuzz.js +++ b/src/kata1.fizzBuzz.js @@ -1,5 +1,9 @@ const fizzBuzz = (number) => { + if (number % 5 === 0) { + return 'Buzz'; + } + return 'Fizz'; } -module.exports = fizzBuzz; +export default fizzBuzz; \ No newline at end of file diff --git a/src/kata2.booleanToWord.js b/src/kata2.booleanToWord.js index 2e4e298..8654ae2 100644 --- a/src/kata2.booleanToWord.js +++ b/src/kata2.booleanToWord.js @@ -1,5 +1,9 @@ const booleanToWord = (boolean) => { - + if (boolean === true) { + return 'Yes'; + } else { + return 'No'; + } } -module.exports = booleanToWord; +module.exports = booleanToWord diff --git a/src/kata3.numberToReversedDigits.js b/src/kata3.numberToReversedDigits.js index 8596f16..16865fa 100644 --- a/src/kata3.numberToReversedDigits.js +++ b/src/kata3.numberToReversedDigits.js @@ -1,5 +1,5 @@ const numberToReversedDigits = (number) => { - + return number.toString().split('').reverse(''); } module.exports = numberToReversedDigits; diff --git a/src/kata4.humanCatDogYears.js b/src/kata4.humanCatDogYears.js index ac20c7b..12ad001 100644 --- a/src/kata4.humanCatDogYears.js +++ b/src/kata4.humanCatDogYears.js @@ -1,5 +1,28 @@ const humanCatDogYears = (number) => { +let tmp = number; +let catAge = 0; +let dogAge = 0; +if (tmp === 0) { + return [0, 0, 0]; +} + +if (tmp > 0) { +catAge += 15; +dogAge += 15; +} + +if (tmp > 1) { +catAge += 9; +dogAge += 9; +} + +if (tmp > 2) { +catAge += (4 * (tmp-2)); +dogAge += (5 * (tmp-2)); +} + +return [number, catAge, dogAge] } module.exports = humanCatDogYears; diff --git a/src/kata5.reachDestination.js b/src/kata5.reachDestination.js index 190d38f..3b4d66e 100644 --- a/src/kata5.reachDestination.js +++ b/src/kata5.reachDestination.js @@ -1,5 +1,5 @@ -const reachDestination = (distance, speed) => { - +const reachDestination = (d, s) => { + return `I should be there in ${Math.round((d/s) * 2) / 2} hours.`; } module.exports = reachDestination; diff --git a/src/kata6.joinNames.js b/src/kata6.joinNames.js index 5ec1f30..2ff0562 100644 --- a/src/kata6.joinNames.js +++ b/src/kata6.joinNames.js @@ -1,5 +1,6 @@ const joinNames = (namesObj) => { - + const names = namesObj.map((x) => x.name).join(', ') + return names.substring(0, names.lastIndexOf(',')) + ' &' + names.substring(names.lastIndexOf(',') +1) } module.exports = joinNames; diff --git a/src/kata7.getEmployerRole.js b/src/kata7.getEmployerRole.js index 16c9d6b..8235cf1 100644 --- a/src/kata7.getEmployerRole.js +++ b/src/kata7.getEmployerRole.js @@ -1,5 +1,9 @@ const getEmployerRole = (employeeName, employees) => { + for (employee of employees) { + if (employee === employeeName) { + return getEmployerRole; + } + } +}; -} - -module.exports = getEmployerRole +module.exports = getEmployerRole; \ No newline at end of file