From 8afaf0a5fdc1d1306c6fa851100eeb49a8a179e2 Mon Sep 17 00:00:00 2001 From: Anshul Malik Date: Fri, 17 Aug 2018 22:43:16 +0530 Subject: [PATCH] first unittest --- .eslintrc.json | 3 ++- package-lock.json | 19 ++++++++++++++++ package.json | 3 ++- test/unit/services/seller.test.js | 37 +++++++++++++++++++++++++++++++ 4 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 test/unit/services/seller.test.js diff --git a/.eslintrc.json b/.eslintrc.json index 3d1618e..1cee8e3 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -9,7 +9,8 @@ }, "globals": { "describe": true, - "it": true + "it": true, + "before": true }, "rules": { "indent": [ diff --git a/package-lock.json b/package-lock.json index 7f4f21a..dc6311e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1168,6 +1168,12 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, + "expect.js": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/expect.js/-/expect.js-0.3.1.tgz", + "integrity": "sha1-sKWaDS7/VDdUTr8M6qYBWEHQm1s=", + "dev": true + }, "express": { "version": "4.16.3", "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", @@ -2578,6 +2584,11 @@ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, + "stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha1-Gsig2Ug4SNFpXkGLbQMaPDzmjjs=" + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -2821,6 +2832,14 @@ "isexe": "2.0.0" } }, + "why-is-node-running": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.0.2.tgz", + "integrity": "sha512-tZABMETAIVjlRGn66r9GPBxboN41ECwYl7dlKABxMY4ow/XyMkSF67h7k206Y+K75VB2kB4Ymx+BfYlB2I3Opw==", + "requires": { + "stackback": "0.0.2" + } + }, "winston": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/winston/-/winston-3.0.0.tgz", diff --git a/package.json b/package.json index 5d45870..57a25a9 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "main": "./bin/www", "scripts": { "start": "export NODE_ENV=production && pm2 start ./bin/www", - "test": "./node_modules/.bin/eslint . && mocha test/**/*.js" + "test": "./node_modules/.bin/eslint . && mocha test/**/**/*.js --exit" }, "keywords": [ "sell-my-services", @@ -29,6 +29,7 @@ }, "devDependencies": { "eslint": "^5.2.0", + "expect.js": "^0.3.1", "mocha": "^5.2.0", "supertest": "^3.1.0" } diff --git a/test/unit/services/seller.test.js b/test/unit/services/seller.test.js new file mode 100644 index 0000000..0e31360 --- /dev/null +++ b/test/unit/services/seller.test.js @@ -0,0 +1,37 @@ +const expect = require('expect.js'); +const { createSeller } = require('../../../services/seller'); +const models = require('../../../models'); + +const testEmail = 'test@test.com'; + +describe('seller service', () => { + before(() => { + return models.seller.destroy({ + where: { + email: testEmail + } + }); + }); + + it('create seller', async () => { + const seller = { + email: testEmail, + latitude: 1, + longitude: 2, + password: '123', + }; + + const expected = { + gender: 'male', + isActive: true, + email: testEmail, + latitude: 1, + longitude: 2 + }; + + const s = await createSeller(seller); + for (let key in expected) { + expect(s[key]).equal(expected[key]); + } + }); +});