// 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); }); });