diff --git a/ui/src/pages/IssueDetail.test.tsx b/ui/src/pages/IssueDetail.test.tsx
index bd47590b302..b245e7d1272 100644
--- a/ui/src/pages/IssueDetail.test.tsx
+++ b/ui/src/pages/IssueDetail.test.tsx
@@ -1150,11 +1150,24 @@ describe("IssueDetail", () => {
.find((element) =>
typeof element.className === "string"
&& element.className.includes("overflow-y-auto")
- && element.textContent?.includes("Reason (required)"),
+ && element.textContent?.includes("Reason (optional)"),
);
expect(bodyScrollRegion?.className).toContain("min-h-0");
expect(bodyScrollRegion?.className).toContain("overscroll-contain");
+ const cancelApplyButton = Array.from(dialogContent!.querySelectorAll("button"))
+ .find((button) => button.textContent?.trim() === "Cancel 24 issues") as HTMLButtonElement | undefined;
+ expect(cancelApplyButton).toBeTruthy();
+ expect(cancelApplyButton!.disabled).toBe(true);
+
+ const confirmationCheckbox = dialogContent!.querySelector('input[type="checkbox"]') as HTMLInputElement | null;
+ expect(confirmationCheckbox).toBeTruthy();
+ await act(async () => {
+ confirmationCheckbox!.click();
+ });
+ await flushReact();
+ expect(cancelApplyButton!.disabled).toBe(false);
+
const footer = Array.from(dialogContent!.querySelectorAll("div"))
.find((element) =>
typeof element.className === "string"
diff --git a/ui/src/pages/IssueDetail.tsx b/ui/src/pages/IssueDetail.tsx
index 45f13050d92..d909bf7ebcf 100644
--- a/ui/src/pages/IssueDetail.tsx
+++ b/ui/src/pages/IssueDetail.tsx
@@ -2702,7 +2702,7 @@ export function IssueDetail() {
const canApplyTreeControl =
Boolean(treeControlPreview)
&& !treeControlPreviewLoading
- && (treeControlMode !== "cancel" || (treeControlReason.trim().length > 0 && treeControlCancelConfirmed));
+ && (treeControlMode !== "cancel" || treeControlCancelConfirmed);
const attachmentUploadButton = (
<>