20 lines
1 KiB
JavaScript
20 lines
1 KiB
JavaScript
// Rôle : vérifie le parsing .env, la priorité du processus et les fichiers facultatifs.
|
|
import { test } from "node:test";
|
|
import assert from "node:assert/strict";
|
|
import { loadProjectEnv } from "../scripts/load-project-env.mjs";
|
|
|
|
for (const existing of ["9999", ""]) {
|
|
test(`project env preserves an existing ${existing ? "nonempty" : "empty"} value`, (t) => {
|
|
const keys = ["SOKKOG_ENV_FIXTURE_PORT", "SOKKOG_ENV_FIXTURE_QUOTED", "SOKKOG_ENV_FIXTURE_COMMENT"];
|
|
const previous = keys.map((key) => process.env[key]);
|
|
t.after(() => keys.forEach((key, index) => {
|
|
if (previous[index] === undefined) delete process.env[key];
|
|
else process.env[key] = previous[index];
|
|
}));
|
|
keys.forEach((key) => { delete process.env[key]; });
|
|
process.env.SOKKOG_ENV_FIXTURE_PORT = existing;
|
|
loadProjectEnv("tests/fixtures/project-env.txt");
|
|
loadProjectEnv("tests/fixtures/missing-env-file");
|
|
assert.deepEqual(keys.map((key) => process.env[key]), [existing, "value # inside", "value"]);
|
|
});
|
|
}
|