mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 15:40:44 +00:00
test: share signal archive extraction assertion
This commit is contained in:
@@ -141,6 +141,13 @@ describe("extractSignalCliArchive", () => {
|
||||
}
|
||||
}
|
||||
|
||||
async function expectExtractedSignalCli(archivePath: string, extractDir: string) {
|
||||
await extractSignalCliArchive(archivePath, extractDir, 5_000);
|
||||
|
||||
const extracted = await fs.readFile(path.join(extractDir, "root", "signal-cli"), "utf-8");
|
||||
expect(extracted).toBe("bin");
|
||||
}
|
||||
|
||||
it("rejects zip slip path traversal", async () => {
|
||||
await withArchiveWorkspace(async (workDir) => {
|
||||
const archivePath = path.join(workDir, "bad.zip");
|
||||
@@ -167,10 +174,7 @@ describe("extractSignalCliArchive", () => {
|
||||
zip.file("root/signal-cli", "bin");
|
||||
await fs.writeFile(archivePath, await zip.generateAsync({ type: "nodebuffer" }));
|
||||
|
||||
await extractSignalCliArchive(archivePath, extractDir, 5_000);
|
||||
|
||||
const extracted = await fs.readFile(path.join(extractDir, "root", "signal-cli"), "utf-8");
|
||||
expect(extracted).toBe("bin");
|
||||
await expectExtractedSignalCli(archivePath, extractDir);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -184,10 +188,7 @@ describe("extractSignalCliArchive", () => {
|
||||
await tar.c({ cwd: workDir, file: archivePath, gzip: true }, ["root"]);
|
||||
|
||||
await fs.mkdir(extractDir, { recursive: true });
|
||||
await extractSignalCliArchive(archivePath, extractDir, 5_000);
|
||||
|
||||
const extracted = await fs.readFile(path.join(extractDir, "root", "signal-cli"), "utf-8");
|
||||
expect(extracted).toBe("bin");
|
||||
await expectExtractedSignalCli(archivePath, extractDir);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user