Skip to content

Commit c3514ef

Browse files
[DF-22956] ensure tiingo request transform executes by removing factory wrapper (#4778)
* ensure tiingo request transform executes by removing factory wrapper --------- Co-authored-by: app-token-issuer-data-feeds[bot] <134377064+app-token-issuer-data-feeds[bot]@users.noreply.github.com>
1 parent cb30c2c commit c3514ef

13 files changed

Lines changed: 116 additions & 13 deletions

File tree

.changeset/gentle-donkeys-film.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@chainlink/tiingo-adapter': patch
3+
'chainlink/tiingo-state-adapter': patch
4+
---
5+
6+
fix tiingo casing issue

.pnp.cjs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/sources/tiingo-state/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
"typescript": "5.8.3"
3737
},
3838
"dependencies": {
39-
"@chainlink/external-adapter-framework": "2.11.6",
39+
"@chainlink/external-adapter-framework": "2.13.1",
4040
"tslib": "2.4.1"
4141
}
4242
}

packages/sources/tiingo-state/src/endpoint/price.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,5 @@ export const endpoint = new PriceEndpoint({
2828
transportRoutes: new TransportRoutes<BaseCryptoEndpointTypes>().register('ws', wsTransport),
2929
defaultTransport: 'ws',
3030
inputParameters: inputParameters,
31-
requestTransforms: [tiingoCommonSubscriptionRequestTransform],
31+
requestTransforms: [tiingoCommonSubscriptionRequestTransform()],
3232
})

packages/sources/tiingo-state/test/integration/__snapshots__/adapter.test.ts.snap

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,35 @@
11
// Jest Snapshot v1, https://goo.gl/fbAQLP
22

3+
exports[`websocket crypto state endpoint should only subscribe once for mixed-case requests 1`] = `
4+
{
5+
"data": {
6+
"result": 1.1807636997924935,
7+
},
8+
"result": 1.1807636997924935,
9+
"statusCode": 200,
10+
"timestamps": {
11+
"providerDataReceivedUnixMs": 1018,
12+
"providerDataStreamEstablishedUnixMs": 1010,
13+
"providerIndicatedTimeUnixMs": 1646249828102,
14+
},
15+
}
16+
`;
17+
18+
exports[`websocket crypto state endpoint should only subscribe once for mixed-case requests 2`] = `
19+
{
20+
"data": {
21+
"result": 1.1807636997924935,
22+
},
23+
"result": 1.1807636997924935,
24+
"statusCode": 200,
25+
"timestamps": {
26+
"providerDataReceivedUnixMs": 1018,
27+
"providerDataStreamEstablishedUnixMs": 1010,
28+
"providerIndicatedTimeUnixMs": 1646249828102,
29+
},
30+
}
31+
`;
32+
333
exports[`websocket crypto state endpoint should return error on empty base 1`] = `
434
{
535
"error": {

packages/sources/tiingo-state/test/integration/adapter.test.ts

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1+
import { WebSocketClassProvider } from '@chainlink/external-adapter-framework/transports'
12
import {
2-
TestAdapter,
3-
setEnvVariables,
43
mockWebSocketProvider,
54
MockWebsocketServer,
5+
setEnvVariables,
6+
TestAdapter,
67
} from '@chainlink/external-adapter-framework/util/testing-utils'
78
import FakeTimers from '@sinonjs/fake-timers'
9+
import { wsTransport } from '../../src/transport/price'
810
import { mockWebsocketServer } from './fixtures'
9-
import { WebSocketClassProvider } from '@chainlink/external-adapter-framework/transports'
1011

1112
describe('websocket', () => {
1213
let mockWsServer: MockWebsocketServer | undefined
@@ -52,6 +53,25 @@ describe('websocket', () => {
5253
expect(response.json()).toMatchSnapshot()
5354
})
5455

56+
it('should only subscribe once for mixed-case requests', async () => {
57+
const lowercaseData = {
58+
base: 'wsteth',
59+
quote: 'eth',
60+
}
61+
const mixedCaseData = {
62+
base: 'wstETH',
63+
quote: 'ETH',
64+
}
65+
66+
const response1 = await testAdapter.request(lowercaseData)
67+
expect(response1.json()).toMatchSnapshot()
68+
69+
const response2 = await testAdapter.request(mixedCaseData)
70+
expect(response2.json()).toMatchSnapshot()
71+
72+
expect(await wsTransport.subscriptionSet.getAll()).toHaveLength(1)
73+
})
74+
5575
it('should return error on empty data', async () => {
5676
const response = await testAdapter.request({})
5777
expect(response.statusCode).toEqual(400)

packages/sources/tiingo/src/endpoint/crypto-lwba.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ export const endpoint = new LwbaEndpoint({
2222
transport,
2323
inputParameters: inputParameters,
2424
overrides: overrides.tiingo,
25-
requestTransforms: [tiingoCommonSubscriptionRequestTransform],
25+
requestTransforms: [tiingoCommonSubscriptionRequestTransform()],
2626
})

packages/sources/tiingo/src/endpoint/crypto.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@ export const endpoint = new CryptoPriceEndpoint({
1818
defaultTransport: 'ws',
1919
inputParameters: inputParameters,
2020
overrides: overrides.tiingo,
21-
requestTransforms: [tiingoCommonSubscriptionRequestTransform],
21+
requestTransforms: [tiingoCommonSubscriptionRequestTransform()],
2222
})

packages/sources/tiingo/src/endpoint/forex.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,5 @@ export const endpoint = new ForexPriceEndpoint({
3333
defaultTransport: 'ws',
3434
inputParameters: inputParameters,
3535
overrides: overrides.tiingo,
36-
requestTransforms: [tiingoCommonSubscriptionRequestTransform],
36+
requestTransforms: [tiingoCommonSubscriptionRequestTransform()],
3737
})

packages/sources/tiingo/src/endpoint/iex.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,5 @@ export const endpoint = new StockEndpoint({
3232
defaultTransport: 'ws',
3333
inputParameters: inputParameters,
3434
overrides: overrides.tiingo,
35-
requestTransforms: [tiingoCommonSubscriptionRequestTransform],
35+
requestTransforms: [tiingoCommonSubscriptionRequestTransform()],
3636
})

0 commit comments

Comments
 (0)