From ca96359f406e0d19801d72dbc0225efb02cb50d0 Mon Sep 17 00:00:00 2001 From: Kirill Fomichev Date: Sat, 11 Apr 2015 11:19:50 +0300 Subject: [PATCH] Immutable network Object --- lib/networks.js | 5 +++-- test/networks.js | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/networks.js b/lib/networks.js index 21d5723..e088401 100644 --- a/lib/networks.js +++ b/lib/networks.js @@ -2,6 +2,7 @@ var _ = require('lodash'); var BufferUtil = require('./util/buffer'); +var JSUtil = require('./util/js'); var networks = []; var networkMaps = {}; @@ -64,7 +65,7 @@ function addNetwork(data) { var network = new Network(); - _.extend(network, { + JSUtil.defineImmutable(network, { name: data.name, alias: data.alias, pubkeyhash: data.pubkeyhash, @@ -77,7 +78,7 @@ function addNetwork(data) { dnsSeeds: data.dnsSeeds }); - _.each(_.values(network), function(value) { + _.each(network, function(value) { if (!_.isUndefined(value) && !_.isObject(value)) { networkMaps[value] = network; } diff --git a/test/networks.js b/test/networks.js index d4d9d4d..989e064 100644 --- a/test/networks.js +++ b/test/networks.js @@ -93,4 +93,10 @@ describe('Networks', function() { networks.livenet.toString().should.equal('livenet'); }); + it('network object should be immutable', function() { + expect(networks.testnet.name).to.equal('testnet') + var fn = function() { networks.testnet.name = 'livenet' } + expect(fn).to.throw(TypeError) + }); + });