1- import { SocketServerMock } from 'socket.io-mock-ts '
2- import { config } from '../../src/config '
1+ import { EndpointContext } from '@chainlink/external-adapter-framework/adapter '
2+ import { LoggerFactoryProvider } from '@chainlink/external-adapter-framework/util '
33import { InputParameters } from '@chainlink/external-adapter-framework/validation'
4- import { LoggerFactoryProvider , sleep } from '@chainlink/external-adapter-framework/util'
54import * as socketIoClient from 'socket.io-client'
5+ import { SocketServerMock } from 'socket.io-mock-ts'
6+ import { config } from '../../src/config'
67import { type SocketIOTransportTypes , SocketIOTransport } from '../../src/transport/price-socketio'
78
89jest . mock ( 'socket.io-client' )
910
1011LoggerFactoryProvider . set ( )
1112
13+ type SubscribeCallback = ( response : {
14+ status : string
15+ involvedSubscriptions : string [ ]
16+ subscriptionsAfterUpdate : string [ ]
17+ } ) => void
18+ type SubscribeCall = {
19+ subscriptions : string [ ]
20+ callback : SubscribeCallback
21+ }
22+
1223describe ( 'SocketIOTransport' , ( ) => {
1324 const API_TIMEOUT = 30_000
1425 const BACKGROUND_EXECUTE_MS_SSE = 1_000
@@ -34,7 +45,7 @@ describe('SocketIOTransport', () => {
3445 config . initialize ( )
3546
3647 mockSocket = new SocketServerMock ( )
37- jest . spyOn ( socketIoClient , 'io' ) . mockReturnValue ( mockSocket )
48+ jest . spyOn ( socketIoClient , 'io' ) . mockReturnValue ( mockSocket as unknown as socketIoClient . Socket )
3849 } )
3950
4051 it ( 'should connect to endpoint' , async ( ) => {
@@ -85,10 +96,12 @@ describe('SocketIOTransport', () => {
8596 } )
8697
8798 it ( 'should not subscribe again without new subscriptions' , async ( ) => {
88- const subscribeCalls = [ ]
89- const subscribeSpy = jest . fn ( ) . mockImplementation ( ( subscriptions , callback ) => {
90- subscribeCalls . push ( { subscriptions, callback } )
91- } )
99+ const subscribeCalls : SubscribeCall [ ] = [ ]
100+ const subscribeSpy = jest
101+ . fn ( )
102+ . mockImplementation ( ( subscriptions : string [ ] , callback : SubscribeCallback ) => {
103+ subscribeCalls . push ( { subscriptions, callback } )
104+ } )
92105 mockSocket . clientMock . on ( 'subscribe' , subscribeSpy )
93106
94107 const transport = new SocketIOTransport ( )
@@ -123,7 +136,7 @@ describe('SocketIOTransport', () => {
123136 } )
124137
125138 it ( 'should unsubscribe' , async ( ) => {
126- const subscribeCalls = [ ]
139+ const subscribeCalls : SubscribeCall [ ] = [ ]
127140 const subscribeSpy = jest . fn ( ) . mockImplementation ( ( subscriptions , callback ) => {
128141 subscribeCalls . push ( { subscriptions, callback } )
129142 } )
@@ -169,13 +182,13 @@ describe('SocketIOTransport', () => {
169182 } )
170183
171184 it ( 'should subscribe again after unsubscribe' , async ( ) => {
172- const subscribeCalls = [ ]
185+ const subscribeCalls : SubscribeCall [ ] = [ ]
173186 const subscribeSpy = jest . fn ( ) . mockImplementation ( ( subscriptions , callback ) => {
174187 subscribeCalls . push ( { subscriptions, callback } )
175188 } )
176189 mockSocket . clientMock . on ( 'subscribe' , subscribeSpy )
177190
178- const unsubscribeCalls = [ ]
191+ const unsubscribeCalls : SubscribeCall [ ] = [ ]
179192 const unsubscribeSpy = jest . fn ( ) . mockImplementation ( ( subscriptions , callback ) => {
180193 unsubscribeCalls . push ( { subscriptions, callback } )
181194 } )
@@ -225,7 +238,7 @@ describe('SocketIOTransport', () => {
225238 } )
226239
227240 it ( 'should subscribe and unsubscribe' , async ( ) => {
228- const subscribeCalls = [ ]
241+ const subscribeCalls : SubscribeCall [ ] = [ ]
229242 const subscribeSpy = jest . fn ( ) . mockImplementation ( ( subscriptions , callback ) => {
230243 subscribeCalls . push ( { subscriptions, callback } )
231244 } )
@@ -282,7 +295,7 @@ describe('SocketIOTransport', () => {
282295 } )
283296
284297 it ( 'should subscribe again if previous subscribe call timed out' , async ( ) => {
285- const subscribeCalls = [ ]
298+ const subscribeCalls : SubscribeCall [ ] = [ ]
286299 const subscribeSpy = jest . fn ( ) . mockImplementation ( ( subscriptions , callback ) => {
287300 subscribeCalls . push ( { subscriptions, callback } )
288301 } )
@@ -332,7 +345,7 @@ describe('SocketIOTransport', () => {
332345 } )
333346
334347 it ( 'should resubscribe even if unsubscribe timed out' , async ( ) => {
335- const subscribeCalls = [ ]
348+ const subscribeCalls : SubscribeCall [ ] = [ ]
336349 const subscribeSpy = jest . fn ( ) . mockImplementation ( ( subscriptions , callback ) => {
337350 subscribeCalls . push ( { subscriptions, callback } )
338351 } )
0 commit comments