diff --git a/exercises/robot-simulator/example.js b/exercises/robot-simulator/example.js index f086a79ec8..e4d9c48188 100644 --- a/exercises/robot-simulator/example.js +++ b/exercises/robot-simulator/example.js @@ -1,3 +1,10 @@ +export class InvalidInputError extends Error { + constructor(message) { + super(); + this.message = message || 'Invalid Input'; + } +} + class Robot { constructor() { this.coordinates = [0, 0]; @@ -9,6 +16,11 @@ class Robot { } orient(direction) { + const validDirections = ['north', 'south', 'east', 'west']; + if (!validDirections.includes(direction)) { + throw new InvalidInputError('Invalid Robot Bearing'); + } + this.bearing = direction; return `The robot is pointed ${direction}`; } diff --git a/exercises/robot-simulator/robot-simulator.spec.js b/exercises/robot-simulator/robot-simulator.spec.js index d71af12324..2a46dcc534 100644 --- a/exercises/robot-simulator/robot-simulator.spec.js +++ b/exercises/robot-simulator/robot-simulator.spec.js @@ -1,4 +1,5 @@ import Robot from './robot-simulator'; +import { InvalidInputError } from './robot-simulator'; describe('Robot', () => { const robot = new Robot(); @@ -13,11 +14,8 @@ describe('Robot', () => { }); xtest('invalid robot bearing', () => { - try { - robot.orient('crood'); - } catch (exception) { - expect(exception).toEqual('Invalid Robot Bearing'); - } + expect(InvalidInputError.prototype).toBeInstanceOf(Error); + expect(() => robot.orient('crood')).toThrow(InvalidInputError); }); xtest('turn right from north', () => {