fix(files): 配置文件改为同目录临时文件 fsync 后原子改名写入,读取返回内容哈希、保存带期望哈希冲突返回 409,磁盘满返回 507,面板提示载入最新或仍然覆盖

This commit is contained in:
Lemon-miaow committed 2026-09-25 03:56:30 +08:00
1 parent 074bd1783c
commit e1c325d594
17 files changed
+721 -131

No files matched your search

+11
View File
@@ -714,6 +714,17 @@ describe("image whitelist and builds wire shapes", () => {
expect((opts as RequestInit).method).toBe("PUT");
expect((opts as RequestInit).body).toBe(JSON.stringify({ content: "" }));
});
it("writeServerFile sends the hash the read returned as expect_sha256", async () => {
const fetchSpy = fakeFetch({ path: "a.txt", status: "written", sha256: "b".repeat(64) });
vi.stubGlobal("fetch", fetchSpy);
const res = await api.writeServerFile("survival", "a.txt", "aGk=", "a".repeat(64));
expect(res.sha256).toBe("b".repeat(64));
const [, opts] = (fetchSpy as unknown as ReturnType<typeof vi.fn>).mock.calls[0];
expect((opts as RequestInit).body).toBe(
JSON.stringify({ content: "aGk=", expect_sha256: "a".repeat(64) }),
);
});
});
describe("user passkey unbind wire shape", () => {