v2.5.1: 邮件详情抽屉去掉 邮箱/Message-ID;添加账号窗口去切换控件,OAuth 按钮 + API Token 表单平铺同窗
This commit is contained in:
+17
-18
@@ -84,6 +84,12 @@ await page.locator(".ant-table-row").first().click();
|
||||
await page.waitForSelector(".ant-drawer-open", { timeout: 8000 });
|
||||
const drawerText = (await page.locator(".ant-drawer-title").textContent()) ?? "";
|
||||
check("邮件详情抽屉打开(标题=邮件主题)", drawerText.trim().length > 0, drawerText.trim());
|
||||
check(
|
||||
"详情抽屉不再展示「邮箱」/「Message-ID」",
|
||||
(await page.locator(".ant-drawer .ant-descriptions-item-label:has-text('邮箱')").count()) === 0 &&
|
||||
(await page.locator(".ant-drawer .ant-descriptions-item-label:has-text('Message-ID')").count()) === 0,
|
||||
);
|
||||
await page.waitForTimeout(500); // 等抽屉滑入动画结束再截图
|
||||
await page.screenshot({ path: `${SHOT_DIR}/08-email-detail.png` });
|
||||
await page.keyboard.press("Escape");
|
||||
|
||||
@@ -144,7 +150,7 @@ for (const path of ["/accounts", "/domains", "/mailboxes", "/inboxs"]) {
|
||||
if (path === "/mailboxes") await page.screenshot({ path: `${SHOT_DIR}/11-batch-selected.png` });
|
||||
}
|
||||
|
||||
// 6b. 添加账号模态窗口:OAuth / API Token 同窗(Radio 切换),只留必要字段
|
||||
// 6b. 添加账号模态窗口:OAuth 按钮 + API Token 表单同窗平铺,无需切换控件
|
||||
await page.goto(`${BASE}/accounts`, { waitUntil: "domcontentloaded" });
|
||||
await page.waitForSelector(".ant-table", { timeout: 8000 });
|
||||
check(
|
||||
@@ -153,32 +159,25 @@ check(
|
||||
);
|
||||
await page.click("button:has-text('添加账号')");
|
||||
await page.waitForSelector(".ant-modal:has-text('添加 Cloudflare 账号')", { timeout: 8000 });
|
||||
const modeLabels = await page.locator(".ant-modal .ant-radio-button-wrapper").allInnerTexts();
|
||||
check(
|
||||
"添加账号模态窗口含 OAuth / API Token 两种授权方式(同窗按钮组)",
|
||||
modeLabels.some((t) => t.includes("OAuth")) && modeLabels.some((t) => t.includes("API Token")),
|
||||
modeLabels.join(" | "),
|
||||
"两种授权方式同窗平铺(两个按钮 + 两个字段同时可见),无切换控件",
|
||||
(await page.locator(".ant-modal button:has-text('Cloudflare OAuth 授权')").count()) === 1 &&
|
||||
(await page.locator(".ant-modal button:has-text('API Token 授权')").count()) === 1 &&
|
||||
(await page.locator(".ant-modal .ant-radio-button-wrapper").count()) === 0 &&
|
||||
(await page.locator(".ant-modal .ant-tabs-tab").count()) === 0 &&
|
||||
(await page.locator(".ant-modal:visible").count()) === 1,
|
||||
);
|
||||
check(
|
||||
"窗口内不再有说明文字(Alert)与账户 ID 字段",
|
||||
(await page.locator(".ant-modal .ant-alert").count()) === 0 &&
|
||||
(await page.locator(".ant-modal :text('账户 ID')").count()) === 0,
|
||||
);
|
||||
// OAuth 模式:只有「前往 Cloudflare 授权」按钮
|
||||
check(
|
||||
"OAuth 模式默认展示「前往 Cloudflare 授权」按钮",
|
||||
(await page.locator(".ant-modal button:has-text('前往 Cloudflare 授权')").count()) === 1,
|
||||
"API Token 表单只含 账户名称 / API Token 两个字段(1 个密码框)",
|
||||
(await page.locator(".ant-modal input[type=password]").count()) === 1,
|
||||
);
|
||||
await page.screenshot({ path: `${SHOT_DIR}/12a-add-account-oauth.png` });
|
||||
// 切到 API Token:账户名称 + API Token 两个字段
|
||||
await page.click(".ant-modal .ant-radio-button-wrapper:has-text('API Token')");
|
||||
await page.waitForSelector(".ant-modal :text('账户名称')", { timeout: 8000 });
|
||||
check(
|
||||
"API Token 方式只含 账户名称 / API Token 两个字段",
|
||||
(await page.locator(".ant-modal input[type=password]").count()) === 1 &&
|
||||
(await page.locator(".ant-modal :text('账户 ID')").count()) === 0,
|
||||
);
|
||||
await page.screenshot({ path: `${SHOT_DIR}/12b-add-account-token.png` });
|
||||
await page.waitForTimeout(500); // 等开窗动画结束再截图
|
||||
await page.screenshot({ path: `${SHOT_DIR}/12a-add-account.png` });
|
||||
await page.keyboard.press("Escape");
|
||||
await page.waitForTimeout(400);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user