Skip to content

Commit 289c505

Browse files
Merge branch 'VE-7062-disable-entry-edit-workflow-stage' into dev-VE-7062-disable-entry-edit-workflow-stage
2 parents b26c4ac + 5e216ea commit 289c505

4 files changed

Lines changed: 99 additions & 107 deletions

File tree

src/visualBuilder/__test__/click/fields/multi-line.test.tsx

Lines changed: 47 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import { VisualBuilderPostMessageEvents } from "../../../utils/types/postMessage
1111
import { VisualBuilder } from "../../../index";
1212
import { triggerAndWaitForClickAction } from "../../../../__test__/utils";
1313

14+
const EXAMPLE_STAGE_NAME = "Example Stage";
15+
1416
vi.mock("../../../components/FieldToolbar", () => {
1517
return {
1618
default: () => {
@@ -94,35 +96,28 @@ describe("When an element is clicked in visual builder mode", () => {
9496
beforeAll(async () => {
9597
(visualBuilderPostMessage?.send as Mock).mockImplementation(
9698
(eventName: string, args) => {
97-
if (
98-
eventName ===
99-
VisualBuilderPostMessageEvents.GET_FIELD_DATA
100-
) {
101-
return Promise.resolve({
102-
fieldData: "Hello world",
103-
});
104-
} else if (
105-
eventName ===
106-
VisualBuilderPostMessageEvents.GET_FIELD_DISPLAY_NAMES
107-
) {
108-
return Promise.resolve({
109-
"all_fields.bltapikey.en-us.single_line":
110-
"Single Line",
111-
});
112-
} else if (
113-
eventName ===
114-
VisualBuilderPostMessageEvents.GET_WORKFLOW_STAGE_DETAILS
115-
) {
116-
return Promise.resolve({
117-
stage: { name: "Example Stage" },
118-
permissions: {
119-
entry: {
120-
update: true,
99+
switch (eventName) {
100+
case VisualBuilderPostMessageEvents.GET_FIELD_DATA:
101+
return Promise.resolve({
102+
fieldData: "Hello world",
103+
});
104+
case VisualBuilderPostMessageEvents.GET_FIELD_DISPLAY_NAMES:
105+
return Promise.resolve({
106+
"all_fields.bltapikey.en-us.single_line":
107+
"Single Line",
108+
});
109+
case VisualBuilderPostMessageEvents.GET_WORKFLOW_STAGE_DETAILS:
110+
return Promise.resolve({
111+
stage: { name: EXAMPLE_STAGE_NAME },
112+
permissions: {
113+
entry: {
114+
update: true,
115+
},
121116
},
122-
},
123-
});
117+
});
118+
default:
119+
return Promise.resolve({});
124120
}
125-
return Promise.resolve({});
126121
}
127122
);
128123

@@ -197,32 +192,33 @@ describe("When an element is clicked in visual builder mode", () => {
197192
beforeAll(async () => {
198193
(visualBuilderPostMessage?.send as Mock).mockImplementation(
199194
(eventName: string, args) => {
200-
if (
201-
eventName ===
202-
VisualBuilderPostMessageEvents.GET_FIELD_DATA
203-
) {
204-
const values: Record<string, any> = {
205-
multi_line_textbox_multiple_: ["Hello", "world"],
206-
"multi_line_textbox_multiple_.0": "Hello",
207-
"multi_line_textbox_multiple_.1": "world",
208-
};
209-
return Promise.resolve({
210-
fieldData: values[args.entryPath],
211-
});
212-
} else if (
213-
eventName ===
214-
VisualBuilderPostMessageEvents.GET_WORKFLOW_STAGE_DETAILS
215-
) {
216-
return Promise.resolve({
217-
stage: { name: "Example Stage" },
218-
permissions: {
219-
entry: {
220-
update: true,
195+
switch (eventName) {
196+
case VisualBuilderPostMessageEvents.GET_FIELD_DATA: {
197+
const values: Record<string, any> = {
198+
multi_line_textbox_multiple_: [
199+
"Hello",
200+
"world",
201+
],
202+
"multi_line_textbox_multiple_.0": "Hello",
203+
"multi_line_textbox_multiple_.1": "world",
204+
};
205+
return Promise.resolve({
206+
fieldData: values[args.entryPath],
207+
});
208+
}
209+
case VisualBuilderPostMessageEvents.GET_WORKFLOW_STAGE_DETAILS: {
210+
return Promise.resolve({
211+
stage: { name: EXAMPLE_STAGE_NAME },
212+
permissions: {
213+
entry: {
214+
update: true,
215+
},
221216
},
222-
},
223-
});
217+
});
218+
}
219+
default:
220+
return Promise.resolve({});
224221
}
225-
return Promise.resolve({});
226222
}
227223
);
228224

src/visualBuilder/__test__/click/fields/number.test.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import { VisualBuilderPostMessageEvents } from "../../../utils/types/postMessage
1111
import { VisualBuilder } from "../../../index";
1212
import { triggerAndWaitForClickAction } from "../../../../__test__/utils";
1313

14+
const EXAMPLE_STAGE_NAME = "Example Stage";
15+
1416
const VALUES = {
1517
number: "10.5",
1618
};
@@ -117,7 +119,7 @@ describe("When an element is clicked in visual builder mode", () => {
117119
VisualBuilderPostMessageEvents.GET_WORKFLOW_STAGE_DETAILS
118120
) {
119121
return Promise.resolve({
120-
stage: { name: "Example Stage" },
122+
stage: { name: EXAMPLE_STAGE_NAME },
121123
permissions: {
122124
entry: {
123125
update: true,
@@ -213,7 +215,7 @@ describe("When an element is clicked in visual builder mode", () => {
213215
VisualBuilderPostMessageEvents.GET_WORKFLOW_STAGE_DETAILS
214216
) {
215217
return Promise.resolve({
216-
stage: { name: "Example Stage" },
218+
stage: { name: EXAMPLE_STAGE_NAME },
217219
permissions: {
218220
entry: {
219221
update: true,

src/visualBuilder/__test__/click/fields/single-line.test.tsx

Lines changed: 46 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import { Mock, vi } from "vitest";
1010
import { VisualBuilderPostMessageEvents } from "../../../utils/types/postMessage.types";
1111
import { VisualBuilder } from "../../../index";
1212
import { triggerAndWaitForClickAction } from "../../../../__test__/utils";
13-
import { act } from "preact/test-utils";
13+
14+
const EXAMPLE_STAGE_NAME = "Example Stage";
1415

1516
const VALUES = {
1617
singleLine: "Single line",
@@ -99,35 +100,28 @@ describe("When an element is clicked in visual builder mode", () => {
99100
beforeAll(async () => {
100101
(visualBuilderPostMessage?.send as Mock).mockImplementation(
101102
(eventName: string) => {
102-
if (
103-
eventName ===
104-
VisualBuilderPostMessageEvents.GET_FIELD_DATA
105-
) {
106-
return Promise.resolve({
107-
fieldData: VALUES.singleLine,
108-
});
109-
} else if (
110-
eventName ===
111-
VisualBuilderPostMessageEvents.GET_FIELD_DISPLAY_NAMES
112-
) {
113-
return Promise.resolve({
114-
"all_fields.bltapikey.en-us.single_line":
115-
"Single Line",
116-
});
117-
} else if (
118-
eventName ===
119-
VisualBuilderPostMessageEvents.GET_WORKFLOW_STAGE_DETAILS
120-
) {
121-
return Promise.resolve({
122-
stage: { name: "Example Stage" },
123-
permissions: {
124-
entry: {
125-
update: true,
103+
switch (eventName) {
104+
case VisualBuilderPostMessageEvents.GET_FIELD_DATA:
105+
return Promise.resolve({
106+
fieldData: VALUES.singleLine,
107+
});
108+
case VisualBuilderPostMessageEvents.GET_FIELD_DISPLAY_NAMES:
109+
return Promise.resolve({
110+
"all_fields.bltapikey.en-us.single_line":
111+
"Single Line",
112+
});
113+
case VisualBuilderPostMessageEvents.GET_WORKFLOW_STAGE_DETAILS:
114+
return Promise.resolve({
115+
stage: { name: EXAMPLE_STAGE_NAME },
116+
permissions: {
117+
entry: {
118+
update: true,
119+
},
126120
},
127-
},
128-
});
121+
});
122+
default:
123+
return Promise.resolve({});
129124
}
130-
return Promise.resolve({});
131125
}
132126
);
133127

@@ -217,32 +211,32 @@ describe("When an element is clicked in visual builder mode", () => {
217211
beforeAll(async () => {
218212
(visualBuilderPostMessage?.send as Mock).mockImplementation(
219213
(eventName: string, args) => {
220-
if (
221-
eventName ===
222-
VisualBuilderPostMessageEvents.GET_FIELD_DATA
223-
) {
224-
const values: Record<string, any> = {
225-
single_line_textbox_multiple_: ["Hello", "world"],
226-
"single_line_textbox_multiple_.0": "Hello",
227-
"single_line_textbox_multiple_.1": "world",
228-
};
229-
return Promise.resolve({
230-
fieldData: values[args.entryPath],
231-
});
232-
} else if (
233-
eventName ===
234-
VisualBuilderPostMessageEvents.GET_WORKFLOW_STAGE_DETAILS
235-
) {
236-
return Promise.resolve({
237-
stage: { name: "Example Stage" },
238-
permissions: {
239-
entry: {
240-
update: true,
214+
switch (eventName) {
215+
case VisualBuilderPostMessageEvents.GET_FIELD_DATA: {
216+
const values: Record<string, any> = {
217+
single_line_textbox_multiple_: [
218+
"Hello",
219+
"world",
220+
],
221+
"single_line_textbox_multiple_.0": "Hello",
222+
"single_line_textbox_multiple_.1": "world",
223+
};
224+
return Promise.resolve({
225+
fieldData: values[args.entryPath],
226+
});
227+
}
228+
case VisualBuilderPostMessageEvents.GET_WORKFLOW_STAGE_DETAILS:
229+
return Promise.resolve({
230+
stage: { name: EXAMPLE_STAGE_NAME },
231+
permissions: {
232+
entry: {
233+
update: true,
234+
},
241235
},
242-
},
243-
});
236+
});
237+
default:
238+
return Promise.resolve({});
244239
}
245-
return Promise.resolve({});
246240
}
247241
);
248242

src/visualBuilder/utils/isFieldDisabled.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,15 @@ const getDisableReason = (
5151
flags.updateRestrictDueToWorkflowStagePermission
5252
) {
5353
return DisableReason.EntryUpdateRestrictedRoleAndWorkflowStage({
54-
stageName: params?.stageName ?? "Unknown",
54+
stageName: params?.stageName ? params.stageName : "Unknown",
5555
});
5656
}
5757
if (flags.updateRestrictDueToEntryUpdateRestriction) {
5858
return DisableReason.EntryUpdateRestricted;
5959
}
6060
if (flags.updateRestrictDueToWorkflowStagePermission) {
6161
return DisableReason.WorkflowStagePermission({
62-
stageName: params?.stageName ?? "Unknown",
62+
stageName: params?.stageName ? params.stageName : "Unknown",
6363
});
6464
}
6565
return DisableReason.None;

0 commit comments

Comments
 (0)