seraph-agent
Version:
An extremely lightweight, SRE autonomous AI agent for seamless integration with common observability tasks.
52 lines (51 loc) • 1.87 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const supertest_1 = __importDefault(require("supertest"));
const server_1 = require("../server");
const agent_1 = require("../agent");
jest.mock('../agent');
describe('Server', () => {
let server;
let shutdown;
let agentManager;
let config;
beforeEach(() => {
jest.useFakeTimers(); // Ensure fake timers are used before server starts
jest.resetModules();
agentManager = new agent_1.AgentManager({});
agentManager.dispatch = jest.fn();
config = {
port: 8081,
workers: 4,
apiKey: 'test-key',
serverApiKey: null,
};
const serverControl = (0, server_1.startServer)(config, agentManager);
server = serverControl.server;
shutdown = serverControl.shutdown;
});
afterEach((done) => {
shutdown(() => {
jest.clearAllTimers(); // Clear any remaining timers
done();
});
});
it('should respond with 202 on /logs POST', async () => {
const response = await (0, supertest_1.default)(server)
.post('/logs')
.send('test log');
expect(response.status).toBe(202);
expect(agentManager.dispatch).toHaveBeenCalledWith('test log');
});
it('should respond with 200 on /status GET', async () => {
const response = await (0, supertest_1.default)(server).get('/status');
expect(response.status).toBe(200);
});
it('should respond with 200 on /metrics GET', async () => {
const response = await (0, supertest_1.default)(server).get('/metrics');
expect(response.status).toBe(200);
});
});