feat: integrate pi rust lab runtime

This commit is contained in:
Agent Board
2026-07-10 10:54:34 +08:00
parent c8472bb898
commit 896c94b696
73 changed files with 19852 additions and 1152 deletions
+14 -19
View File
@@ -76,20 +76,18 @@ async function main() {
await userPage.goto(baseUrl, { waitUntil: "domcontentloaded", timeout: UI_TIMEOUT_MS });
await userPage.locator('[data-testid="mnote-account-menu-trigger"]').click();
await userPage.locator('[data-testid="mnote-account-menu"]').waitFor({ state: "visible", timeout: UI_TIMEOUT_MS });
await userPage.waitForFunction(() => {
const link = document.querySelector('[data-testid="mnote-account-access-policy"]');
return link && link.getAttribute("href") === "/user/access-policy";
}, { timeout: UI_TIMEOUT_MS });
assert.equal(await userPage.locator('[data-testid="mnote-account-access-policy"]').count(), 0, "授权管理入口应已退役");
await userPage.locator('[data-testid="mnote-account-ai-management"]').waitFor({ state: "visible", timeout: UI_TIMEOUT_MS });
await userPage.locator('[data-testid="mnote-account-profile"]').click();
await userPage.locator('[data-testid="mnote-profile-dialog"]').waitFor({ state: "visible", timeout: UI_TIMEOUT_MS });
const profileText = await userPage.locator('[data-testid="mnote-profile-dialog"]').innerText();
assert(profileText.includes("user_profile_smoke"), "个人信息弹窗应显示完整用户 ID");
await userPage.goto(`${baseUrl}/user/access-policy`, { waitUntil: "domcontentloaded", timeout: UI_TIMEOUT_MS });
await userPage.locator('[data-testid="mnote-admin-access-policy-page"]').waitFor({ state: "visible", timeout: UI_TIMEOUT_MS });
const userAccessText = await userPage.locator('[data-testid="mnote-admin-access-policy-page"]').innerText();
assert(userAccessText.includes("分享管理"), "普通用户授权页应显示分享管理");
assert(!userAccessText.includes("验证目录"), "普通用户授权页不应显示目录授权验证表单");
await userPage.goto(`${baseUrl}/user/access-policy`, { waitUntil: "commit", timeout: UI_TIMEOUT_MS });
await userPage.waitForURL((url) => url.pathname === "/user/ai" && url.hash === "#ai-admin-access", { timeout: UI_TIMEOUT_MS });
await userPage.locator("#ai-admin-access.is-active").waitFor({ state: "visible", timeout: UI_TIMEOUT_MS });
const userAccessText = await userPage.locator("#ai-admin-access").innerText();
assert(userAccessText.includes("目录权限"), "用户授权页应跳转到用户 AI 设置的目录权限面板");
await userContext.close();
const adminContext = await browser.newContext({
@@ -102,16 +100,13 @@ async function main() {
await adminPage.goto(baseUrl, { waitUntil: "domcontentloaded", timeout: UI_TIMEOUT_MS });
await adminPage.locator('[data-testid="mnote-account-menu-trigger"]').click();
await adminPage.locator('[data-testid="mnote-account-menu"]').waitFor({ state: "visible", timeout: UI_TIMEOUT_MS });
await adminPage.waitForFunction(() => {
const link = document.querySelector('[data-testid="mnote-account-access-policy"]');
return link && link.getAttribute("href") === "/admin/access-policy";
}, { timeout: UI_TIMEOUT_MS });
await adminPage.goto(`${baseUrl}/admin/access-policy`, { waitUntil: "domcontentloaded", timeout: UI_TIMEOUT_MS });
await adminPage.locator('[data-testid="mnote-admin-access-policy-page"]').waitFor({ state: "visible", timeout: UI_TIMEOUT_MS });
const adminAccessText = await adminPage.locator('[data-testid="mnote-admin-access-policy-page"]').innerText();
assert(adminAccessText.includes("目录授权"), "管理员授权页应显示目录授权");
assert(adminAccessText.includes("分享管理"), "管理员授权页应显示分享管理");
assert(await adminPage.locator('[data-testid="mnote-admin-validate-root-submit"]').isVisible(), "管理员页应显示验证目录按钮");
assert.equal(await adminPage.locator('[data-testid="mnote-account-access-policy"]').count(), 0, "管理员账号菜单不应再出现授权管理入口");
await adminPage.locator('[data-testid="mnote-account-ai-management"]').waitFor({ state: "visible", timeout: UI_TIMEOUT_MS });
await adminPage.goto(`${baseUrl}/admin/access-policy`, { waitUntil: "commit", timeout: UI_TIMEOUT_MS });
await adminPage.waitForURL((url) => url.pathname === "/admin/ai" && url.hash === "#ai-admin-access", { timeout: UI_TIMEOUT_MS });
await adminPage.locator("#ai-admin-access.is-active").waitFor({ state: "visible", timeout: UI_TIMEOUT_MS });
const adminAccessText = await adminPage.locator("#ai-admin-access").innerText();
assert(adminAccessText.includes("目录权限"), "旧管理员授权页应跳转到管理员 AI 设置的目录权限面板");
await adminContext.close();
console.log(JSON.stringify({ ok: true, task: "task489-auth-profile-access-ui", baseUrl }, null, 2));