Versie 0.2.0
This commit is contained in:
commit
e77d8fd373
495 files changed
+81026
No files matched your search
@@ -0,0 +1,62 @@
|
||||
// Generated, do not edit. sha256:69bbcbe886b727fc98661cf558624d706763f80b36c5e23baab99e9c498f13cc
|
||||
import { describe, it, beforeEach, mock } from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
|
||||
import { createDbHarness } from '../helpers/db-node.mjs';
|
||||
import { CONFIG } from '../../shared/config.js';
|
||||
|
||||
const harness = createDbHarness({ seedPreferences: true });
|
||||
mock.module('../../server/db.js', { namedExports: harness.exports });
|
||||
|
||||
const { getBaseCurrency } = await import('../../server/data/portfolio.js');
|
||||
const { getSettings, updateSettings } = await import('../../server/data/preferences.js');
|
||||
const { listBookableAssets } = await import('../../server/data/assets.js');
|
||||
|
||||
beforeEach(() => harness.recreate());
|
||||
|
||||
describe('getBaseCurrency', () => {
|
||||
it('levert de munt van de database', () => {
|
||||
assert.equal(getBaseCurrency(), CONFIG.PORTFOLIO.DEFAULT_BASE_CURRENCY);
|
||||
});
|
||||
|
||||
it('leest de database en niet een standaardwaarde', () => {
|
||||
harness.sqlite.exec(`DROP TRIGGER TrPortfolioDelete; DELETE FROM Portfolio;
|
||||
INSERT INTO Portfolio (id, baseCurrency, createdAt) VALUES (1, 'USD', NULL)`);
|
||||
assert.equal(getBaseCurrency(), 'USD');
|
||||
});
|
||||
|
||||
it('weigert een database zonder munt, in plaats van EUR aan te nemen', () => {
|
||||
harness.sqlite.exec(`DROP TRIGGER TrPortfolioDelete; DELETE FROM Portfolio`);
|
||||
assert.throws(() => getBaseCurrency(), /no unit of account/);
|
||||
});
|
||||
});
|
||||
|
||||
describe('de keuzelijsten volgen de rekenvaluta van de database', () => {
|
||||
const munt = (symbol) => harness.exports.run(
|
||||
`INSERT INTO Asset (symbol, name, searchName, kind, unit, subunit, decimals, displayUnit)
|
||||
VALUES (?, ?, ?, 'fiat', ?, 'cent', 2, 'unit')`, [symbol, symbol, symbol.toLowerCase(), symbol]);
|
||||
const symbolen = () => listBookableAssets().map(a => a.symbol);
|
||||
|
||||
it('in euro: de euro kiesbaar, een ongebruikte dollar niet', () => {
|
||||
munt('EUR'); munt('USD');
|
||||
assert.deepEqual(symbolen(), ['EUR']);
|
||||
});
|
||||
|
||||
it('in dollars: andersom', () => {
|
||||
harness.sqlite.exec(`DROP TRIGGER TrPortfolioDelete; DELETE FROM Portfolio;
|
||||
INSERT INTO Portfolio (id, baseCurrency, createdAt) VALUES (1, 'USD', NULL)`);
|
||||
munt('EUR'); munt('USD');
|
||||
assert.deepEqual(symbolen(), ['USD']);
|
||||
});
|
||||
});
|
||||
|
||||
describe('getSettings: de munt rijdt mee, maar is geen instelling', () => {
|
||||
it('geeft de munt mee in de momentopname', () => {
|
||||
assert.equal(getSettings().baseCurrency, CONFIG.PORTFOLIO.DEFAULT_BASE_CURRENCY);
|
||||
});
|
||||
|
||||
it('laat hem niet via updateSettings wijzigen', async () => {
|
||||
await assert.rejects(() => updateSettings({ baseCurrency: 'USD' }), (e) => e.key === 'settings.unknownSetting');
|
||||
assert.equal(getBaseCurrency(), CONFIG.PORTFOLIO.DEFAULT_BASE_CURRENCY);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user