Files
minori/test/config.spec.ts
naomi 5bc2cfbe43
Node.js CI / CI (push) Failing after 7s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 50s
feat: initial prototype attempt
2026-02-03 17:13:57 -08:00

72 lines
2.1 KiB
TypeScript

/**
* @copyright NHCarrigan
* @license Naomi's Public License
* @author Naomi Carrigan
*/
/* eslint-disable vitest/valid-expect -- Test expectations don't need messages */
/* eslint-disable max-nested-callbacks -- Vitest structure requires nested callbacks */
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
describe("config", () => {
const originalEnvironment = process.env;
beforeEach(() => {
vi.resetModules();
process.env = { ...originalEnvironment };
});
afterEach(() => {
process.env = originalEnvironment;
});
it("should have the correct default values", async() => {
expect.assertions(5);
process.env.GITEA_TOKEN = "test-token";
const { config } = await import("../src/config.js");
expect(config.checkInterval).toBe("0 7 * * *");
expect(config.giteaOrg).toBe("nhcarrigan");
expect(config.giteaUrl).toBe("https://git.nhcarrigan.com");
expect(config.npmRegistryUrl).toBe("https://registry.npmjs.org");
expect(config.prBranchPrefix).toBe("dependencies/update-");
});
it("should use GITEA_TOKEN from environment", async() => {
expect.assertions(1);
process.env.GITEA_TOKEN = "my-secret-token";
const { config } = await import("../src/config.js");
expect(config.giteaToken).toBe("my-secret-token");
});
it("should default giteaToken to empty string when not set", async() => {
expect.assertions(1);
delete process.env.GITEA_TOKEN;
const { config } = await import("../src/config.js");
expect(config.giteaToken).toBe("");
});
it("should not throw when GITEA_TOKEN is set", async() => {
expect.assertions(1);
process.env.GITEA_TOKEN = "valid-token";
const { validateConfig } = await import("../src/config.js");
expect(() => {
validateConfig();
}).not.toThrow();
});
it("should throw when GITEA_TOKEN is empty", async() => {
expect.assertions(1);
delete process.env.GITEA_TOKEN;
const { validateConfig } = await import("../src/config.js");
expect(() => {
validateConfig();
}).toThrow("GITEA_TOKEN is required");
});
});