桌面 GUI 外链修复 + 主题顺序调整(含结构扁平化进行中的工作区基线)
- 集成 tauri-plugin-opener:Cargo/lib.rs/capabilities/npm 四处接线,新增 src/openExternal.ts(桌面走 opener,浏览器回退 window.open,相对路径绝对化) - 关于页 4 个链接、活动栏官网菜单、代理错误横幅 2 处健康检查链接全部改走 openExternal,桌面端可正常跳转 - 设置→外观 主题顺序调整为 深色/浅色/跟随系统 - release 二进制重编并验证(浏览器实测关于页链接可开文档页) - 附带工作区中未提交的扁平化重构现状(另一会话进行中) - homepage 落地页与文档终检通过(8787 / 与 /docs 双 200)
This commit is contained in:
1 parent
6452026fd6
commit
2bb4ef7a95
299 files changed
+6059
-3322
No files matched your search
@@ -0,0 +1,31 @@
|
||||
import { describe, expect, it, vi } from "vitest";
|
||||
import { executeOnce, useTestExecution } from "./execution";
|
||||
|
||||
describe("shared test execution", () => {
|
||||
it("shares a pending run across entry points and releases it after completion", async () => {
|
||||
let resolve!: (value: string) => void;
|
||||
const task = vi.fn(() => new Promise<string>((r) => { resolve = r; }));
|
||||
const first = executeOnce("case-1", task);
|
||||
const second = executeOnce("case-1", task);
|
||||
expect(first).toBe(second);
|
||||
expect(useTestExecution.getState().running.has("case-1")).toBe(true);
|
||||
await Promise.resolve();
|
||||
expect(task).toHaveBeenCalledTimes(1);
|
||||
resolve("report");
|
||||
await expect(first).resolves.toBe("report");
|
||||
expect(useTestExecution.getState().running.has("case-1")).toBe(false);
|
||||
await expect(executeOnce("case-1", async () => "new report")).resolves.toBe("new report");
|
||||
});
|
||||
|
||||
it("clears failed runs and allows retry without clearing other active cases", async () => {
|
||||
let resolve!: () => void;
|
||||
const other = executeOnce("other", () => new Promise<void>((r) => { resolve = r; }));
|
||||
await expect(executeOnce("failed", () => { throw new Error("transport unavailable"); }))
|
||||
.rejects.toThrow("transport unavailable");
|
||||
expect([...useTestExecution.getState().running]).toEqual(["other"]);
|
||||
await expect(executeOnce("failed", async () => "retry")).resolves.toBe("retry");
|
||||
resolve();
|
||||
await other;
|
||||
expect(useTestExecution.getState().running.size).toBe(0);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user