From 16c93f62845fc43d439070f20b3a8f0eb0c3998c Mon Sep 17 00:00:00 2001
From: Clivia <132346501+Yanyutin753@users.noreply.github.com>
Date: Wed, 9 Sep 2026 00:23:42 +0800
Subject: [PATCH 1/9] =?UTF-8?q?test(download):=20=E4=BF=AE=E5=A4=8D=20Down?=
=?UTF-8?q?loadPage=20=E5=81=B6=E5=8F=91=E5=A4=B1=E8=B4=A5=E2=80=94?=
=?UTF-8?q?=E2=80=94=E7=AD=89=E5=BE=85=E9=94=9A=E7=82=B9=E4=BB=8E=E9=9D=99?=
=?UTF-8?q?=E6=80=81=E5=B9=B3=E5=8F=B0=E5=90=8D=E6=8D=A2=E6=88=90=E6=95=B0?=
=?UTF-8?q?=E6=8D=AE=E9=A9=B1=E5=8A=A8=E5=86=85=E5=AE=B9=20(#504)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
平台分区卡不等 versionApi 就渲染(空 links 也画 Windows/macOS 标签),
而 curl 一键安装 / xattr Gatekeeper 块要资产到齐才挂载。原测试把等待
锚在静态平台名上、再同步 getByText 数据驱动内容,数据晚到时撞进空窗
(CI 偶发失败,本地难复现)。延迟 mock 80ms 可确定性复现(RED),
锚点换成资产文件名 / 命令本身后同条件下 7/7 通过(GREEN)。
---
.../download/__tests__/DownloadPage.test.tsx | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/frontend/src/components/download/__tests__/DownloadPage.test.tsx b/frontend/src/components/download/__tests__/DownloadPage.test.tsx
index 6fbeb25aa..b097f6456 100644
--- a/frontend/src/components/download/__tests__/DownloadPage.test.tsx
+++ b/frontend/src/components/download/__tests__/DownloadPage.test.tsx
@@ -93,8 +93,12 @@ test("renders desktop and daemon downloads from the latest release assets", asyn
render(
+ {askHumanParsed.prose} +
+ )} +{children};
+}
+
/**
- * Renders a scheduled task creation approval with i18n support.
- * Used by ApprovalPanel when an approval has metadata.approval_type === "scheduled_task_create".
+ * Renders a scheduled task creation approval as a compact spec sheet:
+ * definition rows for the task parameters plus a code block for the run
+ * prompt. Used by ApprovalPanel when an approval has
+ * metadata.approval_type === "scheduled_task_create".
*/
export function ScheduledTaskApprovalContent({
preview,
}: ScheduledTaskApprovalContentProps) {
const { t } = useTranslation();
- const immediate = preview.run_on_start
- ? `✅ ${t("approvals.scheduledTask.yes")}`
- : `❌ ${t("approvals.scheduledTask.no")}`;
-
return (
- {t("approvals.scheduledTask.confirmCreation")}
-{t("approvals.scheduledTask.noTaskYet")}
++ {t("approvals.scheduledTask.confirmCreation")} +
++ {t("approvals.scheduledTask.noTaskYet")} +
-| - | - |
|---|---|
| - {t("approvals.scheduledTask.name")} - | -{preview.name} | -
| - {t("approvals.scheduledTask.agent")} - | -
- {preview.agent_id}
- |
-
| - {t("approvals.scheduledTask.schedule")} - | -{preview.schedule} | -
| - {t("approvals.scheduledTask.runImmediately")} - | -{immediate} | -
| - {t("approvals.scheduledTask.timeout")} - | -{preview.timeout_seconds}s | -
+
{t("approvals.scheduledTask.effect", { agent: preview.agent_id, schedule: preview.schedule, @@ -80,12 +110,15 @@ export function ScheduledTaskApprovalContent({ {preview.run_on_start && t("approvals.scheduledTask.effectImmediate")}
-- {t("approvals.scheduledTask.promptSent")} -
-
- {preview.message}
-
+
+ {preview.message}
+
+