@apollo/gateway 2.4.5 → 2.4.6

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 (64) hide show
  1. package/dist/__generated__/graphqlTypes.d.ts +19 -1
  2. package/dist/__generated__/graphqlTypes.d.ts.map +1 -1
  3. package/dist/__generated__/graphqlTypes.js +1 -0
  4. package/dist/__generated__/graphqlTypes.js.map +1 -1
  5. package/package.json +4 -4
  6. package/src/__generated__/graphqlTypes.ts +33 -2
  7. package/src/__mocks__/tsconfig.json +0 -7
  8. package/src/__tests__/.gitkeep +0 -0
  9. package/src/__tests__/CucumberREADME.md +0 -96
  10. package/src/__tests__/build-query-plan.feature +0 -1471
  11. package/src/__tests__/buildQueryPlan.test.ts +0 -1225
  12. package/src/__tests__/executeQueryPlan.conditions.test.ts +0 -1488
  13. package/src/__tests__/executeQueryPlan.introspection.test.ts +0 -140
  14. package/src/__tests__/executeQueryPlan.test.ts +0 -6140
  15. package/src/__tests__/execution-utils.ts +0 -124
  16. package/src/__tests__/gateway/__snapshots__/opentelemetry.test.ts.snap +0 -195
  17. package/src/__tests__/gateway/buildService.test.ts +0 -249
  18. package/src/__tests__/gateway/endToEnd.test.ts +0 -486
  19. package/src/__tests__/gateway/executor.test.ts +0 -96
  20. package/src/__tests__/gateway/extensions.test.ts +0 -37
  21. package/src/__tests__/gateway/lifecycle-hooks.test.ts +0 -239
  22. package/src/__tests__/gateway/opentelemetry.test.ts +0 -123
  23. package/src/__tests__/gateway/queryPlanCache.test.ts +0 -231
  24. package/src/__tests__/gateway/queryPlannerConfig.test.ts +0 -101
  25. package/src/__tests__/gateway/reporting.test.ts +0 -616
  26. package/src/__tests__/gateway/supergraphSdl.test.ts +0 -396
  27. package/src/__tests__/gateway/testUtils.ts +0 -89
  28. package/src/__tests__/integration/abstract-types.test.ts +0 -1861
  29. package/src/__tests__/integration/aliases.test.ts +0 -180
  30. package/src/__tests__/integration/boolean.test.ts +0 -279
  31. package/src/__tests__/integration/complex-key.test.ts +0 -197
  32. package/src/__tests__/integration/configuration.test.ts +0 -404
  33. package/src/__tests__/integration/custom-directives.test.ts +0 -174
  34. package/src/__tests__/integration/execution-style.test.ts +0 -35
  35. package/src/__tests__/integration/fragments.test.ts +0 -237
  36. package/src/__tests__/integration/list-key.test.ts +0 -128
  37. package/src/__tests__/integration/logger.test.ts +0 -122
  38. package/src/__tests__/integration/managed.test.ts +0 -319
  39. package/src/__tests__/integration/merge-arrays.test.ts +0 -34
  40. package/src/__tests__/integration/multiple-key.test.ts +0 -327
  41. package/src/__tests__/integration/mutations.test.ts +0 -287
  42. package/src/__tests__/integration/networkRequests.test.ts +0 -542
  43. package/src/__tests__/integration/nockMocks.ts +0 -157
  44. package/src/__tests__/integration/provides.test.ts +0 -77
  45. package/src/__tests__/integration/requires.test.ts +0 -359
  46. package/src/__tests__/integration/scope.test.ts +0 -557
  47. package/src/__tests__/integration/single-service.test.ts +0 -119
  48. package/src/__tests__/integration/unions.test.ts +0 -79
  49. package/src/__tests__/integration/value-types.test.ts +0 -382
  50. package/src/__tests__/integration/variables.test.ts +0 -120
  51. package/src/__tests__/nockAssertions.ts +0 -20
  52. package/src/__tests__/queryPlanCucumber.test.ts +0 -55
  53. package/src/__tests__/resultShaping.test.ts +0 -605
  54. package/src/__tests__/testSetup.ts +0 -1
  55. package/src/__tests__/tsconfig.json +0 -8
  56. package/src/core/__tests__/core.test.ts +0 -412
  57. package/src/datasources/__tests__/LocalGraphQLDataSource.test.ts +0 -51
  58. package/src/datasources/__tests__/RemoteGraphQLDataSource.test.ts +0 -574
  59. package/src/schema-helper/__tests__/addExtensions.test.ts +0 -70
  60. package/src/supergraphManagers/IntrospectAndCompose/__tests__/IntrospectAndCompose.test.ts +0 -364
  61. package/src/supergraphManagers/IntrospectAndCompose/__tests__/loadServicesFromRemoteEndpoint.test.ts +0 -40
  62. package/src/supergraphManagers/UplinkSupergraphManager/__tests__/UplinkSupergraphManager.test.ts +0 -65
  63. package/src/supergraphManagers/UplinkSupergraphManager/__tests__/loadSupergraphSdlFromStorage.test.ts +0 -511
  64. package/src/utilities/__tests__/deepMerge.test.ts +0 -77
@@ -1,287 +0,0 @@
1
- import { execute } from '../execution-utils';
2
- import {
3
- astSerializer,
4
- queryPlanSerializer,
5
- } from 'apollo-federation-integration-testsuite';
6
- import { accounts, reviews } from 'apollo-federation-integration-testsuite';
7
-
8
- expect.addSnapshotSerializer(astSerializer);
9
- expect.addSnapshotSerializer(queryPlanSerializer);
10
-
11
- function spyOnResolver<T extends string>(resolverMap: any, resolverName: T) {
12
- return jest.spyOn<any, T>(resolverMap, resolverName).mockName(resolverName);
13
- }
14
-
15
- it('supports mutations', async () => {
16
- const query = `#graphql
17
- mutation Login($username: String!, $password: String!) {
18
- login(username: $username, password: $password) {
19
- reviews {
20
- product {
21
- upc
22
- }
23
- }
24
- }
25
- }
26
- `;
27
-
28
- const variables = { username: '@complete', password: 'css_completes_me' };
29
- const { data, queryPlan } = await execute({
30
- query,
31
- variables,
32
- });
33
-
34
- expect(data).toEqual({
35
- login: {
36
- reviews: [
37
- { product: { upc: '3' } },
38
- { product: { upc: '1' } },
39
- { product: { upc: '0262510871' } },
40
- { product: { upc: '0136291554' } },
41
- ],
42
- },
43
- });
44
-
45
- expect(queryPlan).toCallService('accounts');
46
- expect(queryPlan).toCallService('reviews');
47
- expect(queryPlan).toCallService('product');
48
- });
49
-
50
- it('returning across service boundaries', async () => {
51
- const query = `#graphql
52
- mutation Review($upc: String!, $body: String!) {
53
- reviewProduct(input: { upc: $upc, body: $body }) {
54
- ... on Furniture {
55
- name
56
- }
57
- }
58
- }
59
- `;
60
-
61
- const variables = { upc: '1', body: 'A great table' };
62
- const { data, queryPlan } = await execute({
63
- query,
64
- variables,
65
- });
66
-
67
- expect(data).toEqual({
68
- reviewProduct: {
69
- name: 'Table',
70
- },
71
- });
72
-
73
- expect(queryPlan).toCallService('reviews');
74
- expect(queryPlan).toCallService('product');
75
- });
76
-
77
- it('multiple root mutations', async () => {
78
- const login = spyOnResolver(accounts.resolvers.Mutation, 'login');
79
- const reviewProduct = spyOnResolver(
80
- reviews.resolvers.Mutation,
81
- 'reviewProduct',
82
- );
83
-
84
- const query = `#graphql
85
- mutation LoginAndReview(
86
- $username: String!
87
- $password: String!
88
- $upc: String!
89
- $body: String!
90
- ) {
91
- login(username: $username, password: $password) {
92
- reviews {
93
- product {
94
- upc
95
- }
96
- }
97
- }
98
- reviewProduct(input: { upc: $upc, body: $body }) {
99
- ... on Furniture {
100
- name
101
- }
102
- }
103
- }
104
- `;
105
-
106
- const variables = {
107
- username: '@complete',
108
- password: 'css_completes_me',
109
- upc: '1',
110
- body: 'A great table.',
111
- };
112
- const { data, queryPlan } = await execute({
113
- query,
114
- variables,
115
- });
116
-
117
- expect(data).toEqual({
118
- login: {
119
- reviews: [
120
- { product: { upc: '3' } },
121
- { product: { upc: '1' } },
122
- { product: { upc: '0262510871' } },
123
- { product: { upc: '0136291554' } },
124
- ],
125
- },
126
- reviewProduct: {
127
- name: 'Table',
128
- },
129
- });
130
-
131
- expect(queryPlan).toCallService('accounts');
132
- expect(queryPlan).toCallService('reviews');
133
- expect(queryPlan).toCallService('product');
134
-
135
- expect(login).toHaveBeenCalledBefore(reviewProduct);
136
- });
137
-
138
- it('multiple root mutations with correct service order', async () => {
139
- const reviewsMutations = reviews.resolvers.Mutation;
140
- const reviewProduct = spyOnResolver(reviewsMutations, 'reviewProduct');
141
- const login = spyOnResolver(accounts.resolvers.Mutation, 'login');
142
- const updateReview = spyOnResolver(reviewsMutations, 'updateReview');
143
- const deleteReview = spyOnResolver(reviewsMutations, 'deleteReview');
144
-
145
- const query = `#graphql
146
- mutation LoginAndReview(
147
- $upc: String!
148
- $body: String!
149
- $updatedReview: UpdateReviewInput!
150
- $username: String!
151
- $password: String!
152
- $reviewId: ID!
153
- ) {
154
- reviewProduct(input: { upc: $upc, body: $body }) {
155
- ... on Furniture {
156
- upc
157
- }
158
- }
159
- updateReview(review: $updatedReview) {
160
- id
161
- body
162
- }
163
- login(username: $username, password: $password) {
164
- reviews {
165
- product {
166
- upc
167
- }
168
- }
169
- }
170
- deleteReview(id: $reviewId)
171
- }
172
- `;
173
-
174
- const variables = {
175
- upc: '1',
176
- body: 'A great table.',
177
- updatedReview: {
178
- id: '1',
179
- body: 'An excellent table.',
180
- },
181
- username: '@complete',
182
- password: 'css_completes_me',
183
- reviewId: '6',
184
- };
185
- const { data, queryPlan } = await execute({
186
- query,
187
- variables,
188
- });
189
-
190
- expect(data).toEqual({
191
- deleteReview: true,
192
- login: {
193
- reviews: [
194
- { product: { upc: '3' } },
195
- { product: { upc: '1' } },
196
- { product: { upc: '0262510871' } },
197
- { product: { upc: '0136291554' } },
198
- ],
199
- },
200
- reviewProduct: {
201
- upc: '1',
202
- },
203
- updateReview: {
204
- body: 'An excellent table.',
205
- id: '1',
206
- },
207
- });
208
-
209
- expect(queryPlan).toMatchInlineSnapshot(`
210
- QueryPlan {
211
- Sequence {
212
- Fetch(service: "reviews") {
213
- {
214
- reviewProduct(input: {upc: $upc, body: $body}) {
215
- __typename
216
- ... on Furniture {
217
- upc
218
- }
219
- }
220
- updateReview(review: $updatedReview) {
221
- id
222
- body
223
- }
224
- }
225
- },
226
- Fetch(service: "accounts") {
227
- {
228
- login(username: $username, password: $password) {
229
- __typename
230
- id
231
- }
232
- }
233
- },
234
- Flatten(path: "login") {
235
- Fetch(service: "reviews") {
236
- {
237
- ... on User {
238
- __typename
239
- id
240
- }
241
- } =>
242
- {
243
- ... on User {
244
- reviews {
245
- product {
246
- __typename
247
- ... on Book {
248
- __typename
249
- isbn
250
- }
251
- ... on Furniture {
252
- upc
253
- }
254
- }
255
- }
256
- }
257
- }
258
- },
259
- },
260
- Flatten(path: "login.reviews.@.product") {
261
- Fetch(service: "product") {
262
- {
263
- ... on Book {
264
- __typename
265
- isbn
266
- }
267
- } =>
268
- {
269
- ... on Book {
270
- upc
271
- }
272
- }
273
- },
274
- },
275
- Fetch(service: "reviews") {
276
- {
277
- deleteReview(id: $reviewId)
278
- }
279
- },
280
- },
281
- }
282
- `);
283
-
284
- expect(reviewProduct).toHaveBeenCalledBefore(updateReview);
285
- expect(updateReview).toHaveBeenCalledBefore(login);
286
- expect(login).toHaveBeenCalledBefore(deleteReview);
287
- });