From dd182678e964d1eb82c9a2418f73749736059123 Mon Sep 17 00:00:00 2001 From: Vladimir Kovpak Date: Fri, 23 Jun 2017 15:39:16 +0300 Subject: [PATCH] Added tests. --- README.md | 6 ++++-- index.js | 3 +-- package.json | 5 +++-- test/test.js | 32 +++++++++++++++++++++++++++----- 4 files changed, 35 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 0f87fca..502d344 100644 --- a/README.md +++ b/README.md @@ -16,13 +16,15 @@ which helps fetch data from different REST API endpoints into one request. ````js const getthemall = require('getthemall'); -app.use('/resources', (req, res) => { - getthemall(req, res, (data) => { +app.use('/resources', function(req, res) { + getthemall(req, res, function (data) { res.json(data); }); }); ```` +You can find example of usage [here](github.com/cn007b/simplerestapi). + ## Tests `npm test` diff --git a/index.js b/index.js index 39ce1a8..6689597 100644 --- a/index.js +++ b/index.js @@ -22,10 +22,9 @@ const fetchData = function(resourceName, url, cb) { * Performs fetch data from different endpoints simultaneously. * * @param {object} req Request object. - * @param {object} res Response object. * @param {function} cb Callback function, which will receive array with all obtained data. */ -module.exports = function(req, res, cb) { +module.exports = function(req, cb) { var host = req.protocol + '://' + req.get('host') + '/'; var promises = []; diff --git a/package.json b/package.json index 37ad41b..ca74ff9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "getthemall", - "version": "1.1.1", + "version": "1.2.1", "description": "Simple demo package.", "main": "index.js", "scripts": { @@ -24,7 +24,8 @@ "chai": "^4.0.2", "coveralls": "^2.13.1", "istanbul": "^0.4.5", - "mocha": "^3.4.2" + "mocha": "^3.4.2", + "nock": "^9.0.13" }, "dependencies": { "node-fetch": "^1.7.1" diff --git a/test/test.js b/test/test.js index 64d2bf2..360721f 100644 --- a/test/test.js +++ b/test/test.js @@ -1,12 +1,34 @@ -'use strict'; +var nock = require('nock'); +const chai = require('chai'); +const expect = chai.expect; -let expect = require('chai').expect; -let getthemall = require('../index'); +const getthemall = require('../index'); describe('#getthemall', function() { - it('Fake', function() { - expect(true).to.equal(true); + it('Main test', function(done) { + // Mock `fetch` function. + nock('https://fake.host.com') + .get('/users/1') + .reply(200, '{"id": 1, "name": "James Bond"}') + ; + // Stub express request. + var req = { + protocol: 'https', + get: function (key) { + return 'fake.host.com'; + }, + query: { + usersList: 'users/1' + } + }; + // Perform action. + getthemall(req, function (data) { + var actualResult = JSON.stringify(data); + var expectedResult = '{"usersList":{"id":1,"name":"James Bond"}}'; + expect(actualResult).to.equal(expectedResult); + done(); + }); }); });