Versie 0.2.0
This commit is contained in:
commit
e77d8fd373
495 files changed
+81026
No files matched your search
@@ -0,0 +1,63 @@
|
||||
// Generated, do not edit. sha256:0810eb8c4c62fd3109b5429626a785af591e318584e97a2a5a912991b30c9a95
|
||||
import { describe, it, mock } from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
|
||||
let BASIS = 'EUR';
|
||||
mock.module('../../client/app-settings.js', {
|
||||
namedExports: { appSetting: () => 1, baseCurrency: () => BASIS },
|
||||
});
|
||||
|
||||
const fiat = (symbol, id) => ({ id, symbol, name: symbol, kind: 'fiat' });
|
||||
let ASSETS = [];
|
||||
mock.module('../../client/data/assets.js', { namedExports: { listAssets: async () => ASSETS } });
|
||||
|
||||
let KOERS = {};
|
||||
mock.module('../../client/price/providers.js', {
|
||||
namedExports: { currentRate: async code => (code === BASIS ? 1 : KOERS[code] ?? null) },
|
||||
});
|
||||
|
||||
const { secondCurrencyOf, secondCurrencyChoices, secondAmount } = await import('../../client/widgets/second-currency.js');
|
||||
const { fmtMoney } = await import('../../client/ui/format.js');
|
||||
|
||||
describe('secondCurrencyOf: de keuze van een widget', () => {
|
||||
it('leest de keuze uit params', () => {
|
||||
assert.equal(secondCurrencyOf({ params: { second: 'USD' } }), 'USD');
|
||||
});
|
||||
|
||||
it('valt terug op de oude voorkeur als de widget nooit gekozen heeft', () => {
|
||||
assert.equal(secondCurrencyOf({ params: null }, 'USD'), 'USD');
|
||||
assert.equal(secondCurrencyOf({ params: { assetId: 3 } }, 'USD'), 'USD');
|
||||
});
|
||||
|
||||
it('houdt een bewuste "geen" vast, ook als de oude voorkeur USD zegt', () => {
|
||||
assert.equal(secondCurrencyOf({ params: { second: null } }, 'USD'), null);
|
||||
});
|
||||
|
||||
it('telt de rekenvaluta als geen tweede valuta', () => {
|
||||
BASIS = 'USD';
|
||||
try { assert.equal(secondCurrencyOf({ params: { second: 'USD' } }), null); }
|
||||
finally { BASIS = 'EUR'; }
|
||||
});
|
||||
});
|
||||
|
||||
describe('secondCurrencyChoices: welke munten er te kiezen zijn', () => {
|
||||
it('alleen fiat met een koers, zonder de rekenvaluta, op alfabet', async () => {
|
||||
ASSETS = [fiat('USD', 1), fiat('EUR', 2), fiat('GBP', 3), fiat('JPY', 4), { id: 5, symbol: 'BTC', kind: 'crypto' }];
|
||||
KOERS = { USD: 0.8, GBP: 1.2 };
|
||||
assert.deepEqual(await secondCurrencyChoices(), ['GBP', 'USD']);
|
||||
});
|
||||
});
|
||||
|
||||
describe('secondAmount: het bedrag in de tweede valuta', () => {
|
||||
it('deelt door de koers van die munt', async () => {
|
||||
KOERS = { USD: 0.8 };
|
||||
assert.equal(await secondAmount(800, 'USD', { decimals: 0 }), fmtMoney(1000, 'USD', { decimals: 0 }));
|
||||
});
|
||||
|
||||
it('geeft niets zonder koers, zonder munt of zonder bedrag', async () => {
|
||||
KOERS = {};
|
||||
assert.equal(await secondAmount(800, 'USD'), '');
|
||||
assert.equal(await secondAmount(800, null), '');
|
||||
assert.equal(await secondAmount(null, 'USD'), '');
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user