@codex-data/sdk 1.0.37 → 1.0.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/package.json +2 -3
  2. package/dist/scripts/buildSdk.d.ts +0 -2
  3. package/dist/scripts/buildSdk.d.ts.map +0 -1
  4. package/dist/scripts/buildSdk.js +0 -135
  5. package/dist/scripts/buildSdk.js.map +0 -1
  6. package/dist/scripts/generateGraphql.d.ts +0 -31
  7. package/dist/scripts/generateGraphql.d.ts.map +0 -1
  8. package/dist/scripts/generateGraphql.js +0 -224
  9. package/dist/scripts/generateGraphql.js.map +0 -1
  10. package/dist/scripts/generateNetworkConfigs.d.ts +0 -2
  11. package/dist/scripts/generateNetworkConfigs.d.ts.map +0 -1
  12. package/dist/scripts/generateNetworkConfigs.js +0 -248
  13. package/dist/scripts/generateNetworkConfigs.js.map +0 -1
  14. package/src/index.ts +0 -2
  15. package/src/resources/.keep +0 -0
  16. package/src/resources/generated_mutations/BackfillWalletAggregates.graphql +0 -6
  17. package/src/resources/generated_mutations/CreateApiTokens.graphql +0 -9
  18. package/src/resources/generated_mutations/CreateWebhooks.graphql +0 -472
  19. package/src/resources/generated_mutations/DeleteApiToken.graphql +0 -3
  20. package/src/resources/generated_mutations/DeleteWebhooks.graphql +0 -5
  21. package/src/resources/generated_queries/ApiToken.graphql +0 -9
  22. package/src/resources/generated_queries/ApiTokens.graphql +0 -9
  23. package/src/resources/generated_queries/Balances.graphql +0 -97
  24. package/src/resources/generated_queries/Blocks.graphql +0 -7
  25. package/src/resources/generated_queries/ChartUrls.graphql +0 -7
  26. package/src/resources/generated_queries/DetailedWalletStats.graphql +0 -197
  27. package/src/resources/generated_queries/FilterExchanges.graphql +0 -43
  28. package/src/resources/generated_queries/FilterNftCollections.graphql +0 -569
  29. package/src/resources/generated_queries/FilterNftParallelAssets.graphql +0 -60
  30. package/src/resources/generated_queries/FilterNftPoolCollections.graphql +0 -71
  31. package/src/resources/generated_queries/FilterNftPools.graphql +0 -124
  32. package/src/resources/generated_queries/FilterPairs.graphql +0 -448
  33. package/src/resources/generated_queries/FilterTokenWallets.graphql +0 -144
  34. package/src/resources/generated_queries/FilterTokens.graphql +0 -579
  35. package/src/resources/generated_queries/FilterWallets.graphql +0 -57
  36. package/src/resources/generated_queries/GetBars.graphql +0 -233
  37. package/src/resources/generated_queries/GetCommunityNotes.graphql +0 -140
  38. package/src/resources/generated_queries/GetDetailedNftStats.graphql +0 -831
  39. package/src/resources/generated_queries/GetDetailedPairStats.graphql +0 -991
  40. package/src/resources/generated_queries/GetDetailedPairsStats.graphql +0 -975
  41. package/src/resources/generated_queries/GetEventLabels.graphql +0 -35
  42. package/src/resources/generated_queries/GetExchanges.graphql +0 -12
  43. package/src/resources/generated_queries/GetNetworkConfigs.graphql +0 -129
  44. package/src/resources/generated_queries/GetNetworkStats.graphql +0 -20
  45. package/src/resources/generated_queries/GetNetworkStatus.graphql +0 -8
  46. package/src/resources/generated_queries/GetNetworks.graphql +0 -7
  47. package/src/resources/generated_queries/GetNftAssets.graphql +0 -59
  48. package/src/resources/generated_queries/GetNftCollectionMetadata.graphql +0 -75
  49. package/src/resources/generated_queries/GetNftContracts.graphql +0 -39
  50. package/src/resources/generated_queries/GetNftEvents.graphql +0 -100
  51. package/src/resources/generated_queries/GetNftPool.graphql +0 -74
  52. package/src/resources/generated_queries/GetNftPoolCollection.graphql +0 -33
  53. package/src/resources/generated_queries/GetNftPoolCollectionsByExchange.graphql +0 -38
  54. package/src/resources/generated_queries/GetNftPoolEvents.graphql +0 -416
  55. package/src/resources/generated_queries/GetNftPoolStats.graphql +0 -40
  56. package/src/resources/generated_queries/GetNftPoolsByCollectionAndExchange.graphql +0 -89
  57. package/src/resources/generated_queries/GetNftPoolsByOwner.graphql +0 -89
  58. package/src/resources/generated_queries/GetParallelCardChanges.graphql +0 -57
  59. package/src/resources/generated_queries/GetPrimePoolAssets.graphql +0 -32
  60. package/src/resources/generated_queries/GetPrimePoolEvents.graphql +0 -156
  61. package/src/resources/generated_queries/GetPrimePools.graphql +0 -62
  62. package/src/resources/generated_queries/GetSymbol.graphql +0 -11
  63. package/src/resources/generated_queries/GetTokenBars.graphql +0 -121
  64. package/src/resources/generated_queries/GetTokenEvents.graphql +0 -102
  65. package/src/resources/generated_queries/GetTokenEventsForMaker.graphql +0 -102
  66. package/src/resources/generated_queries/GetTokenPrices.graphql +0 -9
  67. package/src/resources/generated_queries/GetWebhooks.graphql +0 -134
  68. package/src/resources/generated_queries/Holders.graphql +0 -100
  69. package/src/resources/generated_queries/LiquidityLocks.graphql +0 -32
  70. package/src/resources/generated_queries/LiquidityMetadata.graphql +0 -17
  71. package/src/resources/generated_queries/LiquidityMetadataByToken.graphql +0 -19
  72. package/src/resources/generated_queries/ListPairsForToken.graphql +0 -194
  73. package/src/resources/generated_queries/ListPairsWithMetadataForToken.graphql +0 -375
  74. package/src/resources/generated_queries/NftHolders.graphql +0 -12
  75. package/src/resources/generated_queries/PairMetadata.graphql +0 -234
  76. package/src/resources/generated_queries/PrimeHolders.graphql +0 -98
  77. package/src/resources/generated_queries/SearchNfts.graphql +0 -35
  78. package/src/resources/generated_queries/Token.graphql +0 -82
  79. package/src/resources/generated_queries/TokenLifecycleEvents.graphql +0 -34
  80. package/src/resources/generated_queries/TokenSparklines.graphql +0 -11
  81. package/src/resources/generated_queries/TokenTopTraders.graphql +0 -26
  82. package/src/resources/generated_queries/Tokens.graphql +0 -82
  83. package/src/resources/generated_queries/Top10HoldersPercent.graphql +0 -3
  84. package/src/resources/generated_queries/WalletAggregateBackfillState.graphql +0 -6
  85. package/src/resources/generated_queries/WalletChart.graphql +0 -20
  86. package/src/resources/generated_queries/WalletNftCollectionAssets.graphql +0 -11
  87. package/src/resources/generated_queries/WalletNftCollections.graphql +0 -10
  88. package/src/resources/generated_subscriptions/OnBalanceUpdated.graphql +0 -94
  89. package/src/resources/generated_subscriptions/OnBarsUpdated.graphql +0 -547
  90. package/src/resources/generated_subscriptions/OnDetailedStatsUpdated.graphql +0 -325
  91. package/src/resources/generated_subscriptions/OnEventLabelCreated.graphql +0 -22
  92. package/src/resources/generated_subscriptions/OnEventsCreated.graphql +0 -105
  93. package/src/resources/generated_subscriptions/OnEventsCreatedByMaker.graphql +0 -92
  94. package/src/resources/generated_subscriptions/OnHoldersUpdated.graphql +0 -100
  95. package/src/resources/generated_subscriptions/OnLatestPairUpdated.graphql +0 -42
  96. package/src/resources/generated_subscriptions/OnLatestTokens.graphql +0 -37
  97. package/src/resources/generated_subscriptions/OnLaunchpadTokenEvent.graphql +0 -104
  98. package/src/resources/generated_subscriptions/OnLaunchpadTokenEventBatch.graphql +0 -96
  99. package/src/resources/generated_subscriptions/OnNftAssetsCreated.graphql +0 -42
  100. package/src/resources/generated_subscriptions/OnNftEventsCreated.graphql +0 -82
  101. package/src/resources/generated_subscriptions/OnNftPoolEventsCreated.graphql +0 -412
  102. package/src/resources/generated_subscriptions/OnPairMetadataUpdated.graphql +0 -234
  103. package/src/resources/generated_subscriptions/OnPriceUpdated.graphql +0 -17
  104. package/src/resources/generated_subscriptions/OnPricesUpdated.graphql +0 -9
  105. package/src/resources/generated_subscriptions/OnTokenBarsUpdated.graphql +0 -545
  106. package/src/resources/generated_subscriptions/OnTokenEventsCreated.graphql +0 -92
  107. package/src/resources/generated_subscriptions/OnTokenLifecycleEventsCreated.graphql +0 -30
  108. package/src/resources/generated_subscriptions/OnUnconfirmedBarsUpdated.graphql +0 -115
  109. package/src/resources/generated_subscriptions/OnUnconfirmedEventsCreated.graphql +0 -50
  110. package/src/resources/generated_subscriptions/OnUnconfirmedEventsCreatedByMaker.graphql +0 -41
  111. package/src/resources/graphql.schema.json +0 -63699
  112. package/src/resources/graphql.ts +0 -10477
  113. package/src/resources/mutations_override/CreateWebhooks.graphql +0 -472
  114. package/src/resources/networkConfigs.json +0 -3757
  115. package/src/resources/queries_override/FilterTokenWallets.graphql +0 -144
  116. package/src/resources/queries_override/GetEventLabels.graphql +0 -35
  117. package/src/resources/queries_override/GetNetworkConfigs.graphql +0 -129
  118. package/src/resources/queries_override/GetWebhooks.graphql +0 -134
  119. package/src/resources/schema.graphql +0 -9972
  120. package/src/resources/subscriptions_override/OnEventLabelCreated.graphql +0 -22
  121. package/src/resources/subscriptions_override/OnLaunchpadTokenEventBatch.graphql +0 -96
  122. package/src/scripts/buildSdk.ts +0 -173
  123. package/src/scripts/generateGraphql.ts +0 -305
  124. package/src/scripts/generateNetworkConfigs.ts +0 -250
  125. package/src/sdk/Mutation.ts +0 -29
  126. package/src/sdk/Query.ts +0 -285
  127. package/src/sdk/Subscribe.ts +0 -465
  128. package/src/sdk/generated/fragment-masking.ts +0 -87
  129. package/src/sdk/generated/gql.ts +0 -610
  130. package/src/sdk/generated/graphql.ts +0 -11417
  131. package/src/sdk/generated/index.ts +0 -2
  132. package/src/sdk/graphql/GetPairEvents.graphql +0 -71
  133. package/src/sdk/index.test.ts +0 -454
  134. package/src/sdk/index.ts +0 -239
  135. package/src/sdk/invariant.ts +0 -34
@@ -1,2 +0,0 @@
1
- export * from "./fragment-masking";
2
- export * from "./gql";
@@ -1,71 +0,0 @@
1
- query PairEvents($cursor: String, $limit: Int, $direction: RankingDirection, $query: EventsQueryInput!) {
2
- pairEvents: getTokenEvents(
3
- query: $query,
4
- cursor: $cursor,
5
- limit: $limit,
6
- direction: $direction
7
- ) {
8
- cursor
9
- items {
10
- address
11
- baseTokenPrice
12
- blockHash
13
- blockNumber
14
- eventDisplayType
15
- eventType
16
- id
17
- liquidityToken
18
- maker
19
- networkId
20
- quoteToken
21
- token0PoolValueUsd
22
- token0SwapValueUsd
23
- timestamp
24
- token0ValueBase
25
- token1PoolValueUsd
26
- token1SwapValueUsd
27
- token1ValueBase
28
- transactionHash
29
- transactionIndex
30
- logIndex
31
- data {
32
- __typename
33
- ... on BurnEventData {
34
- amount0
35
- amount1
36
- amount0Shifted
37
- amount1Shifted
38
- type
39
- }
40
- ... on MintEventData {
41
- amount0
42
- amount1
43
- amount0Shifted
44
- amount1Shifted
45
- type
46
- }
47
- ... on PoolBalanceChangedEventData {
48
- amount0
49
- amount1
50
- amount0Shifted
51
- amount1Shifted
52
- type
53
- }
54
- ... on SwapEventData {
55
- amount0In
56
- amount0Out
57
- amount1In
58
- amount1Out
59
- amount0
60
- amount1
61
- amountNonLiquidityToken
62
- priceUsd
63
- priceUsdTotal
64
- priceBaseToken
65
- priceBaseTokenTotal
66
- type
67
- }
68
- }
69
- }
70
- }
71
- }
@@ -1,454 +0,0 @@
1
- import { DocumentNode } from "graphql";
2
-
3
- import { ApiConfig, Codex } from "./index";
4
-
5
- const getNetworksDocument = {
6
- kind: "Document",
7
- definitions: [
8
- {
9
- kind: "OperationDefinition",
10
- operation: "query",
11
- name: { kind: "Name", value: "Networks" },
12
- selectionSet: {
13
- kind: "SelectionSet",
14
- selections: [
15
- {
16
- kind: "Field",
17
- name: { kind: "Name", value: "getNetworks" },
18
- selectionSet: {
19
- kind: "SelectionSet",
20
- selections: [
21
- { kind: "Field", name: { kind: "Name", value: "id" } },
22
- { kind: "Field", name: { kind: "Name", value: "name" } },
23
- ],
24
- },
25
- },
26
- ],
27
- },
28
- },
29
- ],
30
- } as unknown as DocumentNode;
31
-
32
- const getNetworksString = `query GetNetworks { getNetworks { id } }`;
33
- const subscribePriceUpdatedString = `subscription onPriceUpdated($address: String!, $networkId: Int!) { onPriceUpdated(address: $address, networkId: $networkId) { address networkId priceUsd timestamp } }`;
34
-
35
- describe("Codex", () => {
36
- let sdk: Codex;
37
-
38
- beforeEach(() => {
39
- sdk = new Codex("dummy-key");
40
- });
41
-
42
- describe("constructor", () => {
43
- it("should initialize with default config when no apiConfig provided", () => {
44
- const sdkInstance = new Codex("test-key");
45
- expect(sdkInstance).toBeInstanceOf(Codex);
46
- expect(sdkInstance.queries).toBeDefined();
47
- expect(sdkInstance.mutations).toBeDefined();
48
- expect(sdkInstance.subscriptions).toBeDefined();
49
- });
50
-
51
- it("should throw error when apiKey is not provided", () => {
52
- expect(() => new Codex("")).toThrow("apiKey must be defined");
53
- expect(() => new Codex(null as any)).toThrow("apiKey must be defined");
54
- expect(() => new Codex(undefined as any)).toThrow(
55
- "apiKey must be defined",
56
- );
57
- });
58
-
59
- it("should initialize with custom apiConfig", () => {
60
- const customConfig: Partial<ApiConfig> = {
61
- apiUrl: "https://custom.api.com/graphql",
62
- apiRealtimeUrl: "wss://custom.api.com/graphql",
63
- headers: { "Custom-Header": "value" },
64
- wsHeaders: { "WS-Header": "ws-value" },
65
- ws: false,
66
- };
67
-
68
- const sdkInstance = new Codex("test-key", customConfig);
69
- expect(sdkInstance).toBeInstanceOf(Codex);
70
- });
71
-
72
- it("should merge custom config with default config", () => {
73
- const customConfig: Partial<ApiConfig> = {
74
- headers: { "Custom-Header": "value" },
75
- ws: false,
76
- };
77
-
78
- // Mock the createGraphQLClient and createWebsocketClient to verify they're called with merged config
79
- const createGraphQLClientSpy = jest.spyOn(
80
- Codex.prototype as any,
81
- "createGraphQLClient",
82
- );
83
- const createWebsocketClientSpy = jest.spyOn(
84
- Codex.prototype as any,
85
- "createWebsocketClient",
86
- );
87
-
88
- new Codex("test-key", customConfig);
89
-
90
- // Verify the merged config was used
91
- expect(createGraphQLClientSpy).toHaveBeenCalledWith(
92
- expect.objectContaining({
93
- apiUrl: "https://graph.codex.io/graphql", // default
94
- apiRealtimeUrl: "wss://graph.codex.io/graphql", // default
95
- headers: { "Custom-Header": "value" }, // custom
96
- ws: false, // custom
97
- }),
98
- );
99
-
100
- createGraphQLClientSpy.mockRestore();
101
- createWebsocketClientSpy.mockRestore();
102
- });
103
- });
104
-
105
- describe("updateConfig", () => {
106
- it("should update configuration and recreate clients", () => {
107
- const disposeSpy = jest.spyOn(sdk, "dispose");
108
- const createGraphQLClientSpy = jest.spyOn(
109
- sdk as any,
110
- "createGraphQLClient",
111
- );
112
- const createWebsocketClientSpy = jest.spyOn(
113
- sdk as any,
114
- "createWebsocketClient",
115
- );
116
-
117
- const newConfig: Partial<ApiConfig> = {
118
- apiUrl: "https://new-api.com/graphql",
119
- headers: { "New-Header": "new-value" },
120
- };
121
-
122
- sdk.updateConfig(newConfig);
123
-
124
- expect(disposeSpy).toHaveBeenCalled();
125
- expect(createGraphQLClientSpy).toHaveBeenCalled();
126
- expect(createWebsocketClientSpy).toHaveBeenCalled();
127
-
128
- disposeSpy.mockRestore();
129
- createGraphQLClientSpy.mockRestore();
130
- createWebsocketClientSpy.mockRestore();
131
- });
132
-
133
- it("should merge new config with existing config", () => {
134
- const initialConfig: Partial<ApiConfig> = {
135
- headers: { "Initial-Header": "initial-value" },
136
- ws: true,
137
- };
138
-
139
- const sdkWithConfig = new Codex("test-key", initialConfig);
140
- const parseConfigSpy = jest.spyOn(sdkWithConfig as any, "parseConfig");
141
-
142
- const updateConfig: Partial<ApiConfig> = {
143
- headers: { "Updated-Header": "updated-value" },
144
- apiUrl: "https://updated-api.com/graphql",
145
- };
146
-
147
- sdkWithConfig.updateConfig(updateConfig);
148
-
149
- // Verify parseConfig was called with merged configuration
150
- expect(parseConfigSpy).toHaveBeenCalledWith(
151
- expect.objectContaining({
152
- headers: { "Updated-Header": "updated-value" },
153
- apiUrl: "https://updated-api.com/graphql",
154
- ws: true, // from initial config
155
- }),
156
- );
157
-
158
- parseConfigSpy.mockRestore();
159
- });
160
-
161
- it("should dispose existing websocket connection before creating new one", () => {
162
- // Mock wsClient
163
- const mockDispose = jest.fn();
164
- (sdk as any).wsClient = { dispose: mockDispose };
165
-
166
- const disposeSpy = jest.spyOn(sdk, "dispose");
167
-
168
- sdk.updateConfig({ headers: { "New-Header": "value" } });
169
-
170
- expect(disposeSpy).toHaveBeenCalled();
171
- disposeSpy.mockRestore();
172
- });
173
- });
174
-
175
- describe("getRequestHeaders", () => {
176
- it("should return static headers when no dynamic headers are configured", async () => {
177
- const staticHeaders = { "Static-Header": "static-value" };
178
- const sdkWithHeaders = new Codex("test-key", { headers: staticHeaders });
179
-
180
- const headers = await (sdkWithHeaders as any).getRequestHeaders();
181
-
182
- expect(headers).toEqual(staticHeaders);
183
- });
184
-
185
- it("should return dynamic headers when applyHeaders is configured", async () => {
186
- const dynamicHeaders = { "Dynamic-Header": "dynamic-value" };
187
- const applyHeaders = jest.fn().mockResolvedValue(dynamicHeaders);
188
-
189
- const sdkWithDynamicHeaders = new Codex("test-key", { applyHeaders });
190
-
191
- const headers = await (sdkWithDynamicHeaders as any).getRequestHeaders();
192
-
193
- expect(applyHeaders).toHaveBeenCalled();
194
- expect(headers).toEqual(dynamicHeaders);
195
- });
196
-
197
- it("should merge static and dynamic headers with dynamic taking precedence", async () => {
198
- const staticHeaders = { "Header-1": "static", "Header-2": "static" };
199
- const dynamicHeaders = { "Header-2": "dynamic", "Header-3": "dynamic" };
200
- const applyHeaders = jest.fn().mockResolvedValue(dynamicHeaders);
201
-
202
- const sdkWithBothHeaders = new Codex("test-key", {
203
- headers: staticHeaders,
204
- applyHeaders,
205
- });
206
-
207
- const headers = await (sdkWithBothHeaders as any).getRequestHeaders();
208
-
209
- expect(headers).toEqual({
210
- "Header-1": "static",
211
- "Header-2": "dynamic", // dynamic overrides static
212
- "Header-3": "dynamic",
213
- });
214
- });
215
-
216
- it("should handle applyHeaders returning undefined", async () => {
217
- const staticHeaders = { "Static-Header": "static-value" };
218
- const applyHeaders = jest.fn().mockResolvedValue(undefined);
219
-
220
- const sdkWithUndefinedDynamic = new Codex("test-key", {
221
- headers: staticHeaders,
222
- applyHeaders,
223
- });
224
-
225
- const headers = await (
226
- sdkWithUndefinedDynamic as any
227
- ).getRequestHeaders();
228
-
229
- expect(headers).toEqual(staticHeaders);
230
- });
231
- });
232
-
233
- describe("fetch override", () => {
234
- it("should use the fetch override", async () => {
235
- const fetchMock = jest.fn((input, init) => {
236
- console.log("fetchMock", input, init);
237
- return Promise.resolve(
238
- new Response(
239
- JSON.stringify({
240
- data: { getNetworks: [] },
241
- }),
242
- {
243
- status: 200,
244
- headers: new Headers({
245
- "Content-Type": "application/json",
246
- }),
247
- },
248
- ),
249
- );
250
- });
251
-
252
- const sdkWithFetch = new Codex("test-key", { fetch: fetchMock });
253
- await sdkWithFetch.query(getNetworksDocument, {});
254
- expect(fetchMock).toHaveBeenCalled();
255
- });
256
- });
257
-
258
- describe("dispose", () => {
259
- it("should dispose websocket client when it exists", async () => {
260
- const mockDispose = jest.fn();
261
- (sdk as any).wsClient = { dispose: mockDispose };
262
-
263
- await sdk.dispose();
264
-
265
- expect(mockDispose).toHaveBeenCalled();
266
- });
267
-
268
- it("should not throw error when websocket client is undefined", async () => {
269
- (sdk as any).wsClient = undefined;
270
-
271
- await expect(sdk.dispose()).resolves.not.toThrow();
272
- });
273
- });
274
-
275
- describe("websocket configuration", () => {
276
- it("should create websocket client when ws is true (default)", () => {
277
- const createWebsocketClientSpy = jest.spyOn(
278
- Codex.prototype as any,
279
- "createWebsocketClient",
280
- );
281
-
282
- new Codex("test-key");
283
-
284
- expect(createWebsocketClientSpy).toHaveBeenCalledWith(
285
- expect.objectContaining({ ws: true }),
286
- );
287
-
288
- createWebsocketClientSpy.mockRestore();
289
- });
290
-
291
- it("should not create websocket client when ws is false", () => {
292
- const createWebsocketClientSpy = jest.spyOn(
293
- Codex.prototype as any,
294
- "createWebsocketClient",
295
- );
296
-
297
- new Codex("test-key", { ws: false });
298
-
299
- expect(createWebsocketClientSpy).toHaveBeenCalledWith(
300
- expect.objectContaining({ ws: false }),
301
- );
302
-
303
- createWebsocketClientSpy.mockRestore();
304
- });
305
-
306
- it("should throw error when trying to subscribe without websocket enabled", () => {
307
- const sdkWithoutWs = new Codex("test-key", { ws: false });
308
-
309
- expect(() => {
310
- sdkWithoutWs.subscribe(
311
- subscribePriceUpdatedString,
312
- { address: "0xtoken", networkId: 1 },
313
- { next: jest.fn(), error: jest.fn(), complete: jest.fn() },
314
- );
315
- }).toThrow("Websocket is not enabled in the config");
316
- });
317
- });
318
-
319
- describe("query", () => {
320
- it("should send a fetch request with the correct params", async () => {
321
- const fetchSpy = jest
322
- .spyOn(sdk["client"], "request")
323
- .mockResolvedValue({} as unknown);
324
-
325
- await sdk.query(getNetworksDocument, {});
326
-
327
- expect(fetchSpy).toHaveBeenCalledWith(getNetworksDocument, {}, {});
328
- });
329
-
330
- it("should include request headers in the request", async () => {
331
- const mockHeaders = { "Test-Header": "test-value" };
332
- const getRequestHeadersSpy = jest
333
- .spyOn(sdk as any, "getRequestHeaders")
334
- .mockResolvedValue(mockHeaders);
335
- const fetchSpy = jest
336
- .spyOn(sdk["client"], "request")
337
- .mockResolvedValue({} as unknown);
338
-
339
- await sdk.query(getNetworksDocument, {});
340
-
341
- expect(getRequestHeadersSpy).toHaveBeenCalled();
342
- expect(fetchSpy).toHaveBeenCalledWith(
343
- getNetworksDocument,
344
- {},
345
- mockHeaders,
346
- );
347
-
348
- getRequestHeadersSpy.mockRestore();
349
- });
350
- });
351
-
352
- describe("mutation", () => {
353
- it("should send a request with the correct params", async () => {
354
- const fetchSpy = jest
355
- .spyOn(sdk["client"], "request")
356
- .mockResolvedValue({} as unknown);
357
-
358
- await sdk.mutation(getNetworksDocument, {});
359
-
360
- expect(fetchSpy).toHaveBeenCalledWith(getNetworksDocument, {}, {});
361
- });
362
-
363
- it("should include request headers in the request", async () => {
364
- const mockHeaders = { "Test-Header": "test-value" };
365
- const getRequestHeadersSpy = jest
366
- .spyOn(sdk as any, "getRequestHeaders")
367
- .mockResolvedValue(mockHeaders);
368
- const fetchSpy = jest
369
- .spyOn(sdk["client"], "request")
370
- .mockResolvedValue({} as unknown);
371
-
372
- await sdk.mutation(getNetworksDocument, {});
373
-
374
- expect(getRequestHeadersSpy).toHaveBeenCalled();
375
- expect(fetchSpy).toHaveBeenCalledWith(
376
- getNetworksDocument,
377
- {},
378
- mockHeaders,
379
- );
380
-
381
- getRequestHeadersSpy.mockRestore();
382
- });
383
- });
384
-
385
- describe("send", () => {
386
- it("should return the results of the query", async () => {
387
- const fetchSpy = jest
388
- .spyOn(sdk["client"], "request")
389
- .mockResolvedValue({} as unknown);
390
-
391
- await sdk.send(getNetworksString, {});
392
-
393
- expect(fetchSpy).toHaveBeenCalledWith(getNetworksString, {}, {});
394
- });
395
-
396
- it("should include request headers in the request", async () => {
397
- const mockHeaders = { "Test-Header": "test-value" };
398
- const getRequestHeadersSpy = jest
399
- .spyOn(sdk as any, "getRequestHeaders")
400
- .mockResolvedValue(mockHeaders);
401
- const fetchSpy = jest
402
- .spyOn(sdk["client"], "request")
403
- .mockResolvedValue({} as unknown);
404
-
405
- await sdk.send(getNetworksString, {});
406
-
407
- expect(getRequestHeadersSpy).toHaveBeenCalled();
408
- expect(fetchSpy).toHaveBeenCalledWith(getNetworksString, {}, mockHeaders);
409
-
410
- getRequestHeadersSpy.mockRestore();
411
- });
412
- });
413
-
414
- describe("subscribe", () => {
415
- it("should return a cleanup function", () => {
416
- const next = jest.fn();
417
- const error = jest.fn();
418
- const complete = jest.fn();
419
- const sink = { next, error, complete };
420
-
421
- jest.spyOn(sdk["wsClient"] as any, "subscribe").mockReturnValue(() => {});
422
-
423
- const cleanup = sdk.subscribe(
424
- subscribePriceUpdatedString,
425
- { address: "0xtoken", networkId: 1 },
426
- sink,
427
- );
428
-
429
- expect(typeof cleanup).toBe("function");
430
- });
431
-
432
- it("should call wsClient.subscribe with correct parameters", () => {
433
- const next = jest.fn();
434
- const error = jest.fn();
435
- const complete = jest.fn();
436
- const sink = { next, error, complete };
437
- const variables = { address: "0xtoken", networkId: 1 };
438
-
439
- const subscribeSpy = jest
440
- .spyOn(sdk["wsClient"] as any, "subscribe")
441
- .mockReturnValue(() => {});
442
-
443
- sdk.subscribe(subscribePriceUpdatedString, variables, sink);
444
-
445
- expect(subscribeSpy).toHaveBeenCalledWith(
446
- {
447
- query: subscribePriceUpdatedString,
448
- variables,
449
- },
450
- sink,
451
- );
452
- });
453
- });
454
- });