Initial implementation
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
import assert from "node:assert/strict";
|
||||
import test from "node:test";
|
||||
import { loadConfig } from "../src/config.js";
|
||||
|
||||
test("loads defaults", () => {
|
||||
const config = loadConfig({});
|
||||
assert.equal(config.port, 3000);
|
||||
assert.equal(config.suwayomi.graphqlUrl, "http://suwayomi:4567/api/graphql");
|
||||
assert.equal(config.feed.itemLimit, 50);
|
||||
});
|
||||
|
||||
test("requires credentials for authenticated modes", () => {
|
||||
assert.throws(
|
||||
() => loadConfig({ SUWAYOMI_AUTH_MODE: "ui_login" }),
|
||||
/USERNAME and SUWAYOMI_PASSWORD/,
|
||||
);
|
||||
assert.throws(
|
||||
() => loadConfig({ RSS_USERNAME: "reader" }),
|
||||
/must be set together/,
|
||||
);
|
||||
});
|
||||
|
||||
test("validates bounded integer settings", () => {
|
||||
assert.throws(() => loadConfig({ FEED_ITEM_LIMIT: "201" }), /between 1 and 200/);
|
||||
assert.throws(() => loadConfig({ PORT: "wat" }), /PORT must be an integer/);
|
||||
});
|
||||
Reference in New Issue
Block a user