fix(webui): prevent redundant thread and media reloads (#5164)

This commit is contained in:
chengyongru
2026-07-30 10:25:22 +08:00
committed by GitHub
parent fc73d5ff39
commit 11fcd9cc5f
29 changed files with 1465 additions and 247 deletions
+19
View File
@@ -103,6 +103,25 @@ describe("webui API helpers", () => {
);
});
it("aborts a WebUI thread request when its caller signal is aborted", async () => {
let requestSignal: AbortSignal | null = null;
vi.mocked(fetch).mockImplementation((_input, init) => new Promise((_resolve, reject) => {
requestSignal = init?.signal ?? null;
requestSignal?.addEventListener("abort", () => {
reject(new DOMException("Aborted", "AbortError"));
});
}));
const controller = new AbortController();
const request = fetchWebuiThread("tok", "websocket:chat-1", {
signal: controller.signal,
});
controller.abort();
await expect(request).rejects.toMatchObject({ name: "AbortError" });
expect(requestSignal?.aborted).toBe(true);
});
it("percent-encodes websocket keys and paths when fetching file previews", async () => {
await fetchFilePreview("tok", "websocket:chat-1", "/tmp/project/hook.py:12");