From 7530ee9d0e26f62e41c3b04b5bc359f6c03b9929 Mon Sep 17 00:00:00 2001 From: Braydon Fuller Date: Mon, 1 Feb 2016 11:21:49 -0500 Subject: [PATCH] Wallet Model: Check that "m" and "n" arguments are numbers --- lib/model/wallet.js | 6 ++++++ test/models/wallet.js | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/lib/model/wallet.js b/lib/model/wallet.js index eb2b3fe..fa95ffd 100644 --- a/lib/model/wallet.js +++ b/lib/model/wallet.js @@ -18,6 +18,9 @@ Wallet.create = function(opts) { var x = new Wallet(); + $.checkArgument(_.isNumber(opts.m), '"m" is expected to be a number'); + $.checkArgument(_.isNumber(opts.n), '"n" is expected to be a number'); + x.version = '1.0.0'; x.createdOn = Math.floor(Date.now() / 1000); x.id = opts.id || Uuid.v4(); @@ -44,6 +47,9 @@ Wallet.create = function(opts) { Wallet.fromObj = function(obj) { var x = new Wallet(); + $.checkArgument(_.isNumber(obj.m), '"m" is expected to be a number'); + $.checkArgument(_.isNumber(obj.n), '"n" is expected to be a number'); + x.version = obj.version; x.createdOn = obj.createdOn; x.id = obj.id; diff --git a/test/models/wallet.js b/test/models/wallet.js index 0f2f7d0..b8661bd 100644 --- a/test/models/wallet.js +++ b/test/models/wallet.js @@ -9,7 +9,26 @@ var Wallet = require('../../lib/model/wallet'); describe('Wallet', function() { + describe('#create', function() { + it('will throw with an invalid string argument for "m" or "n"', function() { + (function() { + Wallet.create({m: '2', n: 2}); + }).should.throw('"m" is expected to be a number'); + (function() { + Wallet.create({m: 2, n: '2'}); + }).should.throw('"n" is expected to be a number'); + }); + }); + describe('#fromObj', function() { + it('will throw with an invalid string argument for "m" or "n"', function() { + (function() { + Wallet.fromObj({m: '2', n: 2}); + }).should.throw('"m" is expected to be a number'); + (function() { + Wallet.fromObj({m: 2, n: '2'}); + }).should.throw('"n" is expected to be a number'); + }); it('read a wallet', function() { var w = Wallet.fromObj(testWallet); w.isComplete().should.be.true;