log-vista
Version:
LogVista Agent - Lightweight system monitoring and log collection for any project/language
79 lines (65 loc) • 2.61 kB
JavaScript
/**
* Simple Tests for LogVista Agent
* Basic tests that should always pass
*/
const fs = require('fs');
const path = require('path');
describe('LogVista Agent Basic Tests', () => {
test('should have all required source files', () => {
const requiredFiles = [
'src/index.js',
'src/logCollector.js',
'src/metricsCollector.js',
'src/uploader.js',
'src/logger.js',
'src/scheduler.js',
'bin/logvista.js',
'package.json'
];
requiredFiles.forEach(file => {
const filePath = path.join(__dirname, '..', file);
expect(fs.existsSync(filePath)).toBe(true);
});
});
test('should have correct package.json structure', () => {
const packagePath = path.join(__dirname, '..', 'package.json');
const packageJson = JSON.parse(fs.readFileSync(packagePath, 'utf8'));
expect(packageJson.name).toBe('log-vista');
expect(packageJson.version).toBe('2.0.1');
expect(packageJson.main).toBe('src/index.js');
expect(packageJson.bin).toBeDefined();
expect(packageJson.bin.logvista).toBe('./bin/logvista.js');
});
test('should be able to require main modules', () => {
expect(() => require('../src/logCollector')).not.toThrow();
expect(() => require('../src/metricsCollector')).not.toThrow();
expect(() => require('../src/uploader')).not.toThrow();
expect(() => require('../src/logger')).not.toThrow();
});
test('should instantiate classes correctly', () => {
const LogCollector = require('../src/logCollector');
const MetricsCollector = require('../src/metricsCollector');
const Uploader = require('../src/uploader');
const logCollector = new LogCollector();
expect(logCollector).toBeInstanceOf(LogCollector);
const metricsCollector = new MetricsCollector();
expect(metricsCollector).toBeInstanceOf(MetricsCollector);
const mockConfig = {
central_system: {
url: 'http://localhost:3001',
token: 'test-token'
}
};
const uploader = new Uploader(mockConfig);
expect(uploader).toBeInstanceOf(Uploader);
});
test('should have working CLI binary', () => {
const binPath = path.join(__dirname, '..', 'bin', 'logvista.js');
const binContent = fs.readFileSync(binPath, 'utf8');
// Check for shebang
expect(binContent.startsWith('#!/usr/bin/env node')).toBe(true);
// Check for commander usage
expect(binContent.includes('commander')).toBe(true);
expect(binContent.includes('program')).toBe(true);
});
});