sonar / sonar (push) Skipped
sonar / sonar (pull_request) Failing after 1m35s
Co-authored-by: Cursor <cursoragent@cursor.com>
26 lines
908 B
TypeScript
26 lines
908 B
TypeScript
import assert from "node:assert/strict";
|
|
import { mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
import { tmpdir } from "node:os";
|
|
import { join } from "node:path";
|
|
import test from "node:test";
|
|
import { loadDotEnv } from "./env.js";
|
|
|
|
test("loadDotEnv loads missing keys from .env without overriding", () => {
|
|
const dir = mkdtempSync(join(tmpdir(), "ticketlab-env-"));
|
|
const key = `TICKETLAB_ENV_TEST_${Date.now()}`;
|
|
try {
|
|
writeFileSync(join(dir, ".env"), `${key}=from-file\n# comment\nOTHER=1\n`, "utf8");
|
|
delete process.env[key];
|
|
loadDotEnv(dir);
|
|
assert.equal(process.env[key], "from-file");
|
|
|
|
process.env[key] = "already-set";
|
|
writeFileSync(join(dir, ".env"), `${key}=should-not-win\n`, "utf8");
|
|
loadDotEnv(dir);
|
|
assert.equal(process.env[key], "already-set");
|
|
} finally {
|
|
delete process.env[key];
|
|
rmSync(dir, { recursive: true, force: true });
|
|
}
|
|
});
|