Skip to main content
Glama

Test Runner MCP

by privsim
jest.test.ts3.55 kB
import { JestParser } from '../jest.js'; describe('JestParser', () => { let parser: JestParser; beforeEach(() => { parser = new JestParser(); }); it('should parse test output with all passing tests', () => { const stdout = `PASS src/example.test.js Example Suite ✓ first test (2ms) ✓ second test (1ms) Test Suites: 1 passed, 1 total Tests: 2 passed, 2 total Snapshots: 0 total Time: 0.5s Ran all test suites.`; const result = parser.parse(stdout, ''); expect(result.framework).toBe('jest'); expect(result.tests).toHaveLength(2); expect(result.summary.total).toBe(2); expect(result.summary.passed).toBe(2); expect(result.summary.failed).toBe(0); expect(result.tests[0].name).toBe('first test'); expect(result.tests[0].passed).toBeTruthy(); expect(result.tests[1].name).toBe('second test'); expect(result.tests[1].passed).toBeTruthy(); }); it('should parse test output with failing tests', () => { const stdout = `FAIL src/example.test.js Example Suite ✓ first test (2ms) ✕ second test (1ms) Expected: true Received: false Test Suites: 1 failed, 1 total Tests: 1 passed, 1 failed, 2 total Snapshots: 0 total Time: 0.5s Ran all test suites.`; const result = parser.parse(stdout, ''); expect(result.framework).toBe('jest'); expect(result.tests).toHaveLength(2); expect(result.summary.total).toBe(2); expect(result.summary.passed).toBe(1); expect(result.summary.failed).toBe(1); expect(result.tests[0].name).toBe('first test'); expect(result.tests[0].passed).toBeTruthy(); expect(result.tests[1].name).toBe('second test'); expect(result.tests[1].passed).toBeFalsy(); expect(result.tests[1].output).toContain('Expected: true'); expect(result.tests[1].output).toContain('Received: false'); }); it('should handle test output with console logs', () => { const stdout = `PASS src/example.test.js Example Suite ✓ test with logs (3ms) console.log This is a log message at Object.<anonymous> (src/example.test.js:5:9) Test Suites: 1 passed, 1 total Tests: 1 passed, 1 total Snapshots: 0 total Time: 0.5s Ran all test suites.`; const result = parser.parse(stdout, ''); expect(result.framework).toBe('jest'); expect(result.tests).toHaveLength(1); expect(result.tests[0].name).toBe('test with logs'); expect(result.tests[0].output).toContain('console.log'); expect(result.tests[0].output).toContain('This is a log message'); }); it('should handle empty output', () => { const result = parser.parse('', ''); expect(result.framework).toBe('jest'); expect(result.tests).toHaveLength(0); expect(result.summary.total).toBe(0); expect(result.summary.passed).toBe(0); expect(result.summary.failed).toBe(0); }); it('should handle stderr as test failure', () => { const stdout = ''; const stderr = 'Error: Jest failed to run tests'; const result = parser.parse(stdout, stderr); expect(result.framework).toBe('jest'); expect(result.tests).toHaveLength(1); expect(result.tests[0].name).toBe('Test Execution Error'); expect(result.tests[0].passed).toBeFalsy(); expect(result.tests[0].output).toContain('Error: Jest failed to run tests'); expect(result.summary.total).toBe(1); expect(result.summary.passed).toBe(0); expect(result.summary.failed).toBe(1); }); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/privsim/mcp-test-runner'

If you have feedback or need assistance with the MCP directory API, please join our Discord server