/**
* Basic setup tests to verify project structure
*/
import { describe, expect, it } from "vitest";
import { ProcessingMode, ReasoningType } from "../types/core.js";
import { TOOL_SCHEMAS } from "../types/mcp.js";
import { ConfigManager } from "../utils/config.js";
import { Logger, LogLevel } from "../utils/logger.js";
describe("Project Setup", () => {
describe("Core Types", () => {
it("should have ProcessingMode enum", () => {
expect(ProcessingMode.BALANCED).toBe("balanced");
expect(ProcessingMode.INTUITIVE).toBe("intuitive");
expect(ProcessingMode.DELIBERATIVE).toBe("deliberative");
});
it("should have ReasoningType enum", () => {
expect(ReasoningType.PATTERN_MATCH).toBe("pattern_match");
expect(ReasoningType.LOGICAL_INFERENCE).toBe("logical_inference");
});
});
describe("MCP Tool Schemas", () => {
it("should have all required tool schemas", () => {
expect(TOOL_SCHEMAS.think).toBeDefined();
expect(TOOL_SCHEMAS.remember).toBeDefined();
expect(TOOL_SCHEMAS.recall).toBeDefined();
expect(TOOL_SCHEMAS.analyze_reasoning).toBeDefined();
});
it("should have proper schema structure", () => {
const thinkSchema = TOOL_SCHEMAS.think;
expect(thinkSchema.name).toBe("think");
expect(thinkSchema.description).toBeDefined();
expect(thinkSchema.inputSchema).toBeDefined();
expect(thinkSchema.inputSchema.properties.input).toBeDefined();
});
});
describe("Configuration Management", () => {
it("should create config manager with defaults", () => {
const configManager = new ConfigManager();
const config = configManager.getConfig();
expect(config.default_mode).toBe(ProcessingMode.BALANCED);
expect(config.working_memory_capacity).toBe(7);
expect(config.enable_emotion).toBe(true);
});
it("should validate configuration", () => {
const configManager = new ConfigManager();
expect(() => configManager.validateConfig()).not.toThrow();
});
it("should handle configuration overrides", () => {
const configManager = new ConfigManager({
temperature: 0.5,
working_memory_capacity: 5,
});
expect(configManager.get("temperature")).toBe(0.5);
expect(configManager.get("working_memory_capacity")).toBe(5);
});
});
describe("Logger", () => {
it("should create logger instance", () => {
const logger = Logger.getInstance();
expect(logger).toBeDefined();
});
it("should log messages", () => {
const logger = Logger.getInstance();
logger.clearLogs();
logger.setLogLevel(LogLevel.INFO); // Allow INFO level logs
logger.info("test", "Test message");
const logs = logger.getLogs();
expect(logs).toHaveLength(1);
expect(logs[0].component).toBe("test");
expect(logs[0].message).toBe("Test message");
expect(logs[0].level).toBe(LogLevel.INFO);
});
it("should filter logs by level", () => {
const logger = Logger.getInstance();
logger.clearLogs();
logger.debug("test", "Debug message");
logger.info("test", "Info message");
logger.error("test", "Error message");
const errorLogs = logger.getLogs(LogLevel.ERROR);
expect(errorLogs).toHaveLength(1);
expect(errorLogs[0].message).toBe("Error message");
});
});
});