@@ -4,6 +4,7 @@ import { EventEmitter } from 'events'
44import { existsSync , rmSync , mkdirSync } from 'fs'
55import { join } from 'path'
66import DiscoveryServiceScript from '../DiscoveryService.mjs'
7+ import { TextListener } from 'hubot'
78
89// Mock robot for testing
910class MockRobot extends EventEmitter {
@@ -23,21 +24,19 @@ class MockRobot extends EventEmitter {
2324 connectToPeer : mock . fn ( ) ,
2425 getPeerCount : mock . fn ( ( ) => 0 )
2526 }
26- this . commands = [ ]
27+ this . listeners = [ ]
2728 }
2829
2930 parseHelp ( fileName ) {
3031 // Mock help parsing
3132 }
3233
33- respond ( pattern , callback ) {
34+ respond ( regex , options , callback ) {
3435 // Mock respond method for command registration
35- this . commands . push ( { pattern , callback } )
36+ this . hear ( regex , options , callback )
3637 }
37-
38- hear ( pattern , callback ) {
39- // Mock hear method for command registration
40- this . commands . push ( { pattern, callback } )
38+ hear ( regex , options , callback ) {
39+ this . listeners . push ( new TextListener ( this , regex , options , callback ) )
4140 }
4241}
4342
@@ -109,18 +108,18 @@ describe('DiscoveryService Script', () => {
109108 await DiscoveryServiceScript ( robot )
110109
111110 // Check that commands were registered
112- assert ( robot . commands . length > 0 , 'Should have registered some commands' )
113-
114- // Check for specific command patterns based on current design
115- const patterns = robot . commands . map ( cmd => cmd . pattern . toString ( ) )
116- assert ( patterns . some ( p => p . includes ( 'discover' ) ) , 'Should register discover command' )
117- assert ( patterns . some ( p => p . includes ( 'status' ) ) , 'Should register status command' )
118-
111+ assert ( robot . listeners . length > 0 , 'Should have registered some commands' )
112+
113+ // Check for specific command regexes based on current design
114+ const regexes = robot . listeners . map ( cmd => cmd . regex . toString ( ) )
115+ assert ( regexes . some ( r => r . includes ( 'discover' ) ) , 'Should register discover command' )
116+ assert ( regexes . some ( r => r . includes ( 'status' ) ) , 'Should register status command' )
117+
119118 // Load balancer commands are always available (DiscoveryService is always a server)
120119 const DiscoveryService = robot . discoveryService
121120 if ( DiscoveryService . loadBalancer ) {
122- assert ( patterns . some ( p => p . includes ( 'load' ) || p . includes ( 'lb' ) ) , 'Should register load balancer commands' )
123- assert ( patterns . some ( p => p . includes ( 'routing' ) ) , 'Should register routing test command' )
121+ assert ( regexes . some ( r => r . includes ( 'load' ) || r . includes ( 'lb' ) ) , 'Should register load balancer commands' )
122+ assert ( regexes . some ( r => r . includes ( 'routing' ) ) , 'Should register routing test command' )
124123 }
125124 } )
126125
@@ -293,8 +292,8 @@ describe('DiscoveryService Script', () => {
293292 // Start as server
294293
295294 // Find the discover command
296- const discoverCommand = robot . commands . find ( cmd =>
297- cmd . pattern . toString ( ) . includes ( 'discover' )
295+ const discoverCommand = robot . listeners . find ( cmd =>
296+ cmd . regex . toString ( ) . includes ( 'discover' )
298297 )
299298 assert ( discoverCommand , 'Should have discover command' )
300299
@@ -315,8 +314,8 @@ describe('DiscoveryService Script', () => {
315314 // Start as server
316315
317316 // Find the status command
318- const statusCommand = robot . commands . find ( cmd =>
319- cmd . pattern . toString ( ) . includes ( 'status' )
317+ const statusCommand = robot . listeners . find ( cmd =>
318+ cmd . regex . toString ( ) . includes ( 'status' )
320319 )
321320 assert ( statusCommand , 'Should have status command' )
322321
@@ -388,4 +387,4 @@ describe('DiscoveryService Script', () => {
388387 assert . strictEqual ( selfInstance . host , 'localhost' )
389388 assert . strictEqual ( selfInstance . port , 8080 )
390389 } )
391- } )
390+ } )
0 commit comments