@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.
- package/dist/client/index.js +4 -4
- package/dist/client/instruction/SchemaConfig.d.ts +14 -3
- package/dist/client/instruction/createManualFormBlockUISchema.d.ts +57 -0
- package/dist/client/instruction/forms/custom.d.ts +7 -2
- package/dist/externalVersion.js +9 -9
- package/dist/locale/index.d.ts +2 -1
- package/dist/locale/index.js +3 -0
- package/dist/locale/zh-CN.json +2 -1
- package/dist/server/forms/create.d.ts +2 -1
- package/dist/server/forms/create.js +4 -4
- package/dist/server/forms/update.d.ts +2 -1
- package/dist/server/forms/update.js +4 -4
- package/dist/server/migrations/20240325213145-fix-schema.d.ts +4 -0
- package/dist/server/migrations/20240325213145-fix-schema.js +88 -0
- package/package.json +2 -2
- package/src/client/WorkflowTodo.tsx +4 -4
- package/src/client/__e2e__/createRecordForm.test.ts +123 -67
- package/src/client/__e2e__/customFormBlocks.test.ts +135 -70
- package/src/client/__e2e__/datablocks.test.ts +43 -30
- package/src/client/__e2e__/updateRecordForm.test.ts +241 -57
- package/src/client/__e2e__/workflowTodo.test.ts +16 -7
- package/src/client/index.ts +12 -4
- package/src/client/instruction/FormBlockInitializer.tsx +3 -3
- package/src/client/instruction/SchemaConfig.tsx +163 -41
- package/src/client/instruction/createManualFormBlockUISchema.ts +5 -0
- package/src/client/instruction/forms/create.tsx +1 -1
- package/src/client/instruction/forms/custom.tsx +52 -21
- package/src/client/instruction/forms/update.tsx +16 -8
- package/src/client/instruction/index.tsx +1 -1
- package/src/locale/index.ts +3 -1
- package/src/locale/zh-CN.json +2 -1
- package/src/server/__tests__/data-source.test.ts +223 -0
- package/src/server/__tests__/{instruction.test.ts → form.test.ts} +1 -510
- package/src/server/__tests__/mode.test.ts +561 -0
- package/src/server/forms/create.ts +10 -3
- package/src/server/forms/update.ts +10 -3
- package/src/server/migrations/20240325213145-fix-schema.ts +81 -0
- package/dist/client/instruction/DetailsBlockProvider.d.ts +0 -2
- 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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
CreateRecordNode,
|
|
7
|
+
ManualNode,
|
|
8
|
+
QueryRecordNode,
|
|
7
9
|
apiCreateWorkflow,
|
|
10
|
+
apiCreateWorkflowNode,
|
|
8
11
|
apiDeleteWorkflow,
|
|
12
|
+
apiFilterList,
|
|
13
|
+
apiGetList,
|
|
9
14
|
apiGetWorkflow,
|
|
10
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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(
|
|
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
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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);
|