Files
AtreidesAssetsFree/tests/server/installation.test.mjs
T
2026-10-29 11:57:29 +01:00

49 lines
2.1 KiB
JavaScript

// Generated, do not edit. sha256:3e61f67d82dbe1259a5c61b9f8a08c07ace908e30dd16d94e85cb5c611d6a98a
import { describe, it, beforeEach } from 'node:test';
import assert from 'node:assert/strict';
import { mkdtempSync, writeFileSync, readFileSync } from 'node:fs';
import { tmpdir } from 'node:os';
import { join } from 'node:path';
import { CONFIG } from '../../shared/config.js';
import { installLocale, setInstallLocale, adoptInstallLocale } from '../../server/installation.mjs';
const bestand = () => join(process.env.ASSETAPP_DATA_DIR, CONFIG.INSTALLATION.SETTINGS_FILE_NAME);
beforeEach(() => { process.env.ASSETAPP_DATA_DIR = mkdtempSync(join(tmpdir(), 'assetapp-install-')); });
describe('installatie: de taal', () => {
it('begint een nieuwe installatie in de standaardtaal', () => {
assert.equal(installLocale(), CONFIG.INSTALLATION.DEFAULT_LOCALE);
adoptInstallLocale(undefined);
assert.equal(installLocale(), CONFIG.INSTALLATION.DEFAULT_LOCALE);
});
it('neemt de taal van een bestaande portefeuille één keer over', () => {
adoptInstallLocale('nl');
assert.equal(installLocale(), 'nl');
adoptInstallLocale('en');
assert.equal(installLocale(), 'nl', 'een volgende start overschrijft de gekozen taal niet');
});
it('neemt geen taal over die de app niet kent', () => {
adoptInstallLocale('xx');
assert.equal(installLocale(), CONFIG.INSTALLATION.DEFAULT_LOCALE);
});
it('weigert een onbekende taal en laat het bestand staan', () => {
setInstallLocale('nl');
assert.throws(() => setInstallLocale('xx'), /Unknown locale/);
assert.equal(JSON.parse(readFileSync(bestand(), 'utf8')).locale, 'nl');
});
it('houdt andere instellingen in het bestand', () => {
writeFileSync(bestand(), JSON.stringify({ toekomst: 1 }));
setInstallLocale('nl');
assert.deepEqual(JSON.parse(readFileSync(bestand(), 'utf8')), { toekomst: 1, locale: 'nl' });
});
it('gooit bij een kapot bestand in plaats van stil terug te vallen', () => {
writeFileSync(bestand(), '{ kapot');
assert.throws(() => installLocale(), SyntaxError);
});
});