@@ -13,6 +13,8 @@ import {
13
13
} from './fixtures'
14
14
import { WebSocketClassProvider } from '@chainlink/external-adapter-framework/transports'
15
15
import FakeTimers from '@sinonjs/fake-timers'
16
+ import * as lwbaTransport from '../../src/transport/crypto-lwba'
17
+ import * as lwbaEndpoint from '../../src/endpoint/crypto-lwba'
16
18
17
19
describe ( 'websocket' , ( ) => {
18
20
let mockWsServerCrypto : MockWebsocketServer | undefined
@@ -100,6 +102,25 @@ describe('websocket', () => {
100
102
const response = await testAdapter . request ( spreadData )
101
103
expect ( response . json ( ) ) . toMatchSnapshot ( )
102
104
} )
105
+ it ( 'should only subscribe once' , async ( ) => {
106
+ const lwbaDataLowercase = {
107
+ endpoint : 'crypto_lwba' ,
108
+ base : 'eth' ,
109
+ quote : 'usd' ,
110
+ }
111
+ const lwbaDataUppercase = {
112
+ endpoint : 'crypto_lwba' ,
113
+ base : 'ETH' ,
114
+ quote : 'USD' ,
115
+ }
116
+ const response1 = await testAdapter . request ( lwbaDataLowercase )
117
+ expect ( response1 . json ( ) ) . toMatchSnapshot ( )
118
+
119
+ const response2 = await testAdapter . request ( lwbaDataUppercase )
120
+ expect ( response2 . json ( ) ) . toMatchSnapshot ( )
121
+
122
+ expect ( lwbaTransport . transport . subscriptionSet . getAll ( ) ) . toHaveLength ( 1 )
123
+ } )
103
124
it ( 'should return error (invariant violation)' , async ( ) => {
104
125
// fast forward to next message (which contains an invariant violation)
105
126
testAdapter . clock . tick ( 5000 )
0 commit comments