Files
gemini-nexus/src/tests/unit/logger.test.ts
T

53 lines
1.6 KiB
TypeScript

import { describe, it, expect, vi, afterEach, beforeEach } from 'vitest';
import { logger } from '../../utils/logger';
import fs from 'fs';
import path from 'path';
vi.mock('../../utils/paths', async () => {
const path = await import('path');
return {
getAgentDir: vi.fn(() => path.join(process.cwd(), 'temp_test_logs')),
};
});
describe('Logger Utilities', () => {
const testLogDir = path.join(process.cwd(), 'temp_test_logs');
const testLogFile = path.join(testLogDir, 'app.log');
beforeEach(() => {
console.log('Test Log Dir:', testLogDir);
if (fs.existsSync(testLogDir)) {
fs.rmSync(testLogDir, { recursive: true, force: true });
}
fs.mkdirSync(testLogDir, { recursive: true });
console.log('Dir created:', fs.existsSync(testLogDir));
});
afterEach(() => {
if (fs.existsSync(testLogDir)) {
fs.rmSync(testLogDir, { recursive: true, force: true });
}
});
it('should create log file if it does not exist', () => {
logger.info('Test message');
expect(fs.existsSync(testLogFile)).toBe(true);
});
it('should write formatted message to file', () => {
const message = 'Test info message';
logger.info(message);
const content = fs.readFileSync(testLogFile, 'utf-8');
expect(content).toContain('[INFO]');
expect(content).toContain(message);
});
it('should log error messages', () => {
const message = 'Test error message';
logger.error(message);
const content = fs.readFileSync(testLogFile, 'utf-8');
expect(content).toContain('[ERROR]');
expect(content).toContain(message);
});
});