UNPKG

log-vista

Version:

LogVista Agent - Lightweight system monitoring and log collection for any project/language

79 lines (65 loc) 2.61 kB
/** * 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); }); });