@aws-amplify/amplify-util-uibuilder 1.9.0-replace-lambda-callouts-0.0 → 1.9.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 (40) hide show
  1. package/CHANGELOG.md +40 -9
  2. package/lib/clients/amplify-studio-client.d.ts +5 -1
  3. package/lib/clients/amplify-studio-client.d.ts.map +1 -1
  4. package/lib/clients/amplify-studio-client.js +54 -8
  5. package/lib/clients/amplify-studio-client.js.map +1 -1
  6. package/lib/commands/generateComponents.d.ts.map +1 -1
  7. package/lib/commands/generateComponents.js +33 -34
  8. package/lib/commands/generateComponents.js.map +1 -1
  9. package/lib/commands/utils/codegenResources.d.ts +1 -15
  10. package/lib/commands/utils/codegenResources.d.ts.map +1 -1
  11. package/lib/commands/utils/codegenResources.js +1 -122
  12. package/lib/commands/utils/codegenResources.js.map +1 -1
  13. package/lib/commands/utils/detachedFormCleanup.d.ts +3 -4
  14. package/lib/commands/utils/detachedFormCleanup.d.ts.map +1 -1
  15. package/lib/commands/utils/detachedFormCleanup.js.map +1 -1
  16. package/lib/commands/utils/storageManager.d.ts +3 -4
  17. package/lib/commands/utils/storageManager.d.ts.map +1 -1
  18. package/lib/commands/utils/storageManager.js +1 -5
  19. package/lib/commands/utils/storageManager.js.map +1 -1
  20. package/lib/commands/utils/syncAmplifyUiBuilderComponents.d.ts +8 -16
  21. package/lib/commands/utils/syncAmplifyUiBuilderComponents.d.ts.map +1 -1
  22. package/lib/commands/utils/syncAmplifyUiBuilderComponents.js +186 -74
  23. package/lib/commands/utils/syncAmplifyUiBuilderComponents.js.map +1 -1
  24. package/package.json +28 -19
  25. package/src/__tests__/__snapshots__/syncAmplifyUiComponents.test.ts.snap +46 -0
  26. package/src/__tests__/cloneComponentsFromEnv.test.ts +8 -0
  27. package/src/__tests__/detachedFormCleanup.test.ts +7 -5
  28. package/src/__tests__/generateComponents.test.ts +187 -15
  29. package/src/__tests__/getAmplifyDataSchema.test.ts +1 -2
  30. package/src/__tests__/prePushHandler.test.ts +7 -0
  31. package/src/__tests__/storageManager.test.ts +7 -4
  32. package/src/__tests__/syncAmplifyUiComponents.test.ts +106 -95
  33. package/src/clients/amplify-studio-client.ts +56 -9
  34. package/src/commands/generateComponents.ts +45 -56
  35. package/src/commands/utils/codegenResources.ts +1 -225
  36. package/src/commands/utils/detachedFormCleanup.ts +3 -4
  37. package/src/commands/utils/storageManager.ts +3 -7
  38. package/src/commands/utils/syncAmplifyUiBuilderComponents.ts +210 -123
  39. package/tsconfig.tsbuildinfo +1 -1
  40. package/src/__tests__/createUiBuilderComponent.test.ts +0 -90
@@ -1,90 +0,0 @@
1
- /* eslint-disable spellcheck/spell-checker */
2
- import * as codegen from '@aws-amplify/codegen-ui'; // eslint-disable-line import/no-extraneous-dependencies
3
- import {
4
- generateAmplifyUiBuilderIndexFile,
5
- createUiBuilderTheme,
6
- createUiBuilderComponent,
7
- createUiBuilderForm,
8
- generateAmplifyUiBuilderUtilFile,
9
- } from '../commands/utils/codegenResources';
10
-
11
- jest.mock('@aws-amplify/codegen-ui');
12
- const codegenMock = codegen as any;
13
-
14
- describe('can create a ui builder component', () => {
15
- let context: any;
16
- let schema: any;
17
- beforeEach(() => {
18
- context = {
19
- exeInfo: {
20
- projectConfig: {
21
- providers: ['awscloudformation'],
22
- frontend: 'javascript',
23
- javascript: {
24
- framework: 'react',
25
- config: {
26
- SourceDir: 'src',
27
- },
28
- },
29
- },
30
- },
31
- parameters: {
32
- argv: [],
33
- },
34
- input: {},
35
- };
36
- schema = {
37
- appId: 'd37nrm8rzt3oek',
38
- bindingProperties: {},
39
- componentType: 'Box',
40
- environmentName: 'staging',
41
- id: 's-s4mU579Ycf6JGHwhqT',
42
- name: 'aawwdd',
43
- overrides: {},
44
- properties: {},
45
- variants: [],
46
- };
47
- const renderSchemaToTemplateMock = jest.fn();
48
- codegenMock.StudioTemplateRendererManager = jest.fn().mockReturnValue({
49
- renderSchemaToTemplate: renderSchemaToTemplateMock,
50
- });
51
- });
52
- it('calls the renderManager', () => {
53
- createUiBuilderComponent(context, schema);
54
- expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalled();
55
- });
56
- it('calls the renderManager for themes', () => {
57
- createUiBuilderTheme(context, schema);
58
- expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalled();
59
- });
60
- it('calls the renderManager for default theme', () => {
61
- createUiBuilderTheme(context, schema, { renderDefaultTheme: true });
62
- expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalled();
63
- });
64
- it('calls the renderManager for forms', () => {
65
- createUiBuilderForm(context, schema);
66
- expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalled();
67
- });
68
- it('calls the renderManager for index file', () => {
69
- generateAmplifyUiBuilderIndexFile(context, [schema]);
70
- expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalled();
71
- });
72
- it('does not call renderSchemaToTemplate for index file if no schema', () => {
73
- generateAmplifyUiBuilderIndexFile(context, []);
74
- expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).not.toBeCalled();
75
- });
76
- it('calls the renderManager for utils file w/ validation, formatter, and fetchByPath helpers if there is a form', () => {
77
- generateAmplifyUiBuilderUtilFile(context, { hasForms: true, hasViews: false });
78
- expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalledWith(
79
- expect.arrayContaining(['validation', 'formatter', 'fetchByPath']),
80
- );
81
- });
82
- it('calls the renderManager for utils file w/ formatter helper if there is a view', () => {
83
- generateAmplifyUiBuilderUtilFile(context, { hasForms: false, hasViews: true });
84
- expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalledWith(['formatter']);
85
- });
86
- it('should not call the renderManager for utils file if there is neither form nor views', () => {
87
- generateAmplifyUiBuilderUtilFile(context, { hasForms: false, hasViews: false });
88
- expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalledTimes(0);
89
- });
90
- });