Skip to content
This repository has been archived by the owner on Jun 11, 2024. It is now read-only.

Improve and refactor Peers module unit tests - Closes #1008 #1045

Merged
merged 7 commits into from
Nov 30, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions test/common/helpers.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
'use strict';

module.exports = {

randomInt: function (min, max) {
min = Math.ceil(min);
max = Math.floor(max);

return Math.floor(Math.random() * (max - min + 1)) + min;
}
};
4 changes: 2 additions & 2 deletions test/common/modulesLoader.js
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ var modulesLoader = new function () {
* @param {function} cb
*/
this.initModules = function (modules, logic, scope, cb) {
scope = _.assign({}, this.scope, scope);
scope = _.merge({}, this.scope, scope);
async.waterfall([
function (waterCb) {
async.reduce(logic, {}, function (memo, logicObj, mapCb) {
Expand All @@ -145,7 +145,7 @@ var modulesLoader = new function () {
}.bind(this), waterCb);
}.bind(this),
function (logic, waterCb) {
scope = _.assign({}, this.scope, scope, {logic: logic});
scope = _.merge({}, this.scope, scope, {logic: logic});
async.reduce(modules, {}, function (memo, moduleObj, mapCb) {
var name = _.keys(moduleObj)[0];
return this.initModule(moduleObj[name], scope, function (err, module) {
Expand Down
43 changes: 31 additions & 12 deletions test/common/objectStubs.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,38 @@
'use strict';

var sinon = require('sinon');
var randomstring = require('randomstring');
var _ = require('lodash');

var randomPeer = {
broadhash: '198f2b61a8eb95fbeed58b8216780b68f697f26b849acf00c8c93bb9b24f783d',
height: 1,
ip: '40.40.40.40',
os: 'unknown',
port: 5000,
httpPort: 4000,
state: 2,
version: '0.0.0',
nonce: 'randomnonce'
var randomNormalizedPeer = {
'broadhash': '198f2b61a8eb95fbeed58b8216780b68f697f26b849acf00c8c93bb9b24f783d',
'height': 1,
'ip': '40.40.40.40',
'os': 'unknown',
'port': 5000,
'httpPort': 4000,
'state': 2,
'version': '0.0.0',
'nonce': randomstring.generate(16)
};

function generateRandomActivePeer () {
var randomDigits = function (length) {
return randomstring.generate({charset: 'numeric', length: length});
};
return {
'broadhash': randomstring.generate(64),
'dappid': null,
'height': randomDigits(4),
'ip': randomDigits(3) + '.' + randomDigits(3) + '.' + randomDigits(3) + '.' + randomDigits(3),
'os': randomstring.generate(10),
'port': randomstring.generate({charset: 'numeric', length: 4}),
'state': 2,
'nonce': randomstring.generate(16),
'version': randomDigits(1) + '.' + randomDigits(1) + '.' + randomDigits(1)
};
}

module.exports = {
randomPeer: randomPeer
randomNormalizedPeer: randomNormalizedPeer,
generateRandomActivePeer: generateRandomActivePeer
};
2 changes: 1 addition & 1 deletion test/functional/ws/transport.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ var WAMPClient = require('wamp-socket-cluster/WAMPClient');
var scClient = require('socketcluster-client');

var node = require('../../node');
var randomPeer = require('../../common/objectStubs').randomPeer;
var randomPeer = require('../../common/objectStubs').randomNormalizedPeer;
var Rules = require('../../../api/ws/workers/rules');
var testConfig = require('../../config.json');
var wsServer = require('../../common/wsServer');
Expand Down
2 changes: 1 addition & 1 deletion test/unit/api/ws/workers/peersUpdateRules.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ var expect = require('chai').expect;
var sinon = require('sinon');
var failureCodes = require('../../../../../api/ws/rpc/failureCodes');
var PeerUpdateError = require('../../../../../api/ws/rpc/failureCodes').PeerUpdateError;
var randomPeer = require('../../../../common/objectStubs').randomPeer;
var randomPeer = require('../../../../common/objectStubs').randomNormalizedPeer;
var connectionsTable = require('../../../../../api/ws/workers/connectionsTable');
var PeersUpdateRules = require('../../../../../api/ws/workers/peersUpdateRules');
var Rules = require('../../../../../api/ws/workers/rules');
Expand Down
25 changes: 25 additions & 0 deletions test/unit/common/helpers/peers.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
'use strict';

var _ = require('lodash');
var randomstring = require('randomstring');

module.exports = {

generateMatchedAndUnmatchedBroadhashes: function (unmatchedAmount) {
var characterNotPresentInValidBroadhash = '@';
var validBroadhash = randomstring.generate({
length: 64,
custom: 'abcdefghijklmnopqrstuvwxyz0123456789!$&_.'
});
return _.range(unmatchedAmount).reduce(function (result) {
result.unmatchedBroadhashes.push(randomstring.generate({
length: 63,
custom: 'abcdefghijklmnopqrstuvwxyz0123456789!$&_.'
}) + characterNotPresentInValidBroadhash);
return result;
}, {
matchedBroadhash: validBroadhash,
unmatchedBroadhashes: []
});
}
};
2 changes: 1 addition & 1 deletion test/unit/helpers/peersManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ var _ = require('lodash');
var chai = require('chai');
var expect = require('chai').expect;
var sinon = require('sinon');
var randomPeer = require('../../common/objectStubs').randomPeer;
var randomPeer = require('../../common/objectStubs').randomNormalizedPeer;
var Peer = require('../../../logic/peer');

var peersManager = require('../../../helpers/peersManager');
Expand Down
2 changes: 1 addition & 1 deletion test/unit/logic/peer.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ var express = require('express');
var ip = require('ip');
var _ = require('lodash');
var sinon = require('sinon');
var randomPeer = require('../../common/objectStubs').randomPeer;
var randomPeer = require('../../common/objectStubs').randomNormalizedPeer;
var Peer = require('../../../logic/peer.js');

describe('peer', function () {
Expand Down
2 changes: 1 addition & 1 deletion test/unit/logic/peers.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ var sinon = require('sinon');

var failureCodes = require('../../../api/ws/rpc/failureCodes');
var modulesLoader = require('../../common/modulesLoader');
var randomPeer = require('../../common/objectStubs').randomPeer;
var randomPeer = require('../../common/objectStubs').randomNormalizedPeer;
var Peers = require('../../../logic/peers.js');
var Peer = require('../../../logic/peer.js');

Expand Down
Loading