// Generated, do not edit. sha256:500c3d5e31a736de36a900bebc7682d080b1ebb8cda99a94331c6ce11a3fab67 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 { CONFIG } = await import('../../shared/config.js'); 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('telt de demo niet mee: naast de demo past nog een eigen portefeuille', async () => { stand = { level: 'full', enforced: true, why: 'licensed' }; await createPortfolio(CONFIG.PORTFOLIO.DEMO_NAME); stand = { level: 'free', enforced: true, why: 'none' }; await createPortfolio('Eigen'); await assert.rejects(() => createPortfolio('Tweede'), (fout) => fout.key === 'portfolios.maxFree'); }); 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'); }); });