Versie 0.2.0

This commit is contained in:
Atreides Assets committed 2026-10-29 11:57:29 +01:00
commit e77d8fd373
495 files changed
+81026

No files matched your search

+62
View File
@@ -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);
});
});