From 0dbaf8676d088d9a7a2cbd4f7e82c78a8208ffeb Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Thu, 19 Apr 2012 23:09:10 +0100 Subject: [PATCH] Ensure encode throws an error if receiving anything else than a integer --- src/base58.coffee | 2 +- test/base58_test.coffee | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/base58.coffee b/src/base58.coffee index 30b2082..eadb6cd 100644 --- a/src/base58.coffee +++ b/src/base58.coffee @@ -4,7 +4,7 @@ class Base58Builder @base = @alphabet.length encode: (num) -> - throw new Error('Value passed is not a number.') if typeof num != 'number' + throw new Error('Value passed is not an integer.') unless /^\d+$/.test num str = '' while num >= @base mod = num % @base diff --git a/test/base58_test.coffee b/test/base58_test.coffee index 6efc829..0dad57f 100644 --- a/test/base58_test.coffee +++ b/test/base58_test.coffee @@ -10,9 +10,15 @@ describe 'Base58', -> for str, num of examples Base58.encode(num).should.eql(str) + describe 'when passed a float', -> + it 'throws an error', -> + (-> Base58.encode(3.14)).should + .throw('Value passed is not an integer.') + describe 'when passed a non-number value', -> it 'throws an error', -> - (-> Base58.encode('hi')).should.throw('Value passed is not a number.') + (-> Base58.encode('hi')).should + .throw('Value passed is not an integer.') describe '.decode', -> it 'decodes Base58 string to number', ->