diff options
| -rw-r--r-- | lib/finance.js | 21 | ||||
| -rw-r--r-- | test/finance.unit.js | 11 |
2 files changed, 32 insertions, 0 deletions
diff --git a/lib/finance.js b/lib/finance.js index 7c2053ab..ada1517f 100644 --- a/lib/finance.js +++ b/lib/finance.js @@ -36,6 +36,27 @@ var Finance = function (faker) { } /** + * routingNumber + * + * @method faker.finance.routingNumber + */ + self.routingNumber = function () { + + var routingNumber = Helpers.replaceSymbolWithNumber('########'); + + // Modules 10 straight summation. + var sum = 0; + + for (var i = 0; i < routingNumber.length; i += 3) { + sum += Number(routingNumber[i]) * 3; + sum += Number(routingNumber[i + 1]) * 7; + sum += Number(routingNumber[i + 2]) || 0; + } + + return routingNumber + (Math.ceil(sum / 10) * 10 - sum); + } + + /** * mask * * @method faker.finance.mask diff --git a/test/finance.unit.js b/test/finance.unit.js index 6bbb51c6..51041e37 100644 --- a/test/finance.unit.js +++ b/test/finance.unit.js @@ -57,6 +57,17 @@ describe('finance.js', function () { }); + describe('routingNumber()', function () { + + it("should return a routing number", function () { + + var actual = faker.finance.routingNumber(); + + assert.ok(actual); + + }); + + }); describe('mask( length, parens, elipsis )', function () { it("should set a default length", function () { |
