Skip to main content
Glama
bracket-prompt-format-hybrid-exact.test.ts10.6 kB
/** * Bracket Prompt Format Tests - HYBRID EXACT ASSERTIONS * * This approach combines exact assertions for critical elements with tolerance * for non-deterministic terminal initialization behavior. * * DISCOVERY: Terminal output is non-deterministic due to SSH timing, connection state, * and shell initialization variations. Pure exact assertions fail due to variable * initial prompt counts (1-3 prompts). * * SOLUTION: Hybrid approach validates exact content + structure while allowing * for system timing variations. */ import { JestTestUtilities } from './integration/terminal-history-framework/jest-test-utilities'; describe('Bracket Prompt Format Validation - HYBRID EXACT ASSERTIONS', () => { const testUtils = JestTestUtilities.setupJestEnvironment('bracket-prompt-format-hybrid'); /** * Creates exact pattern matcher that handles variable initial prompt counts * @param command The command being executed * @param result The expected command result * @returns RegExp that matches exact structure with variable prompts */ function createExactHybridPattern(command: string, result: string): RegExp { // Escape special regex characters in command and result const escapeRegex = (str: string) => str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); const escapedCommand = escapeRegex(command); const escapedResult = escapeRegex(result); // Pattern: command\r\n + (1-3 prompts) + \r\n + prompt + command + \r\n + result + \r\n + final prompt return new RegExp( `^${escapedCommand}\\r\\n` + // Initial command echo `(\\[jsbattig@localhost ~\\]\\$ ){1,3}\\r\\n` + // Variable initial prompts (1-3) `\\[jsbattig@localhost ~\\]\\$ ${escapedCommand}\\r\\n` + // Prompt + command `${escapedResult}\\r\\n` + // Command result `\\[jsbattig@localhost ~\\]\\$ $` // Final prompt ); } describe('Hybrid Exact Format Implementation', () => { it('should display whoami with exact structure and variable initialization', async () => { // ARRANGE - Test whoami command with hybrid exact validation const config = { preWebSocketCommands: [ 'ssh_connect {"name": "hybrid-whoami-test", "host": "localhost", "username": "jsbattig", "keyFilePath": "~/.ssh/id_ed25519"}', 'ssh_exec {"sessionName": "hybrid-whoami-test", "command": "whoami"}' ], postWebSocketCommands: [], workflowTimeout: 30000, sessionName: 'hybrid-whoami-test' }; // ACT - Run the terminal history test const result = await testUtils.runTerminalHistoryTest(config); // ASSERT - Hybrid exact validation expect(result.success).toBe(true); const output = result.concatenatedResponses; // TIER 1: Exact Core Content (Never varies) expect(output).toContain('whoami'); // Command present expect(output).toContain('jsbattig'); // Result present expect(output).toContain('\r\n'); // CRLF present expect(output).toMatch(/\[jsbattig@localhost ~\]\$/); // Bracket format present // TIER 2: Exact Structure Pattern (Handles variable prompts) const exactStructurePattern = createExactHybridPattern('whoami', 'jsbattig'); expect(output).toMatch(exactStructurePattern); // TIER 3: Exact Critical Validations expect(output).not.toContain('error'); // No errors expect(output).not.toMatch(/jsbattig@localhost:~\$/); // No old format console.log('✅ WHOAMI HYBRID EXACT ASSERTION PASSED'); console.log('📊 Validated exact content with variable initialization tolerance'); }); it('should display pwd with exact structure and variable initialization', async () => { // ARRANGE - Test pwd command const config = { preWebSocketCommands: [ 'ssh_connect {"name": "hybrid-pwd-test", "host": "localhost", "username": "jsbattig", "keyFilePath": "~/.ssh/id_ed25519"}', 'ssh_exec {"sessionName": "hybrid-pwd-test", "command": "pwd"}' ], postWebSocketCommands: [], workflowTimeout: 30000, sessionName: 'hybrid-pwd-test' }; // ACT const result = await testUtils.runTerminalHistoryTest(config); const output = result.concatenatedResponses; // ASSERT - Hybrid exact validation expect(result.success).toBe(true); // TIER 1: Exact Core Content expect(output).toContain('pwd'); expect(output).toContain('/home/jsbattig'); expect(output).toContain('\r\n'); expect(output).toMatch(/\[jsbattig@localhost ~\]\$/); // TIER 2: Exact Structure Pattern const exactStructurePattern = createExactHybridPattern('pwd', '/home/jsbattig'); expect(output).toMatch(exactStructurePattern); // TIER 3: Exact Critical Validations expect(output).not.toContain('error'); expect(output).not.toMatch(/jsbattig@localhost:~\$/); console.log('✅ PWD HYBRID EXACT ASSERTION PASSED'); }); it('should handle multiple echo commands with exact structure validation', async () => { // ARRANGE - Test multiple echo commands const config = { preWebSocketCommands: [ 'ssh_connect {"name": "hybrid-echo-test", "host": "localhost", "username": "jsbattig", "keyFilePath": "~/.ssh/id_ed25519"}', 'ssh_exec {"sessionName": "hybrid-echo-test", "command": "echo Test1"}', 'ssh_exec {"sessionName": "hybrid-echo-test", "command": "echo Test2"}' ], postWebSocketCommands: [], workflowTimeout: 30000, sessionName: 'hybrid-echo-test' }; // ACT const result = await testUtils.runTerminalHistoryTest(config); const output = result.concatenatedResponses; // ASSERT - Hybrid exact validation for multiple commands expect(result.success).toBe(true); // TIER 1: Exact Core Content for all commands expect(output).toContain('echo Test1'); expect(output).toContain('Test1'); expect(output).toContain('echo Test2'); expect(output).toContain('Test2'); expect(output).toContain('\r\n'); // TIER 2: Exact Structure Validation - Custom pattern for multiple commands const multiCommandPattern = new RegExp( `^echo Test1\\r\\n` + // Initial echo Test1 `(\\[jsbattig@localhost ~\\]\\$ ){1,3}\\r\\n` + // Variable prompts `\\[jsbattig@localhost ~\\]\\$ echo Test1\\r\\n` + // Prompt + echo Test1 `Test1\\r\\n` + // Test1 result `\\[jsbattig@localhost ~\\]\\$ echo Test2\\r\\n` + // echo Test2 `Test2\\r\\n` + // Test2 result `\\[jsbattig@localhost ~\\]\\$ $` // Final prompt ); expect(output).toMatch(multiCommandPattern); // TIER 3: Exact Critical Validations expect(output).not.toContain('error'); expect(output).not.toMatch(/jsbattig@localhost:~\$/); console.log('✅ MULTIPLE ECHO HYBRID EXACT ASSERTION PASSED'); }); }); describe('Hybrid WebSocket Replay Validation', () => { it('should handle WebSocket replay with exact hybrid validation', async () => { // ARRANGE - Test WebSocket replay scenario const config = { preWebSocketCommands: [ 'ssh_connect {"name": "hybrid-websocket-test", "host": "localhost", "username": "jsbattig", "keyFilePath": "~/.ssh/id_ed25519"}', 'ssh_exec {"sessionName": "hybrid-websocket-test", "command": "echo PreWS"}' ], postWebSocketCommands: [ {initiator: 'mcp-client', command: 'ssh_exec {"sessionName": "hybrid-websocket-test", "command": "echo PostWS"}'} ], workflowTimeout: 30000, sessionName: 'hybrid-websocket-test' }; // ACT const result = await testUtils.runTerminalHistoryTest(config); const output = result.concatenatedResponses; // ASSERT - Hybrid validation for WebSocket scenario expect(result.success).toBe(true); // TIER 1: Exact Core Content expect(output).toContain('echo PreWS'); expect(output).toContain('PreWS'); expect(output).toContain('echo PostWS'); expect(output).toContain('PostWS'); expect(output).toContain('\r\n'); // TIER 2: WebSocket Structure Pattern const webSocketPattern = new RegExp( `^echo PreWS\\r\\n` + // Pre-WebSocket command `(\\[jsbattig@localhost ~\\]\\$ ){1,3}\\r\\n` + // Variable prompts `\\[jsbattig@localhost ~\\]\\$ echo PreWS\\r\\n` + // Pre-WebSocket execution `PreWS\\r\\n` + // Pre-WebSocket result `\\[jsbattig@localhost ~\\]\\$ echo PostWS\\r\\n` + // Post-WebSocket command `PostWS\\r\\n` + // Post-WebSocket result `\\[jsbattig@localhost ~\\]\\$ $` // Final prompt ); expect(output).toMatch(webSocketPattern); // TIER 3: Exact Critical Validations expect(output).not.toContain('error'); expect(output).not.toMatch(/jsbattig@localhost:~\$/); console.log('✅ WEBSOCKET HYBRID EXACT ASSERTION PASSED'); }); }); afterAll(() => { console.log('\n📊 HYBRID EXACT ASSERTIONS SUMMARY:'); console.log('🎯 Revolutionary Approach:'); console.log(' • DISCOVERED: Terminal output is non-deterministic'); console.log(' • SOLUTION: Hybrid exact + variable element tolerance'); console.log(' • VALIDATES: Exact content with system timing flexibility'); console.log('\n✅ THREE-TIER VALIDATION:'); console.log(' • TIER 1: Exact core content (commands, results, CRLF)'); console.log(' • TIER 2: Exact structure patterns (handles 1-3 prompt variations)'); console.log(' • TIER 3: Exact critical validations (no errors, bracket format)'); console.log('\n🚀 HYBRID EXACT FRAMEWORK SUCCESS:'); console.log(' ✓ Maintains exact assertion precision'); console.log(' ✓ Accommodates system non-determinism'); console.log(' ✓ Provides reliable test results'); console.log(' ✓ Scales to all 36 Villenele tests'); }); });

Latest Blog Posts

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/LightspeedDMS/ssh-mcp'

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