You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.5 KiB
67 lines
1.5 KiB
'use strict';
|
|
|
|
var _ = require('lodash');
|
|
var chai = require('chai');
|
|
var sinon = require('sinon');
|
|
var should = chai.should();
|
|
var CliUtils = require('./cli-utils');
|
|
|
|
describe('CliUtils', function() {
|
|
describe('#parseAmount', function() {
|
|
it('should successfully parse amounts', function() {
|
|
var texts = {
|
|
'1': 1,
|
|
'0': 0,
|
|
'1.': 1,
|
|
'000000.0000': 0,
|
|
'123': 123,
|
|
'123sat': 123,
|
|
'123 sat': 123,
|
|
'00123 sat': 123,
|
|
'1.23bit': 123,
|
|
'1.23 bit': 123,
|
|
'0 bit': 0,
|
|
'.45bit': 45,
|
|
'1btc': 100000000,
|
|
' 1btc': 100000000,
|
|
'9999btc': 999900000000,
|
|
'0.00000001btc': 1,
|
|
'00000.00000001BTC': 1,
|
|
'0.00000001 BTC': 1,
|
|
'0.123btc': 12300000,
|
|
'0.123 bTc': 12300000,
|
|
};
|
|
_.each(texts, function(satoshi, text) {
|
|
var amount = CliUtils.parseAmount(text);
|
|
amount.should.equal(satoshi);
|
|
});
|
|
});
|
|
it('should fail to parse incorrect amounts', function() {
|
|
var texts = [
|
|
'',
|
|
' ',
|
|
'btc',
|
|
'1satoshi',
|
|
'no-number',
|
|
'-3',
|
|
'1 b t c',
|
|
'btc1',
|
|
'btc 1',
|
|
'1,234',
|
|
'0.000000001btc',
|
|
'0.1sat',
|
|
'0.123bit',
|
|
'2.000000009btc',
|
|
];
|
|
_.each(texts, function(text) {
|
|
var valid = true;
|
|
try {
|
|
var amount = CliUtils.parseAmount(text);
|
|
} catch (e) {
|
|
valid = false;
|
|
}
|
|
valid.should.be.false;
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|