initial commit

This commit is contained in:
chungyeong
2026-02-19 17:28:58 +09:00
commit 02970df6af
34 changed files with 5673 additions and 0 deletions

48
test/envLoader.test.js Normal file
View File

@@ -0,0 +1,48 @@
"use strict";
const fs = require("node:fs");
const os = require("node:os");
const path = require("node:path");
const test = require("node:test");
const assert = require("node:assert/strict");
const { loadDotEnv } = require("../src/envLoader");
test("loadDotEnv parses quoted values and keeps existing env", () => {
const suffix = `${Date.now()}_${Math.random().toString(16).slice(2)}`;
const plainKey = `AIRPLANE_TEST_PLAIN_${suffix}`;
const quotedKey = `AIRPLANE_TEST_QUOTED_${suffix}`;
const singleQuotedKey = `AIRPLANE_TEST_SINGLE_${suffix}`;
const existingKey = `AIRPLANE_TEST_EXISTING_${suffix}`;
const invalidKey = "INVALID-NAME";
const envPath = path.join(os.tmpdir(), `airplane_${suffix}.env`);
const envContent = [
`# comment`,
`${plainKey}=hello`,
`${quotedKey}=\"line1\\nline2\"`,
`${singleQuotedKey}='with space'`,
`${existingKey}=from_file`,
`${invalidKey}=ignored`,
``,
].join("\n");
process.env[existingKey] = "from_process";
fs.writeFileSync(envPath, envContent, "utf8");
try {
loadDotEnv(envPath);
assert.equal(process.env[plainKey], "hello");
assert.equal(process.env[quotedKey], "line1\nline2");
assert.equal(process.env[singleQuotedKey], "with space");
assert.equal(process.env[existingKey], "from_process");
} finally {
delete process.env[plainKey];
delete process.env[quotedKey];
delete process.env[singleQuotedKey];
delete process.env[existingKey];
if (fs.existsSync(envPath)) {
fs.unlinkSync(envPath);
}
}
});