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

+70
View File
@@ -0,0 +1,70 @@
// Generated, do not edit. sha256:e7c1f8e0ef8ff3927bf8ff8a92bc2028aac07446bbf50cb1b0842db32ca8e5f3
import { describe, it, beforeEach, afterEach, mock } from 'node:test';
import assert from 'node:assert/strict';
import { mkdtemp, rm } from 'node:fs/promises';
import { tmpdir } from 'node:os';
import { join } from 'node:path';
let stand = { level: 'free', enforced: true, why: 'none' };
const echt = await import('../../server/license.mjs');
mock.module('../../server/license.mjs', {
namedExports: {
...echt,
licenseState: () => stand,
capacityReached: (soort, huidig) => echt.capacityReached(soort, huidig, stand),
},
});
const { listPortfolios } = await import('../../server/portfolios.mjs');
const { createPortfolio, archivePortfolio } = await import('../../server/portfolios-admin.mjs');
let DIR;
let vorige;
beforeEach(async () => {
vorige = process.env.ASSETAPP_DATA_DIR;
DIR = await mkdtemp(join(tmpdir(), 'assetapp-lic-'));
process.env.ASSETAPP_DATA_DIR = DIR;
stand = { level: 'free', enforced: true, why: 'none' };
});
afterEach(async () => {
if (vorige === undefined) delete process.env.ASSETAPP_DATA_DIR;
else process.env.ASSETAPP_DATA_DIR = vorige;
await rm(DIR, { recursive: true, force: true });
});
describe('de gratis stand op portefeuilles', () => {
it('laat de EERSTE portefeuille gewoon aanmaken', async () => {
await createPortfolio('Eerste');
assert.equal(listPortfolios().length, 1);
});
it('weigert de TWEEDE, met een vertaalbare sleutel', async () => {
await createPortfolio('Eerste');
await assert.rejects(() => createPortfolio('Tweede'), (fout) => {
assert.equal(fout.key, 'portfolios.maxFree');
assert.equal(fout.params.max, 1);
return true;
});
assert.deepEqual(listPortfolios().map((p) => p.naam), ['Eerste']);
});
it('laat de tweede WEL toe in de betaalde stand', async () => {
await createPortfolio('Eerste');
stand = { level: 'full', enforced: true, why: 'licensed' };
await createPortfolio('Tweede');
assert.equal(listPortfolios().length, 2);
});
it('ARCHIVEREN blijft werken boven de grens, en geeft daarna weer ruimte', async () => {
stand = { level: 'full', enforced: true, why: 'licensed' };
await createPortfolio('Eerste');
await createPortfolio('Tweede');
stand = { level: 'free', enforced: true, why: 'none' };
await archivePortfolio('Tweede');
assert.equal(listPortfolios().length, 1);
await assert.rejects(() => createPortfolio('Derde'), (fout) => fout.key === 'portfolios.maxFree');
});
});