39 lines
1.6 KiB
TypeScript
39 lines
1.6 KiB
TypeScript
// License: LGPL-3.0-or-later
|
|
import { createIntl, FormatMoneyOptions } from "./";
|
|
import { Money } from "../../common/money";
|
|
const NBSP = '\xa0';
|
|
|
|
let tests:Array<[Money, FormatMoneyOptions, string]>;
|
|
|
|
describe('formatMoney', () => {
|
|
describe('en', () => {
|
|
const intl = createIntl({locale: 'en'});
|
|
const oneDollar = Money.fromCents(100, 'usd');
|
|
const oneThousandDollars = Money.fromCents(100000, 'usd');
|
|
const oneThousandDollarsTenCents = Money.fromCents(100010, 'usd');
|
|
const oneEuro = Money.fromCents(100, 'eur');
|
|
const oneHundredYen = Money.fromCents(100, 'jpy');
|
|
|
|
tests = [
|
|
[oneDollar, {}, "$1.00"],
|
|
[oneDollar, {currencyDisplay: 'code'}, `USD${NBSP}1.00`],
|
|
[oneDollar, {currencyDisplay: "name"}, "1.00 US dollars"],
|
|
[oneThousandDollars, {}, '$1,000.00'],
|
|
[oneThousandDollars, {currencyDisplay: 'code'}, `USD${NBSP}1,000.00`],
|
|
[oneThousandDollars, {currencyDisplay: "name"}, `1,000.00 US dollars`],
|
|
[oneThousandDollars, {minimumFractionDigits: 0}, "$1,000"],
|
|
[oneThousandDollarsTenCents, {minimumFractionDigits: 2}, "$1,000.10"],
|
|
[oneEuro, {}, "€1.00"],
|
|
[oneEuro, {currencyDisplay: 'code'}, `EUR${NBSP}1.00`],
|
|
[oneEuro, {currencyDisplay: "name"}, "1.00 euros"],
|
|
[oneHundredYen, {}, "¥100"],
|
|
[oneHundredYen, {currencyDisplay: 'code'}, `JPY${NBSP}100`],
|
|
[oneHundredYen, {currencyDisplay: "name"}, "100 Japanese yen"],
|
|
];
|
|
it.each(tests)('money representing %j with opts %j returns %s', (money, opts, expected ) => {
|
|
expect.assertions(1);
|
|
const output = intl.formatMoney(money, opts);
|
|
expect(output).toBe(expected);
|
|
});
|
|
});
|
|
});
|