@nocobase/plugin-workflow-manual 0.20.0-alpha.9 → 0.21.0-alpha.10

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 (39) hide show
  1. package/dist/client/index.js +4 -4
  2. package/dist/client/instruction/SchemaConfig.d.ts +14 -3
  3. package/dist/client/instruction/createManualFormBlockUISchema.d.ts +57 -0
  4. package/dist/client/instruction/forms/custom.d.ts +7 -2
  5. package/dist/externalVersion.js +9 -9
  6. package/dist/locale/index.d.ts +2 -1
  7. package/dist/locale/index.js +3 -0
  8. package/dist/locale/zh-CN.json +2 -1
  9. package/dist/server/forms/create.d.ts +2 -1
  10. package/dist/server/forms/create.js +4 -4
  11. package/dist/server/forms/update.d.ts +2 -1
  12. package/dist/server/forms/update.js +4 -4
  13. package/dist/server/migrations/20240325213145-fix-schema.d.ts +4 -0
  14. package/dist/server/migrations/20240325213145-fix-schema.js +88 -0
  15. package/package.json +2 -2
  16. package/src/client/WorkflowTodo.tsx +4 -4
  17. package/src/client/__e2e__/createRecordForm.test.ts +123 -67
  18. package/src/client/__e2e__/customFormBlocks.test.ts +135 -70
  19. package/src/client/__e2e__/datablocks.test.ts +43 -30
  20. package/src/client/__e2e__/updateRecordForm.test.ts +241 -57
  21. package/src/client/__e2e__/workflowTodo.test.ts +16 -7
  22. package/src/client/index.ts +12 -4
  23. package/src/client/instruction/FormBlockInitializer.tsx +3 -3
  24. package/src/client/instruction/SchemaConfig.tsx +163 -41
  25. package/src/client/instruction/createManualFormBlockUISchema.ts +5 -0
  26. package/src/client/instruction/forms/create.tsx +1 -1
  27. package/src/client/instruction/forms/custom.tsx +52 -21
  28. package/src/client/instruction/forms/update.tsx +16 -8
  29. package/src/client/instruction/index.tsx +1 -1
  30. package/src/locale/index.ts +3 -1
  31. package/src/locale/zh-CN.json +2 -1
  32. package/src/server/__tests__/data-source.test.ts +223 -0
  33. package/src/server/__tests__/{instruction.test.ts → form.test.ts} +1 -510
  34. package/src/server/__tests__/mode.test.ts +561 -0
  35. package/src/server/forms/create.ts +10 -3
  36. package/src/server/forms/update.ts +10 -3
  37. package/src/server/migrations/20240325213145-fix-schema.ts +81 -0
  38. package/dist/client/instruction/DetailsBlockProvider.d.ts +0 -2
  39. package/src/client/instruction/DetailsBlockProvider.tsx +0 -87
@@ -1,27 +1,21 @@
1
1
  import { faker } from '@faker-js/faker';
2
2
  import {
3
+ AggregateNode,
4
+ ClculationNode,
3
5
  CollectionTriggerNode,
4
- CreateWorkFlow,
5
- EditWorkFlow,
6
- WorkflowListRecords,
6
+ CreateRecordNode,
7
+ ManualNode,
8
+ QueryRecordNode,
7
9
  apiCreateWorkflow,
10
+ apiCreateWorkflowNode,
8
11
  apiDeleteWorkflow,
12
+ apiFilterList,
13
+ apiGetList,
9
14
  apiGetWorkflow,
10
- apiUpdateRecord,
11
- apiGetWorkflowNodeExecutions,
15
+ apiGetWorkflowNode,
12
16
  apiUpdateWorkflowTrigger,
13
17
  appendJsonCollectionName,
14
18
  generalWithNoRelationalFields,
15
- QueryRecordNode,
16
- ManualNode,
17
- apiGetRecord,
18
- apiCreateWorkflowNode,
19
- apiGetWorkflowNode,
20
- ClculationNode,
21
- CreateRecordNode,
22
- AggregateNode,
23
- apiGetList,
24
- apiFilterList,
25
19
  } from '@nocobase/plugin-workflow-test/e2e';
26
20
  import { expect, test } from '@nocobase/test/e2e';
27
21
  import { dayjs } from '@nocobase/utils';
@@ -111,7 +105,7 @@ test.describe('field data', () => {
111
105
  const newPage = mockPage();
112
106
  await newPage.goto();
113
107
  await page.waitForLoadState('networkidle');
114
- await page.getByLabel('schema-initializer-Grid-BlockInitializers').hover();
108
+ await page.getByLabel('schema-initializer-Grid-page:addBlock').hover();
115
109
  await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click();
116
110
  await page.mouse.move(300, 0, { steps: 100 });
117
111
  await page.waitForTimeout(300);
@@ -223,7 +217,7 @@ test.describe('field data', () => {
223
217
  const newPage = mockPage();
224
218
  await newPage.goto();
225
219
  await page.waitForLoadState('networkidle');
226
- await page.getByLabel('schema-initializer-Grid-BlockInitializers').hover();
220
+ await page.getByLabel('schema-initializer-Grid-page:addBlock').hover();
227
221
  await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click();
228
222
  await page.mouse.move(300, 0, { steps: 100 });
229
223
  await page.waitForTimeout(300);
@@ -346,7 +340,7 @@ test.describe('field data', () => {
346
340
  const newPage = mockPage();
347
341
  await newPage.goto();
348
342
  await page.waitForLoadState('networkidle');
349
- await page.getByLabel('schema-initializer-Grid-BlockInitializers').hover();
343
+ await page.getByLabel('schema-initializer-Grid-page:addBlock').hover();
350
344
  await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click();
351
345
  await page.mouse.move(300, 0, { steps: 100 });
352
346
  await page.waitForTimeout(300);
@@ -474,7 +468,7 @@ test.describe('field data', () => {
474
468
  const newPage = mockPage();
475
469
  await newPage.goto();
476
470
  await page.waitForLoadState('networkidle');
477
- await page.getByLabel('schema-initializer-Grid-BlockInitializers').hover();
471
+ await page.getByLabel('schema-initializer-Grid-page:addBlock').hover();
478
472
  await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click();
479
473
  await page.mouse.move(300, 0, { steps: 100 });
480
474
  await page.waitForTimeout(300);
@@ -634,7 +628,7 @@ test.describe('field data', () => {
634
628
  const newPage = mockPage();
635
629
  await newPage.goto();
636
630
  await page.waitForLoadState('networkidle');
637
- await page.getByLabel('schema-initializer-Grid-BlockInitializers').hover();
631
+ await page.getByLabel('schema-initializer-Grid-page:addBlock').hover();
638
632
  await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click();
639
633
  await page.mouse.move(300, 0, { steps: 100 });
640
634
  await page.waitForTimeout(300);
@@ -733,17 +727,23 @@ test.describe('field data', () => {
733
727
  await preManualNodePom.customFormMenu.click();
734
728
  await page.mouse.move(300, 0, { steps: 100 });
735
729
  // 获取自定义表单的随机值
736
- const configureFieldsButton = page.locator('button[aria-label^="schema-initializer-Grid-AddCustomFormField-"]');
730
+ const configureFieldsButton = page.locator(
731
+ 'button[aria-label^="schema-initializer-Grid-workflowManual:customForm:configureFields-"]',
732
+ );
737
733
  const ariaLabel = await configureFieldsButton.getAttribute('aria-label');
738
734
  const randomValue = ariaLabel.split('-').pop();
739
735
 
740
- await page.locator(`button[aria-label^="schema-initializer-Grid-AddCustomFormField-${randomValue}"]`).hover();
736
+ await page
737
+ .locator(`button[aria-label^="schema-initializer-Grid-workflowManual:customForm:configureFields-${randomValue}"]`)
738
+ .hover();
741
739
  await page.getByLabel(`designer-schema-settings-CardItem-SimpleDesigner-${randomValue}`).hover();
742
740
  await page.getByRole('menuitem', { name: 'Edit block title' }).click();
743
741
  const blockTitle = 'Form' + dayjs().format('YYYYMMDDHHmmss.SSS').toString();
744
742
  await page.getByLabel('Edit block title').getByRole('textbox').fill(blockTitle);
745
743
  await page.getByRole('button', { name: 'OK', exact: true }).click();
746
- await page.locator(`button[aria-label^="schema-initializer-Grid-AddCustomFormField-${randomValue}"]`).hover();
744
+ await page
745
+ .locator(`button[aria-label^="schema-initializer-Grid-workflowManual:customForm:configureFields-${randomValue}"]`)
746
+ .hover();
747
747
  await page.getByRole('menuitem', { name: 'Single line text' }).click();
748
748
  await page
749
749
  .getByLabel(`block-item-Input-${randomValue}-Field display name`)
@@ -793,7 +793,7 @@ test.describe('field data', () => {
793
793
  const newPage = mockPage();
794
794
  await newPage.goto();
795
795
  await page.waitForLoadState('networkidle');
796
- await page.getByLabel('schema-initializer-Grid-BlockInitializers').hover();
796
+ await page.getByLabel('schema-initializer-Grid-page:addBlock').hover();
797
797
  await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click();
798
798
  await page.mouse.move(300, 0, { steps: 100 });
799
799
  await page.waitForTimeout(300);
@@ -902,7 +902,7 @@ test.describe('field data', () => {
902
902
  await page.getByRole('menuitem', { name: preManualNodeCollectionDisplayName }).click();
903
903
  await page.mouse.move(300, 0, { steps: 100 });
904
904
  await page
905
- .locator(`button[aria-label^="schema-initializer-Grid-FormItemInitializers-${preManualNodeCollectionName}"]`)
905
+ .locator(`button[aria-label^="schema-initializer-Grid-form:configureFields-${preManualNodeCollectionName}"]`)
906
906
  .hover();
907
907
  await page
908
908
  .getByLabel(`designer-schema-settings-CardItem-CreateFormDesigner-${preManualNodeCollectionName}`)
@@ -912,7 +912,7 @@ test.describe('field data', () => {
912
912
  await page.getByLabel('Edit block title').getByRole('textbox').fill(blockTitle);
913
913
  await page.getByRole('button', { name: 'OK', exact: true }).click();
914
914
  await page
915
- .locator(`button[aria-label^="schema-initializer-Grid-FormItemInitializers-${preManualNodeCollectionName}"]`)
915
+ .locator(`button[aria-label^="schema-initializer-Grid-form:configureFields-${preManualNodeCollectionName}"]`)
916
916
  .hover();
917
917
  await page.getByRole('menuitem', { name: triggerNodeFieldDisplayName }).getByRole('switch').click();
918
918
  await page.mouse.move(300, 0, { steps: 100 });
@@ -957,7 +957,7 @@ test.describe('field data', () => {
957
957
  const newPage = mockPage();
958
958
  await newPage.goto();
959
959
  await page.waitForLoadState('networkidle');
960
- await page.getByLabel('schema-initializer-Grid-BlockInitializers').hover();
960
+ await page.getByLabel('schema-initializer-Grid-page:addBlock').hover();
961
961
  await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click();
962
962
  await page.mouse.move(300, 0, { steps: 100 });
963
963
  await page.waitForTimeout(300);
@@ -1102,7 +1102,20 @@ test.describe('field data', () => {
1102
1102
  await page.getByRole('menuitem', { name: preManualNodeCollectionDisplayName }).click();
1103
1103
  await page.mouse.move(300, 0, { steps: 100 });
1104
1104
  await page
1105
- .locator(`button[aria-label^="schema-initializer-Grid-FormItemInitializers-${preManualNodeCollectionName}"]`)
1105
+ .locator(`button[aria-label^="schema-initializer-Grid-form:configureFields-${preManualNodeCollectionName}"]`)
1106
+ .hover();
1107
+ await page
1108
+ .getByLabel(`designer-schema-settings-CardItem-UpdateFormDesigner-${preManualNodeCollectionName}`)
1109
+ .click();
1110
+ await page.getByRole('menuitem', { name: 'Filter settings' }).click();
1111
+ await page.getByText('Add condition', { exact: true }).click();
1112
+ await page.getByTestId('select-filter-field').click();
1113
+ await page.getByRole('menuitemcheckbox', { name: 'ID', exact: true }).click();
1114
+ await page.getByTestId('select-filter-operator').click();
1115
+ await page.getByRole('option', { name: 'exists', exact: true }).click();
1116
+ await page.getByRole('button', { name: 'Submit', exact: true }).click();
1117
+ await page
1118
+ .locator(`button[aria-label^="schema-initializer-Grid-form:configureFields-${preManualNodeCollectionName}"]`)
1106
1119
  .hover();
1107
1120
  await page
1108
1121
  .getByLabel(`designer-schema-settings-CardItem-UpdateFormDesigner-${preManualNodeCollectionName}`)
@@ -1112,7 +1125,7 @@ test.describe('field data', () => {
1112
1125
  await page.getByLabel('Edit block title').getByRole('textbox').fill(blockTitle);
1113
1126
  await page.getByRole('button', { name: 'OK', exact: true }).click();
1114
1127
  await page
1115
- .locator(`button[aria-label^="schema-initializer-Grid-FormItemInitializers-${preManualNodeCollectionName}"]`)
1128
+ .locator(`button[aria-label^="schema-initializer-Grid-form:configureFields-${preManualNodeCollectionName}"]`)
1116
1129
  .hover();
1117
1130
  await page.getByRole('menuitem', { name: triggerNodeFieldDisplayName }).getByRole('switch').click();
1118
1131
  await page.mouse.move(300, 0, { steps: 100 });
@@ -1157,7 +1170,7 @@ test.describe('field data', () => {
1157
1170
  const newPage = mockPage();
1158
1171
  await newPage.goto();
1159
1172
  await page.waitForLoadState('networkidle');
1160
- await page.getByLabel('schema-initializer-Grid-BlockInitializers').hover();
1173
+ await page.getByLabel('schema-initializer-Grid-page:addBlock').hover();
1161
1174
  await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click();
1162
1175
  await page.mouse.move(300, 0, { steps: 100 });
1163
1176
  await page.waitForTimeout(300);