|
|
|
import assert from 'assert';
|
|
|
|
import BigNumber from 'bignumber.js';
|
|
|
|
import { addCurrencies, conversionUtil } from './conversion-util';
|
|
|
|
|
|
|
|
describe('conversion utils', function () {
|
|
|
|
describe('addCurrencies()', function () {
|
|
|
|
it('add whole numbers', function () {
|
|
|
|
const result = addCurrencies(3, 9, {
|
|
|
|
aBase: 10,
|
|
|
|
bBase: 10,
|
|
|
|
});
|
|
|
|
assert.strictEqual(result.toNumber(), 12);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('add decimals', function () {
|
|
|
|
const result = addCurrencies(1.3, 1.9, {
|
|
|
|
aBase: 10,
|
|
|
|
bBase: 10,
|
|
|
|
});
|
|
|
|
assert.strictEqual(result.toNumber(), 3.2);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('add repeating decimals', function () {
|
|
|
|
const result = addCurrencies(1 / 3, 1 / 9, {
|
|
|
|
aBase: 10,
|
|
|
|
bBase: 10,
|
|
|
|
});
|
|
|
|
assert.strictEqual(result.toNumber(), 0.4444444444444444);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('conversionUtil', function () {
|
|
|
|
it('Returns expected types', function () {
|
|
|
|
const conv1 = conversionUtil(1000000000000000000, {
|
|
|
|
fromNumericBase: 'dec',
|
|
|
|
toNumericBase: 'hex',
|
|
|
|
});
|
|
|
|
const conv2 = conversionUtil(1, {
|
|
|
|
fromNumericBase: 'dec',
|
|
|
|
fromDenomination: 'ETH',
|
|
|
|
toDenomination: 'WEI',
|
|
|
|
});
|
|
|
|
assert(
|
|
|
|
typeof conv1 === 'string',
|
|
|
|
'conversion 1 should return type string',
|
|
|
|
);
|
|
|
|
assert(conv2 instanceof BigNumber, 'conversion 2 should be a BigNumber');
|
|
|
|
});
|
|
|
|
it('Converts from dec to hex', function () {
|
|
|
|
assert.strictEqual(
|
|
|
|
conversionUtil('1000000000000000000', {
|
|
|
|
fromNumericBase: 'dec',
|
|
|
|
toNumericBase: 'hex',
|
|
|
|
}),
|
|
|
|
'de0b6b3a7640000',
|
|
|
|
);
|
|
|
|
assert.strictEqual(
|
|
|
|
conversionUtil('1500000000000000000', {
|
|
|
|
fromNumericBase: 'dec',
|
|
|
|
toNumericBase: 'hex',
|
|
|
|
}),
|
|
|
|
'14d1120d7b160000',
|
|
|
|
);
|
|
|
|
});
|
|
|
|
it('Converts hex formatted numbers to dec', function () {
|
|
|
|
assert.strictEqual(
|
|
|
|
conversionUtil('0xde0b6b3a7640000', {
|
|
|
|
fromNumericBase: 'hex',
|
|
|
|
toNumericBase: 'dec',
|
|
|
|
}),
|
|
|
|
'1000000000000000000',
|
|
|
|
);
|
|
|
|
assert.strictEqual(
|
|
|
|
conversionUtil('0x14d1120d7b160000', {
|
|
|
|
fromNumericBase: 'hex',
|
|
|
|
toNumericBase: 'dec',
|
|
|
|
}),
|
|
|
|
'1500000000000000000',
|
|
|
|
);
|
|
|
|
});
|
|
|
|
it('Converts WEI to ETH', function () {
|
|
|
|
assert.strictEqual(
|
|
|
|
conversionUtil('0xde0b6b3a7640000', {
|
|
|
|
fromNumericBase: 'hex',
|
|
|
|
toNumericBase: 'dec',
|
|
|
|
fromDenomination: 'WEI',
|
|
|
|
toDenomination: 'ETH',
|
|
|
|
}),
|
|
|
|
'1',
|
|
|
|
);
|
|
|
|
assert.strictEqual(
|
|
|
|
conversionUtil('0x14d1120d7b160000', {
|
|
|
|
fromNumericBase: 'hex',
|
|
|
|
toNumericBase: 'dec',
|
|
|
|
fromDenomination: 'WEI',
|
|
|
|
toDenomination: 'ETH',
|
|
|
|
}),
|
|
|
|
'1.5',
|
|
|
|
);
|
|
|
|
});
|
|
|
|
it('Converts ETH to WEI', function () {
|
|
|
|
assert.strictEqual(
|
|
|
|
conversionUtil('1', {
|
|
|
|
fromNumericBase: 'dec',
|
|
|
|
fromDenomination: 'ETH',
|
|
|
|
toDenomination: 'WEI',
|
|
|
|
}).toNumber(),
|
|
|
|
1000000000000000000,
|
|
|
|
);
|
|
|
|
assert.strictEqual(
|
|
|
|
conversionUtil('1.5', {
|
|
|
|
fromNumericBase: 'dec',
|
|
|
|
fromDenomination: 'ETH',
|
|
|
|
toDenomination: 'WEI',
|
|
|
|
}).toNumber(),
|
|
|
|
1500000000000000000,
|
|
|
|
);
|
|
|
|
});
|
|
|
|
it('Converts ETH to GWEI', function () {
|
|
|
|
assert.strictEqual(
|
|
|
|
conversionUtil('1', {
|
|
|
|
fromNumericBase: 'dec',
|
|
|
|
fromDenomination: 'ETH',
|
|
|
|
toDenomination: 'GWEI',
|
|
|
|
}).toNumber(),
|
|
|
|
1000000000,
|
|
|
|
);
|
|
|
|
assert.strictEqual(
|
|
|
|
conversionUtil('1.5', {
|
|
|
|
fromNumericBase: 'dec',
|
|
|
|
fromDenomination: 'ETH',
|
|
|
|
toDenomination: 'GWEI',
|
|
|
|
}).toNumber(),
|
|
|
|
1500000000,
|
|
|
|
);
|
|
|
|
});
|
|
|
|
it('Converts ETH to USD', function () {
|
|
|
|
assert.strictEqual(
|
|
|
|
conversionUtil('1', {
|
|
|
|
fromNumericBase: 'dec',
|
|
|
|
toNumericBase: 'dec',
|
|
|
|
toCurrency: 'usd',
|
|
|
|
conversionRate: 468.58,
|
|
|
|
numberOfDecimals: 2,
|
|
|
|
}),
|
|
|
|
'468.58',
|
|
|
|
);
|
|
|
|
assert.strictEqual(
|
|
|
|
conversionUtil('1.5', {
|
|
|
|
fromNumericBase: 'dec',
|
|
|
|
toNumericBase: 'dec',
|
|
|
|
toCurrency: 'usd',
|
|
|
|
conversionRate: 468.58,
|
|
|
|
numberOfDecimals: 2,
|
|
|
|
}),
|
|
|
|
'702.87',
|
|
|
|
);
|
|
|
|
});
|
|
|
|
it('Converts USD to ETH', function () {
|
|
|
|
assert.strictEqual(
|
|
|
|
conversionUtil('468.58', {
|
|
|
|
fromNumericBase: 'dec',
|
|
|
|
toNumericBase: 'dec',
|
|
|
|
toCurrency: 'usd',
|
|
|
|
conversionRate: 468.58,
|
|
|
|
numberOfDecimals: 2,
|
|
|
|
invertConversionRate: true,
|
|
|
|
}),
|
|
|
|
'1',
|
|
|
|
);
|
|
|
|
assert.strictEqual(
|
|
|
|
conversionUtil('702.87', {
|
|
|
|
fromNumericBase: 'dec',
|
|
|
|
toNumericBase: 'dec',
|
|
|
|
toCurrency: 'usd',
|
|
|
|
conversionRate: 468.58,
|
|
|
|
numberOfDecimals: 2,
|
|
|
|
invertConversionRate: true,
|
|
|
|
}),
|
|
|
|
'1.5',
|
|
|
|
);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|