Files
xarticleaudio/test/config.test.js

61 lines
1.5 KiB
JavaScript

"use strict";
const test = require("node:test");
const assert = require("node:assert/strict");
test("config uses defaults when env is missing", () => {
const previous = {
PORT: process.env.PORT,
STATE_FILE_PATH: process.env.STATE_FILE_PATH,
};
delete process.env.PORT;
delete process.env.STATE_FILE_PATH;
delete require.cache[require.resolve("../src/config")];
const { config } = require("../src/config");
assert.equal(config.port, 3000);
assert.equal(config.stateFilePath, "./data/state.json");
if (previous.PORT === undefined) {
delete process.env.PORT;
} else {
process.env.PORT = previous.PORT;
}
if (previous.STATE_FILE_PATH === undefined) {
delete process.env.STATE_FILE_PATH;
} else {
process.env.STATE_FILE_PATH = previous.STATE_FILE_PATH;
}
});
test("config reads state path and numeric env overrides", () => {
const previous = {
PORT: process.env.PORT,
STATE_FILE_PATH: process.env.STATE_FILE_PATH,
};
process.env.PORT = "8080";
process.env.STATE_FILE_PATH = "/data/prod-state.json";
delete require.cache[require.resolve("../src/config")];
const { config } = require("../src/config");
assert.equal(config.port, 8080);
assert.equal(config.stateFilePath, "/data/prod-state.json");
if (previous.PORT === undefined) {
delete process.env.PORT;
} else {
process.env.PORT = previous.PORT;
}
if (previous.STATE_FILE_PATH === undefined) {
delete process.env.STATE_FILE_PATH;
} else {
process.env.STATE_FILE_PATH = previous.STATE_FILE_PATH;
}
});