From c29f95d776cb4800732abd30892e8716f9c87be5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sza=C5=82apak?= Date: Tue, 3 Oct 2023 17:25:31 +0200 Subject: [PATCH] tests passed --- .github/workflows/test.yml | 2 +- package.json | 2 +- src/makeRobot.js | 60 ++++++++++++++++++++++++++++++++++++-- 3 files changed, 60 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c27de3ea1..def73e604 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,5 +19,5 @@ jobs: uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - - run: npm ci + - run: npm install - run: npm test diff --git a/package.json b/package.json index 6ca0f9705..3994da7e2 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "license": "GPL-3.0", "devDependencies": { "@mate-academy/eslint-config": "*", - "@mate-academy/scripts": "^0.3.1", + "@mate-academy/scripts": "^1.2.8", "eslint": "^5.16.0", "eslint-plugin-jest": "^22.4.1", "eslint-plugin-node": "^8.0.1", diff --git a/src/makeRobot.js b/src/makeRobot.js index 4bcef1e45..40734b899 100644 --- a/src/makeRobot.js +++ b/src/makeRobot.js @@ -31,14 +31,70 @@ * @property {number} version * @property {function} info * - * @param {string} name + * @param {string} _name * @param {number} wheels * @param {number} version * * @return {Robot} */ function makeRobot(name, wheels, version) { - // write code here + const robot = { + name, + wheels, + version, + coords: { + x: 0, + y: 0, + }, + + get info() { + return `name: ${this.name}, ` + + `chip version: ${this.version}, ` + `wheels: ${this.wheels}`; + }, + + get location() { + return `${this.name}: x=${this.coords.x}, y=${this.coords.y}`; + }, + + goForward(value = 1) { + if (value > 0) { + this.coords.y += value; + } + + return this; + }, + + goBack(value = 1) { + if (value > 0) { + this.coords.y -= value; + } + + return this; + }, + + goRight(value = 1) { + if (value > 0) { + this.coords.x += value; + } + + return this; + }, + + goLeft(value = 1) { + if (value > 0) { + this.coords.x -= value; + } + + return this; + }, + + evacuate() { + this.coords.x = 1400; + this.coords.y = 500; + }, + }; + + return robot; } module.exports = makeRobot;