Files
ferdi2goandClaude Fable 5.1 95756778d8 Rotatory anlegen: Morning-Meeting-Moderation auslosen und nach Nextcloud schreiben
Express-App mit JSON-Speicher unter VCH_DATA_DIR, Monatskalender mit Fotos,
Personen mit Rollen und Teilzeit-Freitagen, Abwesenheiten, Feiertage je
Bundesland, faire Zufallsauslosung mit Fixieren und Neu-Auslosen.

Nextcloud: CalDAV-Discovery, Zielkalender wählbar, Termine je Werktag
schreiben und aktualisieren, Abwesenheiten aus Kalender importieren,
Personen samt Fotos aus dem Systemadressbuch übernehmen.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 06:39:37 +00:00

23 lines
1.0 KiB
JavaScript

import { test } from 'node:test';
import assert from 'node:assert/strict';
import fs from 'node:fs';
import os from 'node:os';
import path from 'node:path';
import { loadEnvFile } from '../server/env.js';
test('.env laden ohne bestehende Variablen zu überschreiben', () => {
const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'rot-'));
const file = path.join(dir, '.env');
fs.writeFileSync(file, '# Kommentar\nROT_A=eins\nROT_B="zwei drei" \nROT_C=vier # optional\nexport ROT_D=\'fünf\'\nROT_E=\nROT_F= # optional Erklärung\nROT_G=wert # Kommentar\n');
process.env.ROT_A = 'vorher';
assert.equal(loadEnvFile(file), true);
assert.equal(process.env.ROT_A, 'vorher');
assert.equal(process.env.ROT_B, 'zwei drei');
assert.equal(process.env.ROT_C, 'vier');
assert.equal(process.env.ROT_D, 'fünf');
assert.equal(process.env.ROT_E, '');
assert.equal(process.env.ROT_F, '', 'Kommentar nach leerem Wert ist kein Wert');
assert.equal(process.env.ROT_G, 'wert');
assert.equal(loadEnvFile(path.join(dir, 'fehlt')), false);
});