@nodecg/types
Version:
Dynamic broadcast graphics rendered in a browser
81 lines (69 loc) • 2.49 kB
text/typescript
import { expect, test } from "vitest";
import { testDirPath } from "../../../test/helpers/test-dir-path";
import { loadConfig } from "./loader";
test("should throw an error when the config file is not valid JSON", () => {
expect(
loadConfig.bind(
loadConfig,
testDirPath("fixtures/nodecg-core/cfg/invalidJSON.json"),
),
).toThrow(/^JSON Error in/);
});
test('should validate the "login" object when "login.enabled" is "true"', () => {
expect(
loadConfig.bind(
loadConfig,
testDirPath("fixtures/nodecg-core/cfg/invalidLogin.json"),
),
).toThrow('"login.sessionSecret" must be a string');
});
test('should validate the "login.steam" object when "login.steam.enabled" is "true"', () => {
expect(
loadConfig.bind(
loadConfig,
testDirPath("fixtures/nodecg-core/cfg/invalidSteam.json"),
),
).toThrow('"login.steam.apiKey" must be a string');
});
test('should validate the "login.twitch" object when "login.twitch.enabled" is "true"', () => {
expect(
loadConfig.bind(
loadConfig,
testDirPath("fixtures/nodecg-core/cfg/invalidTwitch.json"),
),
).toThrow('"login.twitch.clientID" must be a string');
});
test('should validate the "login.discord" object when "login.discord.enabled" is "true"', () => {
expect(
loadConfig.bind(
loadConfig,
testDirPath("fixtures/nodecg-core/cfg/invalidDiscord.json"),
),
).toThrow('"login.discord.clientID" must be a string');
});
test('should validate the "ssl" object when "ssl.enabled" is "true"', () => {
expect(
loadConfig.bind(
loadConfig,
testDirPath("fixtures/nodecg-core/cfg/invalidSSL.json"),
),
).toThrow('"ssl.keyPath" must be a string');
});
test("should load defaults when the config file does not exist", () => {
const result = loadConfig(testDirPath("fixtures/nodecg-core/cfg"));
expect(result.config.host).toBe("0.0.0.0");
expect(result.config.port).toBe(9090);
});
test("should not have any whitelisted nor blacklisted bundles by default", () => {
const result = loadConfig(testDirPath("fixtures/nodecg-core/cfg"));
expect(result.config.bundles.enabled).toBe(null);
expect(result.config.bundles.disabled).toBe(null);
});
test("should support YAML configs", () => {
const result = loadConfig(testDirPath("fixtures/nodecg-core/cfg-yaml"));
expect(result.config.host).toBe("yaml-config");
});
test("should support CommonJS configs", () => {
const result = loadConfig(testDirPath("fixtures/nodecg-core/cfg-js"));
expect(result.config.host).toBe("js-config");
});