feat: Add testing framework and initial test cases for various tools and database operations
This commit is contained in:
87
tests/unit/storage/config.test.ts
Normal file
87
tests/unit/storage/config.test.ts
Normal file
@@ -0,0 +1,87 @@
|
||||
/*
|
||||
* @Date: 2026-01-07 09:09:22
|
||||
* @LastEditors: 陈子健
|
||||
* @LastEditTime: 2026-01-07 10:04:55
|
||||
* @FilePath: /cloud-mcp/tests/unit/storage/config.test.ts
|
||||
*/
|
||||
/**
|
||||
* Configuration management tests
|
||||
*/
|
||||
|
||||
import { describe, test, expect, beforeEach, afterEach } from "bun:test";
|
||||
import { configManager } from "../../../src/storage/config.js";
|
||||
import { setTestEnv } from "../../helpers/test-utils.js";
|
||||
|
||||
describe("ConfigManager", () => {
|
||||
let cleanupEnv: () => void;
|
||||
|
||||
beforeEach(() => {
|
||||
cleanupEnv = setTestEnv({
|
||||
NAS_HOST: "test-nas-host",
|
||||
NAS_USERNAME: "test-user",
|
||||
NAS_PASSWORD: "test-password",
|
||||
NAS_PROTOCOL: "smb",
|
||||
SERVER_HOST: "test-server",
|
||||
SERVER_USERNAME: "test-server-user",
|
||||
SERVER_PORT: "2222",
|
||||
SERVER_KEY_PATH: "/test/key/path",
|
||||
ROUTER_HOST: "test-router",
|
||||
ROUTER_USERNAME: "test-router-user",
|
||||
ROUTER_PASSWORD: "test-router-password",
|
||||
FOOTBALL_API_KEY: "test-football-key",
|
||||
});
|
||||
configManager.reload();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
cleanupEnv();
|
||||
});
|
||||
|
||||
test("should load NAS configuration from environment", () => {
|
||||
const nasConfig = configManager.getNASConfig();
|
||||
|
||||
expect(nasConfig.host).toBe("test-nas-host");
|
||||
expect(nasConfig.username).toBe("test-user");
|
||||
expect(nasConfig.password).toBe("test-password");
|
||||
expect(nasConfig.protocol).toBe("smb");
|
||||
});
|
||||
|
||||
test("should load server configuration from environment", () => {
|
||||
const serverConfig = configManager.getServerConfig();
|
||||
|
||||
expect(serverConfig.host).toBe("test-server");
|
||||
expect(serverConfig.username).toBe("test-server-user");
|
||||
expect(serverConfig.port).toBe(2222);
|
||||
expect(serverConfig.keyPath).toBe("/test/key/path");
|
||||
});
|
||||
|
||||
test("should load router configuration from environment", () => {
|
||||
const routerConfig = configManager.getRouterConfig();
|
||||
|
||||
expect(routerConfig.host).toBe("test-router");
|
||||
expect(routerConfig.username).toBe("test-router-user");
|
||||
expect(routerConfig.password).toBe("test-router-password");
|
||||
});
|
||||
|
||||
test("should get full configuration", () => {
|
||||
const config = configManager.getConfig();
|
||||
|
||||
expect(config.nas.host).toBe("test-nas-host");
|
||||
expect(config.server.host).toBe("test-server");
|
||||
expect(config.router.host).toBe("test-router");
|
||||
expect(config.footballApiKey).toBe("test-football-key");
|
||||
});
|
||||
|
||||
test("should handle missing environment variables", () => {
|
||||
cleanupEnv();
|
||||
// Clear all relevant env vars
|
||||
delete process.env.NAS_HOST;
|
||||
delete process.env.NAS_USERNAME;
|
||||
delete process.env.NAS_PASSWORD;
|
||||
delete process.env.NAS_PROTOCOL;
|
||||
configManager.reload();
|
||||
|
||||
const nasConfig = configManager.getNASConfig();
|
||||
expect(nasConfig.host).toBeUndefined();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user