@aws-amplify/graphql-model-transformer 1.5.0-rds.0 → 2.1.0

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 (68) hide show
  1. package/API.md +15 -15
  2. package/CHANGELOG.md +2 -7
  3. package/lib/graphql-types/mutation.d.ts.map +1 -1
  4. package/lib/graphql-types/mutation.js +2 -9
  5. package/lib/graphql-types/mutation.js.map +1 -1
  6. package/lib/rds-lambda.zip +0 -0
  7. package/lib/rds-notification-lambda.zip +0 -0
  8. package/lib/rds-patching-lambda.zip +0 -0
  9. package/lib/resolvers/generators/dynamodb-vtl-generator.d.ts +5 -6
  10. package/lib/resolvers/generators/dynamodb-vtl-generator.d.ts.map +1 -1
  11. package/lib/resolvers/generators/dynamodb-vtl-generator.js +5 -5
  12. package/lib/resolvers/generators/dynamodb-vtl-generator.js.map +1 -1
  13. package/lib/resolvers/generators/rds-vtl-generator.d.ts +5 -6
  14. package/lib/resolvers/generators/rds-vtl-generator.d.ts.map +1 -1
  15. package/lib/resolvers/generators/rds-vtl-generator.js +10 -10
  16. package/lib/resolvers/generators/rds-vtl-generator.js.map +1 -1
  17. package/lib/resolvers/generators/vtl-generator.d.ts +5 -6
  18. package/lib/resolvers/generators/vtl-generator.d.ts.map +1 -1
  19. package/lib/resolvers/rds/mutation.d.ts +3 -4
  20. package/lib/resolvers/rds/mutation.d.ts.map +1 -1
  21. package/lib/resolvers/rds/mutation.js +3 -7
  22. package/lib/resolvers/rds/mutation.js.map +1 -1
  23. package/lib/resolvers/rds/query.d.ts +1 -2
  24. package/lib/resolvers/rds/query.d.ts.map +1 -1
  25. package/lib/resolvers/rds/query.js +1 -3
  26. package/lib/resolvers/rds/query.js.map +1 -1
  27. package/lib/resolvers/rds/resolver.d.ts +7 -11
  28. package/lib/resolvers/rds/resolver.d.ts.map +1 -1
  29. package/lib/resolvers/rds/resolver.js +39 -50
  30. package/lib/resolvers/rds/resolver.js.map +1 -1
  31. package/lib/resources/dynamo-model-resource-generator.d.ts +2 -2
  32. package/lib/resources/dynamo-model-resource-generator.d.ts.map +1 -1
  33. package/lib/resources/dynamo-model-resource-generator.js +48 -43
  34. package/lib/resources/dynamo-model-resource-generator.js.map +1 -1
  35. package/lib/resources/model-resource-generator.js +8 -8
  36. package/lib/resources/model-resource-generator.js.map +1 -1
  37. package/lib/resources/rds-model-resource-generator.js +13 -13
  38. package/package.json +6 -5
  39. package/publish-notification-lambda/node_modules/.package-lock.json +3 -3
  40. package/publish-notification-lambda/node_modules/@types/node/README.md +1 -1
  41. package/publish-notification-lambda/node_modules/@types/node/package.json +2 -2
  42. package/publish-notification-lambda/package-lock.json +3 -3
  43. package/rds-lambda/handler.ts +1 -2
  44. package/rds-lambda/node_modules/.package-lock.json +6 -6
  45. package/rds-lambda/node_modules/@types/node/README.md +1 -1
  46. package/rds-lambda/node_modules/@types/node/package.json +2 -2
  47. package/rds-lambda/node_modules/electron-to-chromium/full-chromium-versions.json +1 -1
  48. package/rds-lambda/node_modules/electron-to-chromium/full-versions.json +1 -1
  49. package/rds-lambda/node_modules/electron-to-chromium/package.json +1 -1
  50. package/rds-lambda/package-lock.json +6 -6
  51. package/rds-patching-lambda/node_modules/.package-lock.json +3 -3
  52. package/rds-patching-lambda/node_modules/@types/node/README.md +1 -1
  53. package/rds-patching-lambda/node_modules/@types/node/package.json +2 -2
  54. package/rds-patching-lambda/package-lock.json +3 -3
  55. package/src/__tests__/__snapshots__/model-transformer.test.ts.snap +0 -688
  56. package/src/__tests__/model-directive-arguments.test.ts +23 -28
  57. package/src/__tests__/model-transformer.test.ts +137 -216
  58. package/src/graphql-types/mutation.ts +3 -11
  59. package/src/resolvers/generators/dynamodb-vtl-generator.ts +5 -7
  60. package/src/resolvers/generators/rds-vtl-generator.ts +10 -12
  61. package/src/resolvers/generators/vtl-generator.ts +5 -6
  62. package/src/resolvers/rds/mutation.ts +3 -18
  63. package/src/resolvers/rds/query.ts +1 -9
  64. package/src/resolvers/rds/resolver.ts +45 -62
  65. package/src/resources/dynamo-model-resource-generator.ts +50 -47
  66. package/src/resources/model-resource-generator.ts +8 -8
  67. package/src/resources/rds-model-resource-generator.ts +13 -13
  68. package/tsconfig.tsbuildinfo +1 -1
@@ -1,14 +1,9 @@
1
- import { ModelTransformer } from '@aws-amplify/graphql-model-transformer';
2
- import {
3
- ConflictHandlerType,
4
- DatasourceType,
5
- GraphQLTransform,
6
- SyncConfig,
7
- validateModelSchema,
8
- } from '@aws-amplify/graphql-transformer-core';
1
+ import { ConflictHandlerType, DatasourceType, GraphQLTransform, validateModelSchema } from '@aws-amplify/graphql-transformer-core';
9
2
  import { InputObjectTypeDefinitionNode, InputValueDefinitionNode, NamedTypeNode, parse } from 'graphql';
10
3
  import { getBaseType } from 'graphql-transformer-common';
11
4
  import { Template } from 'aws-cdk-lib/assertions';
5
+ import { testTransform } from '@aws-amplify/graphql-transformer-test-utils';
6
+ import { ModelTransformer } from '../graphql-model-transformer';
12
7
  import {
13
8
  doNotExpectFields,
14
9
  expectFields,
@@ -30,10 +25,10 @@ describe('ModelTransformer: ', () => {
30
25
  }
31
26
  `;
32
27
 
33
- const transformer = new GraphQLTransform({
28
+ const out = testTransform({
29
+ schema: validSchema,
34
30
  transformers: [new ModelTransformer()],
35
31
  });
36
- const out = transformer.transform(validSchema);
37
32
  expect(out).toBeDefined();
38
33
 
39
34
  validateModelSchema(parse(out.schema));
@@ -48,10 +43,10 @@ describe('ModelTransformer: ', () => {
48
43
  title: String!
49
44
  }
50
45
  `;
51
- const transformer = new GraphQLTransform({
46
+ const out = testTransform({
47
+ schema: validSchema,
52
48
  transformers: [new ModelTransformer()],
53
49
  });
54
- const out = transformer.transform(validSchema);
55
50
  expect(out).toBeDefined();
56
51
 
57
52
  validateModelSchema(parse(out.schema));
@@ -71,7 +66,8 @@ describe('ModelTransformer: ', () => {
71
66
  title: String!
72
67
  }
73
68
  `;
74
- const transformer = new GraphQLTransform({
69
+ const out = testTransform({
70
+ schema: alsoValidSchema,
75
71
  transformers: [new ModelTransformer()],
76
72
  resolverConfig: {
77
73
  project: {
@@ -80,7 +76,6 @@ describe('ModelTransformer: ', () => {
80
76
  },
81
77
  },
82
78
  });
83
- const out = transformer.transform(alsoValidSchema);
84
79
  expect(out).toBeDefined();
85
80
 
86
81
  validateModelSchema(parse(out.schema));
@@ -89,29 +84,6 @@ describe('ModelTransformer: ', () => {
89
84
  expect(out.schema).toContain('input NonModelTypeInput');
90
85
  });
91
86
 
92
- it('id with non string type should require the field on create mutation', async () => {
93
- const validSchema = `
94
- type Task @model {
95
- id: Int!
96
- title: String!
97
- }
98
- `;
99
- const transformer = new GraphQLTransform({
100
- transformers: [new ModelTransformer()],
101
- });
102
- const out = transformer.transform(validSchema);
103
- expect(out).toBeDefined();
104
-
105
- validateModelSchema(parse(out.schema));
106
- const schema = parse(out.schema);
107
- expect(out.schema).toMatchSnapshot();
108
- const createTaskInput = getInputType(schema, 'CreateTaskInput');
109
- expectFieldsOnInputType(createTaskInput!, ['id', 'title']);
110
- const idField = createTaskInput!.fields!.find((f) => f.name.value === 'id');
111
- expect(idField).toBeDefined();
112
- expect(idField?.type.kind).toEqual('NonNullType');
113
- });
114
-
115
87
  it('should support custom query overrides', () => {
116
88
  const validSchema = `type Post @model(queries: { get: "customGetPost", list: "customListPost" }) {
117
89
  id: ID!
@@ -121,11 +93,10 @@ describe('ModelTransformer: ', () => {
121
93
  }
122
94
  `;
123
95
 
124
- const transformer = new GraphQLTransform({
96
+ const out = testTransform({
97
+ schema: validSchema,
125
98
  transformers: [new ModelTransformer()],
126
99
  });
127
-
128
- const out = transformer.transform(validSchema);
129
100
  expect(out).toBeDefined();
130
101
 
131
102
  const definition = out.schema;
@@ -164,11 +135,10 @@ describe('ModelTransformer: ', () => {
164
135
  }
165
136
  `;
166
137
 
167
- const transformer = new GraphQLTransform({
138
+ const out = testTransform({
139
+ schema: validSchema,
168
140
  transformers: [new ModelTransformer()],
169
141
  });
170
-
171
- const out = transformer.transform(validSchema);
172
142
  expect(out).toBeDefined();
173
143
  const definition = out.schema;
174
144
  expect(definition).toBeDefined();
@@ -187,10 +157,10 @@ describe('ModelTransformer: ', () => {
187
157
  updatedAt: String
188
158
  }
189
159
  `;
190
- const transformer = new GraphQLTransform({
160
+ const out = testTransform({
161
+ schema: validSchema,
191
162
  transformers: [new ModelTransformer()],
192
163
  });
193
- const out = transformer.transform(validSchema);
194
164
  expect(out).toBeDefined();
195
165
  const definition = out.schema;
196
166
  expect(definition).toBeDefined();
@@ -208,11 +178,10 @@ describe('ModelTransformer: ', () => {
208
178
  updatedAt: String
209
179
  }
210
180
  `;
211
- const transformer = new GraphQLTransform({
181
+ const out = testTransform({
182
+ schema: validSchema,
212
183
  transformers: [new ModelTransformer()],
213
184
  });
214
-
215
- const out = transformer.transform(validSchema);
216
185
  expect(out).toBeDefined();
217
186
  const definition = out.schema;
218
187
  expect(definition).toBeDefined();
@@ -232,10 +201,10 @@ describe('ModelTransformer: ', () => {
232
201
  updatedAt: String
233
202
  }
234
203
  `;
235
- const transformer = new GraphQLTransform({
204
+ const out = testTransform({
205
+ schema: validSchema,
236
206
  transformers: [new ModelTransformer()],
237
207
  });
238
- const out = transformer.transform(validSchema);
239
208
  expect(out).toBeDefined();
240
209
  const definition = out.schema;
241
210
  expect(definition).toBeDefined();
@@ -257,10 +226,10 @@ describe('ModelTransformer: ', () => {
257
226
  updatedAt: String
258
227
  }
259
228
  `;
260
- const transformer = new GraphQLTransform({
229
+ const out = testTransform({
230
+ schema: validSchema,
261
231
  transformers: [new ModelTransformer()],
262
232
  });
263
- const out = transformer.transform(validSchema);
264
233
  expect(out).toBeDefined();
265
234
  const definition = out.schema;
266
235
  expect(definition).toBeDefined();
@@ -291,10 +260,10 @@ describe('ModelTransformer: ', () => {
291
260
  different3: String
292
261
  }
293
262
  `;
294
- const transformer = new GraphQLTransform({
263
+ const out = testTransform({
264
+ schema: validSchema,
295
265
  transformers: [new ModelTransformer()],
296
266
  });
297
- const out = transformer.transform(validSchema);
298
267
  expect(out).toBeDefined();
299
268
  const definition = out.schema;
300
269
  expect(definition).toBeDefined();
@@ -326,10 +295,10 @@ describe('ModelTransformer: ', () => {
326
295
  different3: String
327
296
  }
328
297
  `;
329
- const transformer = new GraphQLTransform({
298
+ const out = testTransform({
299
+ schema: validSchema,
330
300
  transformers: [new ModelTransformer()],
331
301
  });
332
- const out = transformer.transform(validSchema);
333
302
  expect(out).toBeDefined();
334
303
  const definition = out.schema;
335
304
  expect(definition).toBeDefined();
@@ -350,10 +319,10 @@ describe('ModelTransformer: ', () => {
350
319
  str: String
351
320
  }
352
321
  `;
353
- const transformer = new GraphQLTransform({
322
+ const result = testTransform({
323
+ schema: validSchema,
354
324
  transformers: [new ModelTransformer()],
355
325
  });
356
- const result = transformer.transform(validSchema);
357
326
  expect(result).toBeDefined();
358
327
  expect(result.schema).toBeDefined();
359
328
  const schema = parse(result.schema);
@@ -383,10 +352,10 @@ describe('ModelTransformer: ', () => {
383
352
  query: Query
384
353
  }
385
354
  `;
386
- const transformer = new GraphQLTransform({
355
+ const out = testTransform({
356
+ schema: validSchema,
387
357
  transformers: [new ModelTransformer()],
388
358
  });
389
- const out = transformer.transform(validSchema);
390
359
  expect(out).toBeDefined();
391
360
  const parsed = parse(out.schema);
392
361
  validateModelSchema(parsed);
@@ -410,10 +379,10 @@ describe('ModelTransformer: ', () => {
410
379
  text: String!
411
380
  }
412
381
  `;
413
- const transformer = new GraphQLTransform({
382
+ const out = testTransform({
383
+ schema: validSchema,
414
384
  transformers: [new ModelTransformer()],
415
385
  });
416
- const out = transformer.transform(validSchema);
417
386
  expect(out).toBeDefined();
418
387
  const definition = out.schema;
419
388
  expect(definition).toBeDefined();
@@ -437,12 +406,12 @@ describe('ModelTransformer: ', () => {
437
406
  str: String
438
407
  }
439
408
  `;
440
- const transformer = new GraphQLTransform({
441
- transformers: [new ModelTransformer()],
442
- });
443
- expect(() => transformer.transform(invalidSchema)).toThrowError(
444
- "'Subscription' is a reserved type name and currently in use within the default schema element.",
445
- );
409
+ expect(() =>
410
+ testTransform({
411
+ schema: invalidSchema,
412
+ transformers: [new ModelTransformer()],
413
+ }),
414
+ ).toThrowError("'Subscription' is a reserved type name and currently in use within the default schema element.");
446
415
  });
447
416
 
448
417
  it('should not add default primary key when ID is defined', () => {
@@ -452,10 +421,10 @@ describe('ModelTransformer: ', () => {
452
421
  str: String
453
422
  }
454
423
  `;
455
- const transformer = new GraphQLTransform({
424
+ const result = testTransform({
425
+ schema: validSchema,
456
426
  transformers: [new ModelTransformer()],
457
427
  });
458
- const result = transformer.transform(validSchema);
459
428
  expect(result).toBeDefined();
460
429
  expect(result.schema).toBeDefined();
461
430
  const schema = parse(result.schema);
@@ -480,14 +449,14 @@ describe('ModelTransformer: ', () => {
480
449
  updatedAt: String
481
450
  }
482
451
  `;
483
- const transformer = new GraphQLTransform({
452
+
453
+ const out = testTransform({
454
+ schema: validSchema,
484
455
  transformers: [new ModelTransformer()],
485
456
  transformParameters: {
486
457
  shouldDeepMergeDirectiveConfigDefaults: false,
487
458
  },
488
459
  });
489
-
490
- const out = transformer.transform(validSchema);
491
460
  expect(out).toBeDefined();
492
461
  const definition = out.schema;
493
462
  expect(definition).toBeDefined();
@@ -514,11 +483,10 @@ describe('ModelTransformer: ', () => {
514
483
  name: String!
515
484
  }
516
485
  `;
517
- const transformer = new GraphQLTransform({
486
+ const out = testTransform({
487
+ schema: validSchema,
518
488
  transformers: [new ModelTransformer()],
519
489
  });
520
-
521
- const out = transformer.transform(validSchema);
522
490
  expect(out).toBeDefined();
523
491
 
524
492
  const definition = out.schema;
@@ -563,11 +531,10 @@ describe('ModelTransformer: ', () => {
563
531
  lastStatus: Status!
564
532
  }
565
533
  `;
566
- const transformer = new GraphQLTransform({
534
+ const out = testTransform({
535
+ schema: validSchema,
567
536
  transformers: [new ModelTransformer()],
568
537
  });
569
-
570
- const out = transformer.transform(validSchema);
571
538
  expect(out).toBeDefined();
572
539
  const definition = out.schema;
573
540
  expect(definition).toBeDefined();
@@ -604,10 +571,10 @@ describe('ModelTransformer: ', () => {
604
571
  JEDI
605
572
  }
606
573
  `;
607
- const transformer = new GraphQLTransform({
574
+ const out = testTransform({
575
+ schema: validSchema,
608
576
  transformers: [new ModelTransformer()],
609
577
  });
610
- const out = transformer.transform(validSchema);
611
578
  expect(out).toBeDefined();
612
579
 
613
580
  const definition = out.schema;
@@ -644,10 +611,10 @@ describe('ModelTransformer: ', () => {
644
611
  createdAt: String
645
612
  updatedAt: String
646
613
  }`;
647
- const transformer = new GraphQLTransform({
614
+ const out = testTransform({
615
+ schema: validSchema,
648
616
  transformers: [new ModelTransformer()],
649
617
  });
650
- const out = transformer.transform(validSchema);
651
618
  expect(out).toBeDefined();
652
619
 
653
620
  const definition = out.schema;
@@ -677,10 +644,10 @@ describe('ModelTransformer: ', () => {
677
644
  title: String!
678
645
  }
679
646
  `;
680
- const transformer = new GraphQLTransform({
647
+ const out = testTransform({
648
+ schema: validSchema,
681
649
  transformers: [new ModelTransformer()],
682
650
  });
683
- const out = transformer.transform(validSchema);
684
651
  expect(out).toBeDefined();
685
652
  const definition = out.schema;
686
653
  expect(definition).toBeDefined();
@@ -704,10 +671,10 @@ describe('ModelTransformer: ', () => {
704
671
  updatedAt: String
705
672
  }
706
673
  `;
707
- const transformer = new GraphQLTransform({
674
+ const out = testTransform({
675
+ schema: validSchema,
708
676
  transformers: [new ModelTransformer()],
709
677
  });
710
- const out = transformer.transform(validSchema);
711
678
  expect(out).toBeDefined();
712
679
  const definition = out.schema;
713
680
  expect(definition).toBeDefined();
@@ -726,13 +693,13 @@ describe('ModelTransformer: ', () => {
726
693
  str: String
727
694
  }
728
695
  `;
729
- const transformer = new GraphQLTransform({
696
+ const result = testTransform({
697
+ schema: validSchema,
730
698
  transformers: [new ModelTransformer()],
731
699
  transformParameters: {
732
700
  shouldDeepMergeDirectiveConfigDefaults: false,
733
701
  },
734
702
  });
735
- const result = transformer.transform(validSchema);
736
703
  expect(result).toBeDefined();
737
704
  expect(result.schema).toBeDefined();
738
705
  expect(result.schema).toMatchSnapshot();
@@ -747,7 +714,8 @@ describe('ModelTransformer: ', () => {
747
714
  str: String
748
715
  }
749
716
  `;
750
- const transformer = new GraphQLTransform({
717
+ const result = testTransform({
718
+ schema: validSchema,
751
719
  transformers: [new ModelTransformer()],
752
720
  resolverConfig: {
753
721
  project: {
@@ -756,7 +724,6 @@ describe('ModelTransformer: ', () => {
756
724
  },
757
725
  },
758
726
  });
759
- const result = transformer.transform(validSchema);
760
727
  expect(result).toBeDefined();
761
728
  expect(result.schema).toBeDefined();
762
729
  expect(result.schema).toMatchSnapshot();
@@ -776,7 +743,8 @@ describe('ModelTransformer: ', () => {
776
743
  updatedAt: AWSTimestamp
777
744
  }
778
745
  `;
779
- const transformer = new GraphQLTransform({
746
+ const result = testTransform({
747
+ schema: validSchema,
780
748
  transformers: [new ModelTransformer()],
781
749
  resolverConfig: {
782
750
  project: {
@@ -785,7 +753,6 @@ describe('ModelTransformer: ', () => {
785
753
  },
786
754
  },
787
755
  });
788
- const result = transformer.transform(validSchema);
789
756
  expect(result).toBeDefined();
790
757
  expect(result.schema).toBeDefined();
791
758
  expect(result.schema).toMatchSnapshot();
@@ -805,7 +772,8 @@ describe('ModelTransformer: ', () => {
805
772
  updatedAt: AWSDateTime!
806
773
  }
807
774
  `;
808
- const transformer = new GraphQLTransform({
775
+ const result = testTransform({
776
+ schema: validSchema,
809
777
  transformers: [new ModelTransformer()],
810
778
  resolverConfig: {
811
779
  project: {
@@ -814,8 +782,6 @@ describe('ModelTransformer: ', () => {
814
782
  },
815
783
  },
816
784
  });
817
-
818
- const result = transformer.transform(validSchema);
819
785
  expect(result).toBeDefined();
820
786
  expect(result.schema).toBeDefined();
821
787
  expect(result.schema).toMatchSnapshot();
@@ -833,7 +799,8 @@ describe('ModelTransformer: ', () => {
833
799
  str: String
834
800
  }
835
801
  `;
836
- const transformer = new GraphQLTransform({
802
+ const result = testTransform({
803
+ schema: validSchema,
837
804
  transformers: [new ModelTransformer()],
838
805
  resolverConfig: {
839
806
  project: {
@@ -842,7 +809,6 @@ describe('ModelTransformer: ', () => {
842
809
  },
843
810
  },
844
811
  });
845
- const result = transformer.transform(validSchema);
846
812
  expect(result).toBeDefined();
847
813
  expect(result.schema).toBeDefined();
848
814
  expect(result.schema).toMatchSnapshot();
@@ -864,7 +830,8 @@ describe('ModelTransformer: ', () => {
864
830
  id: ID!
865
831
  }
866
832
  `;
867
- const transformer = new GraphQLTransform({
833
+ const result = testTransform({
834
+ schema: validSchema,
868
835
  transformers: [new ModelTransformer()],
869
836
  resolverConfig: {
870
837
  project: {
@@ -873,8 +840,6 @@ describe('ModelTransformer: ', () => {
873
840
  },
874
841
  },
875
842
  });
876
-
877
- const result = transformer.transform(validSchema);
878
843
  expect(result).toBeDefined();
879
844
  expect(result.schema).toBeDefined();
880
845
  expect(result.schema).toMatchSnapshot();
@@ -934,7 +899,8 @@ describe('ModelTransformer: ', () => {
934
899
  }
935
900
  `;
936
901
 
937
- const transformer = new GraphQLTransform({
902
+ const result = testTransform({
903
+ schema: validSchema,
938
904
  transformers: [new ModelTransformer()],
939
905
  resolverConfig: {
940
906
  project: {
@@ -943,7 +909,6 @@ describe('ModelTransformer: ', () => {
943
909
  },
944
910
  },
945
911
  });
946
- const result = transformer.transform(validSchema);
947
912
  expect(result).toBeDefined();
948
913
  expect(result.schema).toBeDefined();
949
914
  const schema = parse(result.schema);
@@ -972,10 +937,10 @@ describe('ModelTransformer: ', () => {
972
937
  jsonField: AWSJSON
973
938
  }
974
939
  `;
975
- const transformer = new GraphQLTransform({
940
+ const out = testTransform({
941
+ schema: validSchema,
976
942
  transformers: [new ModelTransformer()],
977
943
  });
978
- const out = transformer.transform(validSchema);
979
944
  expect(out).toBeDefined();
980
945
  validateModelSchema(parse(out.schema));
981
946
  });
@@ -988,18 +953,16 @@ describe('ModelTransformer: ', () => {
988
953
  }
989
954
  `;
990
955
 
991
- const config: SyncConfig = {
992
- ConflictDetection: 'VERSION',
993
- ConflictHandler: ConflictHandlerType.AUTOMERGE,
994
- };
995
-
996
- const transformer = new GraphQLTransform({
956
+ const out = testTransform({
957
+ schema: validSchema,
997
958
  transformers: [new ModelTransformer()],
998
959
  resolverConfig: {
999
- project: config,
960
+ project: {
961
+ ConflictDetection: 'VERSION',
962
+ ConflictHandler: ConflictHandlerType.AUTOMERGE,
963
+ },
1000
964
  },
1001
965
  });
1002
- const out = transformer.transform(validSchema);
1003
966
  expect(out).toBeDefined();
1004
967
 
1005
968
  const definition = out.schema;
@@ -1019,21 +982,19 @@ describe('ModelTransformer: ', () => {
1019
982
  }
1020
983
  `;
1021
984
 
1022
- const config: SyncConfig = {
1023
- ConflictDetection: 'VERSION',
1024
- ConflictHandler: ConflictHandlerType.LAMBDA,
1025
- LambdaConflictHandler: {
1026
- name: 'myLambdaConflictHandler',
1027
- },
1028
- };
1029
-
1030
- const transformer = new GraphQLTransform({
985
+ const out = testTransform({
986
+ schema: validSchema,
1031
987
  transformers: [new ModelTransformer()],
1032
988
  resolverConfig: {
1033
- project: config,
989
+ project: {
990
+ ConflictDetection: 'VERSION',
991
+ ConflictHandler: ConflictHandlerType.LAMBDA,
992
+ LambdaConflictHandler: {
993
+ name: 'myLambdaConflictHandler',
994
+ },
995
+ },
1034
996
  },
1035
997
  });
1036
- const out = transformer.transform(validSchema);
1037
998
  expect(out).toBeDefined();
1038
999
 
1039
1000
  const definition = out.schema;
@@ -1052,19 +1013,16 @@ describe('ModelTransformer: ', () => {
1052
1013
  updatedAt: String
1053
1014
  }
1054
1015
  `;
1055
-
1056
- const config: SyncConfig = {
1057
- ConflictDetection: 'VERSION',
1058
- ConflictHandler: ConflictHandlerType.OPTIMISTIC,
1059
- };
1060
-
1061
- const transformer = new GraphQLTransform({
1016
+ const out = testTransform({
1017
+ schema: validSchema,
1062
1018
  transformers: [new ModelTransformer()],
1063
1019
  resolverConfig: {
1064
- project: config,
1020
+ project: {
1021
+ ConflictDetection: 'VERSION',
1022
+ ConflictHandler: ConflictHandlerType.OPTIMISTIC,
1023
+ },
1065
1024
  },
1066
1025
  });
1067
- const out = transformer.transform(validSchema);
1068
1026
  expect(out).toBeDefined();
1069
1027
 
1070
1028
  const definition = out.schema;
@@ -1082,18 +1040,16 @@ describe('ModelTransformer: ', () => {
1082
1040
  }
1083
1041
  `;
1084
1042
 
1085
- const config: SyncConfig = {
1086
- ConflictDetection: 'VERSION',
1087
- ConflictHandler: ConflictHandlerType.AUTOMERGE,
1088
- };
1089
-
1090
- const transformer = new GraphQLTransform({
1043
+ const out = testTransform({
1044
+ schema: validSchema,
1091
1045
  transformers: [new ModelTransformer()],
1092
1046
  resolverConfig: {
1093
- project: config,
1047
+ project: {
1048
+ ConflictDetection: 'VERSION',
1049
+ ConflictHandler: ConflictHandlerType.AUTOMERGE,
1050
+ },
1094
1051
  },
1095
1052
  });
1096
- const out = transformer.transform(validSchema);
1097
1053
  expect(out).toBeDefined();
1098
1054
 
1099
1055
  const definition = out.schema;
@@ -1147,11 +1103,10 @@ describe('ModelTransformer: ', () => {
1147
1103
  name: String
1148
1104
  }`;
1149
1105
 
1150
- const transformer = new GraphQLTransform({
1106
+ const out = testTransform({
1107
+ schema: validSchema,
1151
1108
  transformers: [new ModelTransformer()],
1152
1109
  });
1153
-
1154
- const out = transformer.transform(validSchema);
1155
1110
  expect(out).toBeDefined();
1156
1111
 
1157
1112
  const definition = out.schema;
@@ -1180,19 +1135,19 @@ describe('ModelTransformer: ', () => {
1180
1135
  name: String
1181
1136
  }`;
1182
1137
 
1183
- const transformer = new GraphQLTransform({
1138
+ const out = testTransform({
1139
+ schema: validSchema,
1140
+ transformers: [new ModelTransformer()],
1141
+ transformParameters: {
1142
+ sandboxModeEnabled: true,
1143
+ },
1184
1144
  resolverConfig: {
1185
1145
  project: {
1186
1146
  ConflictDetection: 'VERSION',
1187
1147
  ConflictHandler: ConflictHandlerType.AUTOMERGE,
1188
1148
  },
1189
1149
  },
1190
- transformers: [new ModelTransformer()],
1191
- transformParameters: {
1192
- sandboxModeEnabled: true,
1193
- },
1194
1150
  });
1195
- const out = transformer.transform(validSchema);
1196
1151
  expect(out).toBeDefined();
1197
1152
  const schema = parse(out.schema);
1198
1153
  validateModelSchema(schema);
@@ -1259,7 +1214,12 @@ describe('ModelTransformer: ', () => {
1259
1214
  }
1260
1215
  `;
1261
1216
 
1262
- const transformer = new GraphQLTransform({
1217
+ const out = testTransform({
1218
+ schema: validSchema,
1219
+ transformers: [new ModelTransformer()],
1220
+ transformParameters: {
1221
+ sandboxModeEnabled: true,
1222
+ },
1263
1223
  resolverConfig: {
1264
1224
  project: {
1265
1225
  ConflictDetection: 'VERSION',
@@ -1279,12 +1239,7 @@ describe('ModelTransformer: ', () => {
1279
1239
  },
1280
1240
  },
1281
1241
  },
1282
- transformers: [new ModelTransformer()],
1283
- transformParameters: {
1284
- sandboxModeEnabled: true,
1285
- },
1286
1242
  });
1287
- const out = transformer.transform(validSchema);
1288
1243
  expect(out).toBeDefined();
1289
1244
  const schema = parse(out.schema);
1290
1245
  validateModelSchema(schema);
@@ -1360,13 +1315,13 @@ describe('ModelTransformer: ', () => {
1360
1315
  const validSchema = `type Todo @model {
1361
1316
  name: String
1362
1317
  }`;
1363
- const transformer = new GraphQLTransform({
1318
+ const out = testTransform({
1319
+ schema: validSchema,
1364
1320
  transformers: [new ModelTransformer()],
1365
1321
  transformParameters: {
1366
1322
  sandboxModeEnabled: true,
1367
1323
  },
1368
1324
  });
1369
- const out = transformer.transform(validSchema);
1370
1325
 
1371
1326
  const rootStack = out.rootStack;
1372
1327
  expect(rootStack).toBeDefined();
@@ -1389,7 +1344,12 @@ describe('ModelTransformer: ', () => {
1389
1344
  id: ID
1390
1345
  tags: [Tag]
1391
1346
  }`;
1392
- const transformer = new GraphQLTransform({
1347
+ const out = testTransform({
1348
+ schema: validSchema,
1349
+ transformers: [new ModelTransformer()],
1350
+ transformParameters: {
1351
+ sandboxModeEnabled: true,
1352
+ },
1393
1353
  authConfig: {
1394
1354
  defaultAuthentication: {
1395
1355
  authenticationType: 'AMAZON_COGNITO_USER_POOLS',
@@ -1400,12 +1360,7 @@ describe('ModelTransformer: ', () => {
1400
1360
  },
1401
1361
  ],
1402
1362
  },
1403
- transformers: [new ModelTransformer()],
1404
- transformParameters: {
1405
- sandboxModeEnabled: true,
1406
- },
1407
1363
  });
1408
- const out = transformer.transform(validSchema);
1409
1364
  expect(out).toBeDefined();
1410
1365
 
1411
1366
  const schema = parse(out.schema);
@@ -1441,15 +1396,14 @@ describe('ModelTransformer: ', () => {
1441
1396
  name: String!
1442
1397
  }
1443
1398
  `;
1444
- const transformer = new GraphQLTransform({
1399
+ const result = testTransform({
1400
+ schema: inputSchema,
1445
1401
  transformers: [new ModelTransformer()],
1446
1402
  stackMapping: {
1447
1403
  CreateBlogResolver: 'myCustomStack1',
1448
1404
  UpdateBlogResolver: 'myCustomStack2',
1449
1405
  },
1450
1406
  });
1451
-
1452
- const result = transformer.transform(inputSchema);
1453
1407
  expect(Object.keys(result.stacks.myCustomStack1.Resources!).includes('CreateBlogResolver')).toBe(true);
1454
1408
  expect(Object.keys(result.stacks.myCustomStack2.Resources!).includes('UpdateBlogResolver')).toBe(true);
1455
1409
 
@@ -1472,10 +1426,10 @@ describe('ModelTransformer: ', () => {
1472
1426
  type Query {
1473
1427
  todo: Todo @aws_lambda
1474
1428
  }`;
1475
- const transformer = new GraphQLTransform({
1429
+ const out = testTransform({
1430
+ schema: validSchema,
1476
1431
  transformers: [new ModelTransformer()],
1477
1432
  });
1478
- const out = transformer.transform(validSchema);
1479
1433
  expect(out).toBeDefined();
1480
1434
 
1481
1435
  const schema = parse(out.schema);
@@ -1491,10 +1445,10 @@ describe('ModelTransformer: ', () => {
1491
1445
  id: ID!
1492
1446
  }
1493
1447
  `;
1494
- const transformer = new GraphQLTransform({
1448
+ const out = testTransform({
1449
+ schema: validSchema,
1495
1450
  transformers: [new ModelTransformer()],
1496
1451
  });
1497
- const out = transformer.transform(validSchema);
1498
1452
  expect(out).toBeDefined();
1499
1453
  const definition = out.schema;
1500
1454
  expect(definition).toBeDefined();
@@ -1515,10 +1469,10 @@ describe('ModelTransformer: ', () => {
1515
1469
  }
1516
1470
  `;
1517
1471
 
1518
- const transformer = new GraphQLTransform({
1472
+ const out = testTransform({
1473
+ schema: validSchema,
1519
1474
  transformers: [new ModelTransformer()],
1520
1475
  });
1521
- const out = transformer.transform(validSchema);
1522
1476
  expect(out).toBeDefined();
1523
1477
  const definition = out.schema;
1524
1478
  expect(definition).toBeDefined();
@@ -1542,54 +1496,21 @@ describe('ModelTransformer: ', () => {
1542
1496
  }
1543
1497
  `;
1544
1498
 
1545
- const transformer = new GraphQLTransform({
1499
+ const out = testTransform({
1500
+ schema: validSchema,
1546
1501
  transformers: [new ModelTransformer()],
1547
- });
1548
- const modelToDatasourceMap = new Map<string, DatasourceType>();
1549
- modelToDatasourceMap.set('Post', {
1550
- dbType: 'MySQL',
1551
- provisionDB: false,
1552
- });
1553
- const out = transformer.transform(validSchema, {
1554
- modelToDatasourceMap,
1555
- });
1556
- expect(out).toBeDefined();
1557
-
1558
- validateModelSchema(parse(out.schema));
1559
- parse(out.schema);
1560
- });
1561
-
1562
- it('should successfully transform rds schema with array and object fields', async () => {
1563
- const validSchema = `
1564
- type Note @model {
1565
- id: ID!
1566
- content: String!
1567
- tags: [String!]
1568
- attachments: Attachment
1569
- }
1570
-
1571
- type Attachment {
1572
- report: String!
1573
- image: String!
1574
- }
1575
- `;
1576
-
1577
- const transformer = new GraphQLTransform({
1578
- transformers: [new ModelTransformer()],
1579
- });
1580
- const modelToDatasourceMap = new Map<string, DatasourceType>();
1581
- modelToDatasourceMap.set('Note', {
1582
- dbType: 'MySQL',
1583
- provisionDB: false,
1584
- });
1585
- const out = transformer.transform(validSchema, {
1586
- modelToDatasourceMap,
1502
+ modelToDatasourceMap: new Map(
1503
+ Object.entries({
1504
+ Post: {
1505
+ dbType: 'MySQL',
1506
+ provisionDB: false,
1507
+ },
1508
+ }),
1509
+ ),
1587
1510
  });
1588
1511
  expect(out).toBeDefined();
1589
1512
 
1590
1513
  validateModelSchema(parse(out.schema));
1591
1514
  parse(out.schema);
1592
- expect(out.schema).toMatchSnapshot();
1593
- expect(out.resolvers).toMatchSnapshot();
1594
1515
  });
1595
1516
  });